diff --git a/go/documentation/library-coverage/cwe-sink.csv b/go/documentation/library-coverage/cwe-sink.csv new file mode 100644 index 00000000000..2e9c942ba80 --- /dev/null +++ b/go/documentation/library-coverage/cwe-sink.csv @@ -0,0 +1 @@ +CWE,Sink identifier,Label diff --git a/go/documentation/library-coverage/frameworks.csv b/go/documentation/library-coverage/frameworks.csv new file mode 100644 index 00000000000..30e2f348f41 --- /dev/null +++ b/go/documentation/library-coverage/frameworks.csv @@ -0,0 +1 @@ +Framework name,URL,Package prefixes diff --git a/go/ql/src/meta/frameworks/Coverage.ql b/go/ql/src/meta/frameworks/Coverage.ql new file mode 100644 index 00000000000..40b01e624a0 --- /dev/null +++ b/go/ql/src/meta/frameworks/Coverage.ql @@ -0,0 +1,14 @@ +/** + * @name Framework coverage + * @description The number of API endpoints covered by MaD models sorted by + * package and source-, sink-, and summary-kind. + * @kind table + * @id go/meta/framework-coverage + */ + +import go +import semmle.go.dataflow.ExternalFlow + +from string package, int pkgs, string kind, string part, int n +where modelCoverage(package, pkgs, kind, part, n) +select package, pkgs, kind, part, n diff --git a/misc/scripts/library-coverage/generate-report.py b/misc/scripts/library-coverage/generate-report.py index aa2b6390d20..e5615e04f61 100644 --- a/misc/scripts/library-coverage/generate-report.py +++ b/misc/scripts/library-coverage/generate-report.py @@ -114,7 +114,9 @@ configs = [ utils.LanguageConfig( "java", "Java", ".java", query_prefix + "java/ql/src/meta/frameworks/Coverage.ql"), utils.LanguageConfig( - "csharp", "C#", ".cs", query_prefix + "csharp/ql/src/meta/frameworks/Coverage.ql") + "csharp", "C#", ".cs", query_prefix + "csharp/ql/src/meta/frameworks/Coverage.ql"), + utils.LanguageConfig( + "go", "Go", ".go", query_prefix + "go/ql/src/meta/frameworks/Coverage.ql") ] # The names of input and output files. The placeholder {language} is replaced with the language name. diff --git a/misc/scripts/library-coverage/generate-timeseries.py b/misc/scripts/library-coverage/generate-timeseries.py index 49bade6ba03..72ea97b5be5 100644 --- a/misc/scripts/library-coverage/generate-timeseries.py +++ b/misc/scripts/library-coverage/generate-timeseries.py @@ -74,7 +74,9 @@ configs = [ utils.LanguageConfig( "java", "Java", ".java", "java/ql/src/meta/frameworks/Coverage.ql", ["java/ql/lib/config/semmlecode.dbscheme", "java/ql/src/config/semmlecode.dbscheme"]), utils.LanguageConfig( - "csharp", "C#", ".cs", "csharp/ql/src/meta/frameworks/Coverage.ql", ["csharp/ql/lib/semmlecode.csharp.dbscheme", "csharp/ql/src/semmlecode.csharp.dbscheme"]) + "csharp", "C#", ".cs", "csharp/ql/src/meta/frameworks/Coverage.ql", ["csharp/ql/lib/semmlecode.csharp.dbscheme", "csharp/ql/src/semmlecode.csharp.dbscheme"]), + utils.LanguageConfig( + "go", "Go", ".go", "go/ql/src/meta/frameworks/Coverage.ql", ["go/ql/lib/go.dbscheme", "go/ql/src/go.dbscheme"]) ] output_prefix = "framework-coverage-timeseries-" diff --git a/misc/scripts/library-coverage/settings.py b/misc/scripts/library-coverage/settings.py index 180699caf7c..c669a117eec 100644 --- a/misc/scripts/library-coverage/settings.py +++ b/misc/scripts/library-coverage/settings.py @@ -21,4 +21,4 @@ output_csv_file_name = "coverage.csv" repo_output_rst = documentation_folder + output_rst_file_name repo_output_csv = documentation_folder + output_csv_file_name -languages = ['java', 'csharp'] +languages = ['java', 'csharp', 'go']