Repository navigation
80 lines (72 loc) · 3.33 KB
/
Copy pathcodacy.yml
File metadata and controls
80 lines (72 loc) · 3.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow checks out code, performs a Codacy security scan
# and integrates the results with the
# GitHub Advanced Security code scanning feature. For more information on
# the Codacy security scan action usage and parameters, see
# https://github.com/codacy/codacy-analysis-cli-action.
# For more information on Codacy Analysis CLI in general, see
# https://github.com/codacy/codacy-analysis-cli.
name: Codacy Security Scan
on:
push:
branches: [ "main" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "main" ]
schedule:
- cron: '20 18 * * 5'
permissions:
contents: read
jobs:
codacy-security-scan:
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
name: Codacy Security Scan
runs-on: ubuntu-latest
steps:
# Checkout the repository to the GitHub Actions runner
- name: Checkout code
uses: actions/checkout@v7
# Execute Codacy Analysis CLI and generate a SARIF output with the security issues identified during the analysis
- name: Run Codacy Analysis CLI
uses: codacy/codacy-analysis-cli-action@562ee3e92b8e92df8b67e0a5ff8aa8e261919c08
with:
# Check https://github.com/codacy/codacy-analysis-cli#project-token to get your project token from your Codacy repository
# You can also omit the token and run the tools that support default configurations
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
verbose: true
output: results.sarif
format: sarif
# Adjust severity of non-security issues
gh-code-scanning-compat: true
# Force 0 exit code to allow SARIF file generation
# This will handover control about PR rejection to the GitHub side
max-allowed-issues: 2147483647
# Split multi-run SARIF into individual files per tool, so each uploads with a unique category
- name: Split SARIF by tool runs
run: |
python3 -c "
import json, os, re
with open('results.sarif') as f:
sarif = json.load(f)
os.makedirs('results-split', exist_ok=True)
runs = sarif.get('runs', [])
runs_with_results = [r for r in runs if r.get('results')]
selected_runs = (runs_with_results if runs_with_results else runs)[:20]
for i, run in enumerate(selected_runs):
tool = run['tool']['driver']['name']
safe = re.sub(r'[^a-zA-Z0-9_-]', '_', tool)
out = {'\$schema': sarif['\$schema'], 'version': sarif['version'], 'runs': [run]}
with open(f'results-split/results-{safe}.sarif', 'w') as outfile:
json.dump(out, outfile)
"
# Upload each split SARIF file; category auto-detected from tool.driver.name
- name: Upload SARIF results files
uses: github/codeql-action/upload-sarif@v4.38.2
with:
sarif_file: results-split