Skip to content

Commit 5b26a18

Browse files
author
Adam Reynolds
authored
Merge pull request #123 from microsoft/latest
Update @v1 branch from latest
2 parents 7390911 + d0736c5 commit 5b26a18

File tree

15 files changed

+9486
-142
lines changed

15 files changed

+9486
-142
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
name: security-devops-action Official Build
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- release/vNext
7+
8+
permissions:
9+
contents: read
10+
11+
jobs:
12+
build:
13+
runs-on: ubuntu-latest
14+
15+
permissions:
16+
contents: write
17+
18+
steps:
19+
- name: Checkout repository
20+
uses: actions/checkout@v2
21+
22+
- name: Extract branch name
23+
shell: bash
24+
run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
25+
id: extract_branch
26+
27+
- name: Set up Node.js
28+
uses: actions/setup-node@v2
29+
with:
30+
node-version: '14'
31+
32+
- name: Configure npm to use GitHub Packages
33+
run: echo "//npm.pkg.github.com/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
34+
35+
- name: Install dependencies
36+
run: npm install
37+
38+
- name: Compile TypeScript
39+
run: npm run build
40+
41+
- name: Commit compiled JavaScript
42+
run: |
43+
git config --global user.name 'github-actions[bot]'
44+
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
45+
git add lib/.
46+
git commit -m 'Official Build: Compile TypeScript to JavaScript'
47+
git push --force origin HEAD:${{ steps.extract_branch.outputs.branch }}
48+
env:
49+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ To only run specific analyzers, use the `tools` command. This command is a comma
6666
| [AntiMalware](https://www.microsoft.com/en-us/windows/comprehensive-security) | code, artifacts | - |
6767
| [Bandit](https://github.com/PyCQA/bandit) | python | [Apache License 2.0](https://github.com/PyCQA/bandit/blob/master/LICENSE) |
6868
| [BinSkim](https://github.com/Microsoft/binskim) | binary - Windows, ELF | [MIT License](https://github.com/microsoft/binskim/blob/main/LICENSE) |
69+
| [Checkov](https://github.com/bridgecrewio/checkov) | Infrastructure-as-code (IaC), Terraform, Terraform plan, Cloudformation, AWS SAM, Kubernetes, Helm charts, Kustomize, Dockerfile, Serverless, Bicep, OpenAPI, ARM Templates, or OpenTofu | [Apache License 2.0](https://github.com/bridgecrewio/checkov/blob/main/LICENSE) |
6970
| [ESlint](https://github.com/eslint/eslint) | JavaScript | [MIT License](https://github.com/eslint/eslint/blob/main/LICENSE) |
7071
| [Template Analyzer](https://github.com/Azure/template-analyzer) | Infrastructure-as-code (IaC), ARM templates, Bicep files | [MIT License](https://github.com/Azure/template-analyzer/blob/main/LICENSE.txt) |
7172
| [Terrascan](https://github.com/accurics/terrascan) | Infrastructure-as-code (IaC), Terraform (HCL2), Kubernetes (JSON/YAML), Helm v3, Kustomize, Dockerfiles, Cloudformation | [Apache License 2.0](https://github.com/accurics/terrascan/blob/master/LICENSE) |

action.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,13 @@ inputs:
2020
description: A comma separated list of analyzer to run. Example bandit, binskim, container-mapping, eslint, templateanalyzer, terrascan, trivy.
2121
includeTools:
2222
description: Deprecated
23+
existingFilename:
24+
description: A SARIF filename that already exists. If it does, then the normal run will not take place and the file will instead be uploaded to MSDO backend.
2325
outputs:
2426
sarifFile:
2527
description: A file path to a SARIF results file.
2628
runs:
27-
using: 'node16'
29+
using: 'node20'
2830
main: 'lib/main.js'
2931
pre: 'lib/pre.js'
3032
post: 'lib/post.js'

lib/msdo-helpers.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ var Inputs;
1414
Inputs["Languages"] = "languages";
1515
Inputs["Tools"] = "tools";
1616
Inputs["IncludeTools"] = "includeTools";
17+
Inputs["ExistingFilename"] = "existingFilename";
1718
})(Inputs || (exports.Inputs = Inputs = {}));
1819
var RunnerType;
1920
(function (RunnerType) {
@@ -25,6 +26,7 @@ var Tools;
2526
(function (Tools) {
2627
Tools["Bandit"] = "bandit";
2728
Tools["Binskim"] = "binskim";
29+
Tools["Checkov"] = "checkov";
2830
Tools["ContainerMapping"] = "container-mapping";
2931
Tools["ESLint"] = "eslint";
3032
Tools["TemplateAnalyzer"] = "templateanalyzer";

lib/msdo.js

Lines changed: 51 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -52,59 +52,66 @@ class MicrosoftSecurityDevOps {
5252
runMain() {
5353
return __awaiter(this, void 0, void 0, function* () {
5454
core.debug('MicrosoftSecurityDevOps.runMain - Running MSDO...');
55-
let args = ['run'];
56-
let config = core.getInput('config');
57-
if (!common.isNullOrWhiteSpace(config)) {
58-
args.push('-c');
59-
args.push(config);
55+
let args = undefined;
56+
let existingFilename = core.getInput('existingFilename');
57+
if (!common.isNullOrWhiteSpace(existingFilename)) {
58+
args = ['upload', '--file', existingFilename];
6059
}
61-
let policy = core.getInput('policy');
62-
if (common.isNullOrWhiteSpace(policy)) {
63-
policy = "GitHub";
64-
}
65-
args.push('-p');
66-
args.push(policy);
67-
let categoriesString = core.getInput('categories');
68-
if (!common.isNullOrWhiteSpace(categoriesString)) {
69-
args.push('--categories');
70-
let categories = categoriesString.split(',');
71-
for (let i = 0; i < categories.length; i++) {
72-
let category = categories[i];
73-
if (!common.isNullOrWhiteSpace(category)) {
74-
args.push(category.trim());
60+
else {
61+
args = ['run'];
62+
let config = core.getInput('config');
63+
if (!common.isNullOrWhiteSpace(config)) {
64+
args.push('-c');
65+
args.push(config);
66+
}
67+
let policy = core.getInput('policy');
68+
if (common.isNullOrWhiteSpace(policy)) {
69+
policy = "GitHub";
70+
}
71+
args.push('-p');
72+
args.push(policy);
73+
let categoriesString = core.getInput('categories');
74+
if (!common.isNullOrWhiteSpace(categoriesString)) {
75+
args.push('--categories');
76+
let categories = categoriesString.split(',');
77+
for (let i = 0; i < categories.length; i++) {
78+
let category = categories[i];
79+
if (!common.isNullOrWhiteSpace(category)) {
80+
args.push(category.trim());
81+
}
7582
}
7683
}
77-
}
78-
let languagesString = core.getInput('languages');
79-
if (!common.isNullOrWhiteSpace(languagesString)) {
80-
args.push('--languages');
81-
let languages = languagesString.split(',');
82-
for (let i = 0; i < languages.length; i++) {
83-
let language = languages[i];
84-
if (!common.isNullOrWhiteSpace(language)) {
85-
args.push(language.trim());
84+
let languagesString = core.getInput('languages');
85+
if (!common.isNullOrWhiteSpace(languagesString)) {
86+
args.push('--languages');
87+
let languages = languagesString.split(',');
88+
for (let i = 0; i < languages.length; i++) {
89+
let language = languages[i];
90+
if (!common.isNullOrWhiteSpace(language)) {
91+
args.push(language.trim());
92+
}
8693
}
8794
}
88-
}
89-
let toolsString = core.getInput('tools');
90-
let includedTools = [];
91-
if (!common.isNullOrWhiteSpace(toolsString)) {
92-
let tools = toolsString.split(',');
93-
for (let i = 0; i < tools.length; i++) {
94-
let tool = tools[i];
95-
let toolTrimmed = tool.trim();
96-
if (!common.isNullOrWhiteSpace(tool)
97-
&& tool != msdo_helpers_1.Tools.ContainerMapping
98-
&& includedTools.indexOf(toolTrimmed) == -1) {
99-
if (includedTools.length == 0) {
100-
args.push('--tool');
95+
let toolsString = core.getInput('tools');
96+
let includedTools = [];
97+
if (!common.isNullOrWhiteSpace(toolsString)) {
98+
let tools = toolsString.split(',');
99+
for (let i = 0; i < tools.length; i++) {
100+
let tool = tools[i];
101+
let toolTrimmed = tool.trim();
102+
if (!common.isNullOrWhiteSpace(tool)
103+
&& tool != msdo_helpers_1.Tools.ContainerMapping
104+
&& includedTools.indexOf(toolTrimmed) == -1) {
105+
if (includedTools.length == 0) {
106+
args.push('--tool');
107+
}
108+
args.push(toolTrimmed);
109+
includedTools.push(toolTrimmed);
101110
}
102-
args.push(toolTrimmed);
103-
includedTools.push(toolTrimmed);
104111
}
105112
}
113+
args.push('--github');
106114
}
107-
args.push('--github');
108115
yield client.run(args, 'microsoft/security-devops-action');
109116
});
110117
}

node_modules/.bin/uuid

Lines changed: 5 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/.package-lock.json

Lines changed: 5 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/@microsoft/security-devops-actions-toolkit/msdo-client.js

Lines changed: 15 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/@microsoft/security-devops-actions-toolkit/package.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package-lock.json

Lines changed: 10 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)