DevSkim is security linter that highlights common security issues in source code.
The DevSkim GitHub Action outputs a sarif file compatible with GitHub's Security Issues view.
Add DevSkim to your GitHub Actions pipeline like below.
- uses: actions/checkout@v4
- uses: microsoft/DevSkim-Action@v1
- uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: devskim-results.sarif
You can also specify a number of options to the action.
- uses: microsoft/devskim-action@v1
with:
directory-to-scan: path/to/scan
should-scan-archives: false
output-filename: devskim-results.sarif
output-directory: path/to/output (appended to $GITHUB_WORKSPACE)
ignore-globs: "**/.git/**,*.txt"
exclude-rules: DS176209,DS148264
options-json: path/to/options.json
extra-options: --args --to --devskimAnalyze
The arguments specified are provided to the DevSkim CLI's Analyze command. See the DevSkim Wiki for detailed usage instruction.
Relative path in $GITHUB_WORKSPACE
for DevSkim to Scan. Equivalent to the --source-code
argument to Analyze.
DevSkim can peek into archives to scan the files contained inside them. Setting this to true will enable that behavior. Equivalent to the --crawl-archives
argument to Analyze.
The filename to use for the results of the Analyze scan. Along with output-directory
equivalent to the --output-file
argument to Analyze.
Relative path to a directory in $GITHUB_WORKSPACE
to emit the output file, default to output in the root of $GITHUB_WORKSPACE
with the specified output-filename
.
Files which match any of these globs will be skipped during analysis. Equivalent to the --ignore-globs
argument to Analyze.
Comma separated list of Rule IDs to skip during analysis. Equivalent to the --ignore-rule-ids
argument to Analyze.
Relative path in $GITHUB_WORKSPACE
to a json serialiation of a SerializedAnalyzeCommandOptions object. Equivalent to the --options-json
argument to Analyze.
Use this field to specify any other arguments to the DevSkim Analyze command. See the DevSkim Wiki for available options and usage documentation.
- Built-in ruleset highlighting common security issues in source code
- Support for scanning code contained in archives
- Information and guidance provided for identified security issues
- Broad language support including: C, C++, C#, Cobol, Go, Java, Javascript/Typescript, Python, and more.
The DevSkim engine powering this GitHub Action is also available here as a Cli and as IDE extensions for Visual Studio and Visual Studio Code.
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.