@soos-io/api-client
Advanced tools
Comparing version 0.2.0-pre.6 to 0.2.0-pre.7
@@ -20,3 +20,3 @@ import FormData from "form-data"; | ||
operatingEnvironment: string; | ||
integrationName?: IntegrationName | null; | ||
integrationName: IntegrationName; | ||
scriptVersion: string | null; | ||
@@ -23,0 +23,0 @@ appVersion: string | null; |
@@ -26,6 +26,7 @@ export declare enum ContributingDevelopersVariableNames { | ||
GithubActions = "GitHub", | ||
Gitlab = "GitLab", | ||
GitLab = "GitLab", | ||
Jenkins = "Jenkins", | ||
Script = "Script", | ||
TeamCity = "TeamCity", | ||
Travis = "TravisCI" | ||
TravisCI = "TravisCI" | ||
} | ||
@@ -32,0 +33,0 @@ export declare enum PackageManagerType { |
@@ -32,6 +32,7 @@ "use strict"; | ||
IntegrationName["GithubActions"] = "GitHub"; | ||
IntegrationName["Gitlab"] = "GitLab"; | ||
IntegrationName["GitLab"] = "GitLab"; | ||
IntegrationName["Jenkins"] = "Jenkins"; | ||
IntegrationName["Script"] = "Script"; | ||
IntegrationName["TeamCity"] = "TeamCity"; | ||
IntegrationName["Travis"] = "TravisCI"; | ||
IntegrationName["TravisCI"] = "TravisCI"; | ||
})(IntegrationName || (exports.IntegrationName = IntegrationName = {})); | ||
@@ -38,0 +39,0 @@ var PackageManagerType; |
import SOOSAnalysisApiClient, { ICreateScanRequestContributingDeveloperAudit, ICreateScanResponse } from "../api/SOOSAnalysisApiClient"; | ||
import SOOSProjectsApiClient from "../api/SOOSProjectsApiClient"; | ||
import { IntegrationName, OutputFormat, ScanStatus, ScanType } from "../enums"; | ||
@@ -35,3 +36,3 @@ interface IGenerateFormattedOutputParams { | ||
operatingEnvironment: string; | ||
integrationName?: IntegrationName; | ||
integrationName: IntegrationName; | ||
appVersion: string; | ||
@@ -55,3 +56,4 @@ scriptVersion: string; | ||
analysisApiClient: SOOSAnalysisApiClient; | ||
constructor(analysisApiClient: SOOSAnalysisApiClient); | ||
projectsApiClient: SOOSProjectsApiClient; | ||
constructor(analysisApiClient: SOOSAnalysisApiClient, projectsApiClient: SOOSProjectsApiClient); | ||
static create(apiKey: string, apiURL: string): AnalysisService; | ||
@@ -58,0 +60,0 @@ setupScan({ clientId, projectName, branchName, commitHash, buildVersion, buildUri, branchUri, integrationType, operatingEnvironment, integrationName, appVersion, scriptVersion, contributingDeveloperAudit, scanType, toolName, toolVersion, }: ISetupScanParams): Promise<ICreateScanResponse>; |
@@ -6,2 +6,3 @@ "use strict"; | ||
const SOOSAnalysisApiClient_1 = tslib_1.__importDefault(require("../api/SOOSAnalysisApiClient")); | ||
const SOOSProjectsApiClient_1 = tslib_1.__importDefault(require("../api/SOOSProjectsApiClient")); | ||
const constants_1 = require("../constants"); | ||
@@ -13,9 +14,23 @@ const enums_1 = require("../enums"); | ||
const Path = tslib_1.__importStar(require("path")); | ||
const integrationEnvMap = new Map([ | ||
[enums_1.IntegrationName.AWSCodeBuild, enums_1.ContributingDevelopersVariableNames.AWSCodeBuild], | ||
[enums_1.IntegrationName.Bamboo, enums_1.ContributingDevelopersVariableNames.Bamboo], | ||
[enums_1.IntegrationName.BitBucket, enums_1.ContributingDevelopersVariableNames.BitBucket], | ||
[enums_1.IntegrationName.CircleCI, enums_1.ContributingDevelopersVariableNames.CircleCI], | ||
[enums_1.IntegrationName.CodeShip, enums_1.ContributingDevelopersVariableNames.CodeShip], | ||
[enums_1.IntegrationName.GithubActions, enums_1.ContributingDevelopersVariableNames.GitHub], | ||
[enums_1.IntegrationName.GitLab, enums_1.ContributingDevelopersVariableNames.GitLab], | ||
[enums_1.IntegrationName.Jenkins, enums_1.ContributingDevelopersVariableNames.Jenkins], | ||
[enums_1.IntegrationName.TeamCity, enums_1.ContributingDevelopersVariableNames.TeamCity], | ||
[enums_1.IntegrationName.TravisCI, enums_1.ContributingDevelopersVariableNames.TravisCI], | ||
]); | ||
class AnalysisService { | ||
constructor(analysisApiClient) { | ||
constructor(analysisApiClient, projectsApiClient) { | ||
this.analysisApiClient = analysisApiClient; | ||
this.projectsApiClient = projectsApiClient; | ||
} | ||
static create(apiKey, apiURL) { | ||
const analysisApiClient = new SOOSAnalysisApiClient_1.default(apiKey, apiURL); | ||
return new AnalysisService(analysisApiClient); | ||
const projectsApiClient = new SOOSProjectsApiClient_1.default(apiKey, apiURL.replace("api.", "api-projects.")); | ||
return new AnalysisService(analysisApiClient, projectsApiClient); | ||
} | ||
@@ -27,12 +42,14 @@ setupScan({ clientId, projectName, branchName, commitHash, buildVersion, buildUri, branchUri, integrationType, operatingEnvironment, integrationName, appVersion, scriptVersion, contributingDeveloperAudit, scanType, toolName, toolVersion, }) { | ||
logging_1.soosLogger.info(`Branch Name: ${branchName}`); | ||
if (integrationName && contributingDeveloperAudit.length === 0) { | ||
if (integrationName !== enums_1.IntegrationName.Script && contributingDeveloperAudit.length === 0) { | ||
logging_1.soosLogger.info(`Integration Name: ${integrationName}`); | ||
const envVariableName = enums_1.ContributingDevelopersVariableNames[integrationName]; | ||
const contributingDeveloper = process.env[envVariableName]; | ||
if (contributingDeveloper) { | ||
contributingDeveloperAudit.push({ | ||
source: enums_1.ContributingDeveloperSource.EnvironmentVariable, | ||
sourceName: envVariableName, | ||
contributingDeveloperId: contributingDeveloper, | ||
}); | ||
const envVariableName = integrationEnvMap.get(integrationName); | ||
if (envVariableName) { | ||
const contributingDeveloper = process.env[envVariableName]; | ||
if (contributingDeveloper) { | ||
contributingDeveloperAudit.push({ | ||
source: enums_1.ContributingDeveloperSource.EnvironmentVariable, | ||
sourceName: envVariableName, | ||
contributingDeveloperId: contributingDeveloper, | ||
}); | ||
} | ||
} | ||
@@ -142,3 +159,4 @@ } | ||
}); | ||
logging_1.soosLogger.error(message); | ||
if (status === enums_1.ScanStatus.Incomplete || status === enums_1.ScanStatus.Error) | ||
logging_1.soosLogger.error(message); | ||
}); | ||
@@ -145,0 +163,0 @@ } |
@@ -8,3 +8,4 @@ declare const StringUtilities: { | ||
} & Intl.CollatorOptions) => boolean; | ||
isEmptyString: (value: string) => boolean; | ||
}; | ||
export default StringUtilities; |
@@ -20,3 +20,6 @@ "use strict"; | ||
}, | ||
isEmptyString: (value) => { | ||
return value.trim() === ""; | ||
}, | ||
}; | ||
exports.default = StringUtilities; |
@@ -51,2 +51,13 @@ "use strict"; | ||
}); | ||
describe("isEmptyString", () => { | ||
test("should return true for an empty string", () => { | ||
expect(StringUtilities_1.default.isEmptyString("")).toBe(true); | ||
}); | ||
test("should return true for a string with only spaces", () => { | ||
expect(StringUtilities_1.default.isEmptyString(" ")).toBe(true); | ||
}); | ||
test("should return false for a non-empty string", () => { | ||
expect(StringUtilities_1.default.isEmptyString("value")).toBe(false); | ||
}); | ||
}); | ||
}); |
declare const isNil: (value: unknown) => value is null | undefined; | ||
declare const isEmptyString: (value: string) => boolean; | ||
declare const ensureValue: <T>(value: T | null | undefined, propertyName: string) => T; | ||
@@ -12,2 +11,2 @@ declare const ensureNonEmptyValue: (value: string | null | undefined, propertyName: string) => string; | ||
declare const formatBytes: (bytes: number, decimals?: number) => string; | ||
export { isNil, isEmptyString, ensureValue, ensureEnumValue, ensureNonEmptyValue, sleep, isUrlAvailable, obfuscateProperties, convertStringToBase64, getEnvVariable, formatBytes, }; | ||
export { isNil, ensureValue, ensureEnumValue, ensureNonEmptyValue, sleep, isUrlAvailable, obfuscateProperties, convertStringToBase64, getEnvVariable, formatBytes, }; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.formatBytes = exports.getEnvVariable = exports.convertStringToBase64 = exports.obfuscateProperties = exports.isUrlAvailable = exports.sleep = exports.ensureNonEmptyValue = exports.ensureEnumValue = exports.ensureValue = exports.isEmptyString = exports.isNil = void 0; | ||
exports.formatBytes = exports.getEnvVariable = exports.convertStringToBase64 = exports.obfuscateProperties = exports.isUrlAvailable = exports.sleep = exports.ensureNonEmptyValue = exports.ensureEnumValue = exports.ensureValue = exports.isNil = void 0; | ||
const tslib_1 = require("tslib"); | ||
const axios_1 = tslib_1.__importStar(require("axios")); | ||
const SOOSLogger_1 = require("./logging/SOOSLogger"); | ||
const StringUtilities_1 = tslib_1.__importDefault(require("./StringUtilities")); | ||
const isNil = (value) => value === null || value === undefined; | ||
exports.isNil = isNil; | ||
const isEmptyString = (value) => { | ||
return value.trim() === ""; | ||
}; | ||
exports.isEmptyString = isEmptyString; | ||
const ensureValue = (value, propertyName) => { | ||
@@ -20,3 +17,3 @@ if (isNil(value)) | ||
const ensureNonEmptyValue = (value, propertyName) => { | ||
if (isNil(value) || isEmptyString(value)) | ||
if (isNil(value) || StringUtilities_1.default.isEmptyString(value)) | ||
throw new Error(`'${propertyName}' is required.`); | ||
@@ -23,0 +20,0 @@ return value; |
@@ -15,13 +15,2 @@ "use strict"; | ||
}); | ||
describe("isEmptyString", () => { | ||
test("should return true for an empty string", () => { | ||
expect((0, utilities_1.isEmptyString)("")).toBe(true); | ||
}); | ||
test("should return true for a string with only spaces", () => { | ||
expect((0, utilities_1.isEmptyString)(" ")).toBe(true); | ||
}); | ||
test("should return false for a non-empty string", () => { | ||
expect((0, utilities_1.isEmptyString)("value")).toBe(false); | ||
}); | ||
}); | ||
describe("ensureValue", () => { | ||
@@ -28,0 +17,0 @@ test("should throw an error for null", () => { |
{ | ||
"name": "@soos-io/api-client", | ||
"version": "0.2.0-pre.6", | ||
"version": "0.2.0-pre.7", | ||
"description": "This is the SOOS API Client for registered clients leveraging the various integrations to the SOOS platform.", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
60489
1278