Skip to content

Commit b936959

Browse files
authored
v1.10.1 - export-file option (#25)
* v1.10.0 - export-file option * v1.10.1 * v1.10.1 - fix sarif file export
1 parent 8680376 commit b936959

5 files changed

Lines changed: 50 additions & 4 deletions

File tree

package-lock.json

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

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@microsoft/security-devops-azdevops-task-lib",
3-
"version": "1.9.0",
3+
"version": "1.10.1",
44
"description": "Microsoft Security DevOps for Azure DevOps task library.",
55
"author": "Microsoft Corporation",
66
"license": "MIT",

src/msdo-client.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,15 @@ export async function run(inputArgs: string[], successfulExitCodes: number[] = n
127127
// Write it as an environment variable for follow up tasks to consume
128128
tl.setVariable('MSDO_SARIF_FILE', sarifFile);
129129

130-
tool.arg('--export-breaking-results-to-file');
130+
if (common.isVersionGreaterThanOrEqualTo(process.env.MSDO_INSTALLEDVERSION, '0.183.0')) {
131+
// Export all SARIF results to a file
132+
tool.arg('--export-file');
133+
} else {
134+
// This still exists, but the behavior was corrected in 0.183.0
135+
// This defaults to only exporting breaking results, as the name implies
136+
tool.arg('--export-breaking-results-to-file');
137+
}
138+
131139
tool.arg(sarifFile);
132140

133141
tool.arg('--telemetry-environment');

src/msdo-common.ts

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,4 +143,41 @@ export function getMsdoBreakEnvironmentVariable() : boolean {
143143
*/
144144
export function sleep(ms) {
145145
return new Promise(resolve => setTimeout(resolve, ms));
146+
}
147+
148+
/**
149+
* Lazy checks if the version1 is greater than or equal to version2.
150+
*
151+
* @param version1 The version to check.
152+
* @param version2 The version to compare against.
153+
* @returns True if the version is greater than or equal to version2, or true in any error condition.
154+
*/
155+
export function isVersionGreaterThanOrEqualTo(version1: string, version2: string): boolean {
156+
if (version1 == null || version2 == null) {
157+
return true;
158+
}
159+
160+
let version1Parts = version1.split('.');
161+
let version2Parts = version2.split('.');
162+
163+
if (version1Parts == null || version2Parts == null) {
164+
return true;
165+
}
166+
167+
let version1Part = 0;
168+
let version2Part = 0;
169+
170+
for (let i = 0; i < version1Parts.length; i++) {
171+
version1Part = parseInt(version1Parts[i] || '0');
172+
version2Part = parseInt(version2Parts[i] || '0');
173+
174+
if (version1Part > version2Part) {
175+
return true;
176+
}
177+
else if (version1Part < version2Part) {
178+
return false;
179+
}
180+
}
181+
182+
return true;
146183
}

src/msdo-installer.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ function setVariables(
167167

168168
process.env.MSDO_DIRECTORY = msdoDirectory;
169169
process.env.MSDO_FILEPATH = msdoFilePath;
170+
process.env.MSDO_INSTALLEDVERSION = cliVersion;
170171

171172
let exists = fs.existsSync(process.env.MSDO_FILEPATH);
172173

0 commit comments

Comments
 (0)