Skip to content

Commit 9d767b8

Browse files
authored
Merge pull request #8869 from michaelnebel/csharp/frameworkcoverage
C#: Port the java FrameworkCoverage query.
2 parents 3c07ab5 + 150d9ba commit 9d767b8

File tree

2 files changed

+50
-5
lines changed

2 files changed

+50
-5
lines changed

.github/workflows/csv-coverage-metrics.yml

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ on:
1414
- ".github/workflows/csv-coverage-metrics.yml"
1515

1616
jobs:
17-
publish:
17+
publish-java:
1818
runs-on: ubuntu-latest
1919
steps:
2020
- name: Checkout repository
@@ -31,13 +31,40 @@ jobs:
3131
- name: Capture coverage information
3232
run: |
3333
DATABASE="${{ runner.temp }}/java-database"
34-
codeql database analyze --format=sarif-latest --output=metrics.sarif -- "$DATABASE" ./java/ql/src/Metrics/Summaries/FrameworkCoverage.ql
34+
codeql database analyze --format=sarif-latest --output=metrics-java.sarif -- "$DATABASE" ./java/ql/src/Metrics/Summaries/FrameworkCoverage.ql
3535
- uses: actions/upload-artifact@v3
3636
with:
37-
name: metrics.sarif
38-
path: metrics.sarif
37+
name: metrics-java.sarif
38+
path: metrics-java.sarif
3939
retention-days: 20
4040
- name: Upload SARIF file
4141
uses: github/codeql-action/upload-sarif@v1
4242
with:
43-
sarif_file: metrics.sarif
43+
sarif_file: metrics-java.sarif
44+
45+
publish-csharp:
46+
runs-on: ubuntu-latest
47+
steps:
48+
- name: Checkout repository
49+
uses: actions/checkout@v3
50+
- name: Setup CodeQL
51+
uses: ./.github/actions/fetch-codeql
52+
- name: Create empty database
53+
run: |
54+
DATABASE="${{ runner.temp }}/csharp-database"
55+
PROJECT="${{ runner.temp }}/csharp-project"
56+
dotnet new classlib --language=C# --output="$PROJECT"
57+
codeql database create "$DATABASE" --language=csharp --source-root="$PROJECT" --command 'dotnet build /t:rebuild csharp-project.csproj /p:UseSharedCompilation=false'
58+
- name: Capture coverage information
59+
run: |
60+
DATABASE="${{ runner.temp }}/csharp-database"
61+
codeql database analyze --format=sarif-latest --output=metrics-csharp.sarif -- "$DATABASE" ./csharp/ql/src/Metrics/Summaries/FrameworkCoverage.ql
62+
- uses: actions/upload-artifact@v3
63+
with:
64+
name: metrics-csharp.sarif
65+
path: metrics-csharp.sarif
66+
retention-days: 20
67+
- name: Upload SARIF file
68+
uses: github/codeql-action/upload-sarif@v1
69+
with:
70+
sarif_file: metrics-csharp.sarif
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/**
2+
* @id csharp/summary/framework-coverage
3+
* @name Metrics of framework coverage
4+
* @description Expose metrics for the number of API endpoints covered by CSV models.
5+
* @kind metric
6+
* @tags summary
7+
*/
8+
9+
import csharp
10+
import semmle.code.csharp.dataflow.ExternalFlow
11+
12+
from string namespaceAndType, int rows
13+
where
14+
exists(string namespace, string type |
15+
namespaceAndType = namespace + ";" + type and
16+
rows = strictsum(int n, string kind | modelCoverage(namespace, _, kind, type, n) | n)
17+
)
18+
select namespaceAndType, rows

0 commit comments

Comments
 (0)