Skip to content

Commit 8c02bf6

Browse files
committed
version 1.0.19
1 parent c39da90 commit 8c02bf6

File tree

6 files changed

+165
-141
lines changed

6 files changed

+165
-141
lines changed

__e2e__/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"dotenv": "16.4.7",
1111
"node-pty": "1.0.0",
1212
"npm": "10.9.0",
13-
"verdaccio": "6.0.0"
13+
"verdaccio": "6.0.5"
1414
},
1515
"author": "",
1616
"license": "ISC"

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "mobbdev",
3-
"version": "1.0.17",
3+
"version": "1.0.19",
44
"description": "Automated secure code remediation tool",
55
"repository": "git+https://github.com/mobb-dev/bugsy.git",
66
"main": "dist/index.js",
+52-50
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import { SCMLib } from './scm'
22
import {
33
CreateSubmitRequestParams,
4+
GetGitBlameReponse,
45
GetRefererenceResult,
6+
ReferenceType,
57
ScmLibScmType,
68
ScmRepoInfo,
79
ScmSubmitRequestStatus,
@@ -16,108 +18,108 @@ export class StubSCMLib extends SCMLib {
1618
super(url, accessToken, scmOrg)
1719
}
1820

19-
public override getUrlWithCredentials(): Promise<string> {
20-
console.error('getUrlWithCredentials() not implemented')
21-
throw new Error('getUrlWithCredentials() not implemented')
21+
public override async getUrlWithCredentials(): Promise<string> {
22+
console.warn('getUrlWithCredentials() returning empty string')
23+
return ''
2224
}
2325

2426
async createSubmitRequest(
2527
_params: CreateSubmitRequestParams
2628
): Promise<string> {
27-
console.error('createSubmitRequest() not implemented')
28-
throw new Error('createSubmitRequest() not implemented')
29+
console.warn('createSubmitRequest() returning empty string')
30+
return ''
2931
}
3032

3133
get scmLibType(): ScmLibScmType {
32-
console.error('getScmLibType() not implemented')
33-
throw new Error('getScmLibType() not implemented')
34+
console.warn('scmLibType returning GITHUB as default')
35+
return ScmLibScmType.GITHUB
3436
}
3537

3638
getAuthHeaders(): Record<string, string> {
37-
console.error('getAuthHeaders() not implemented')
38-
throw new Error('getAuthHeaders() not implemented')
39+
console.warn('getAuthHeaders() returning empty object')
40+
return {}
3941
}
4042

41-
getDownloadUrl(_sha: string): Promise<string> {
42-
console.error('getDownloadUrl() not implemented')
43-
throw new Error('getDownloadUrl() not implemented')
43+
async getDownloadUrl(_sha: string): Promise<string> {
44+
console.warn('getDownloadUrl() returning empty string')
45+
return ''
4446
}
4547

4648
async getIsRemoteBranch(_branch: string): Promise<boolean> {
47-
console.error('getIsRemoteBranch() not implemented')
48-
throw new Error('getIsRemoteBranch() not implemented')
49+
console.warn('getIsRemoteBranch() returning false')
50+
return false
4951
}
5052

51-
async validateParams() {
52-
console.error('validateParams() not implemented')
53-
throw new Error('validateParams() not implemented')
53+
async validateParams(): Promise<void> {
54+
console.warn('validateParams() no-op')
5455
}
5556

5657
async getRepoList(_scmOrg: string | undefined): Promise<ScmRepoInfo[]> {
57-
console.error('getRepoList() not implemented')
58-
throw new Error('getRepoList() not implemented')
58+
console.warn('getRepoList() returning empty array')
59+
return []
5960
}
6061

6162
async getBranchList(): Promise<string[]> {
62-
console.error('getBranchList() not implemented')
63-
throw new Error('getBranchList() not implemented')
63+
console.warn('getBranchList() returning empty array')
64+
return []
6465
}
6566

6667
async getUsername(): Promise<string> {
67-
console.error('getUsername() not implemented')
68-
throw new Error('getUsername() not implemented')
68+
console.warn('getUsername() returning empty string')
69+
return ''
6970
}
7071

7172
async getSubmitRequestStatus(
7273
_scmSubmitRequestId: string
7374
): Promise<ScmSubmitRequestStatus> {
74-
console.error('getSubmitRequestStatus() not implemented')
75-
throw new Error('getSubmitRequestStatus() not implemented')
75+
console.warn('getSubmitRequestStatus() returning ERROR')
76+
return 'error'
7677
}
7778

7879
async getUserHasAccessToRepo(): Promise<boolean> {
79-
console.error('getUserHasAccessToRepo() not implemented')
80-
throw new Error('getUserHasAccessToRepo() not implemented')
80+
console.warn('getUserHasAccessToRepo() returning false')
81+
return false
8182
}
8283

8384
async getRepoBlameRanges(
8485
_ref: string,
8586
_path: string
86-
): Promise<
87-
{
88-
startingLine: number
89-
endingLine: number
90-
name: string
91-
login: string
92-
email: string
93-
}[]
94-
> {
95-
console.error('getRepoBlameRanges() not implemented')
96-
throw new Error('getRepoBlameRanges() not implemented')
87+
): Promise<GetGitBlameReponse> {
88+
console.warn('getRepoBlameRanges() returning empty array')
89+
return []
9790
}
9891

9992
async getReferenceData(_ref: string): Promise<GetRefererenceResult> {
100-
console.error('getReferenceData() not implemented')
101-
throw new Error('getReferenceData() not implemented')
93+
console.warn('getReferenceData() returning null/empty defaults')
94+
return {
95+
type: ReferenceType.BRANCH,
96+
sha: '',
97+
date: undefined,
98+
}
10299
}
103100

104101
async getRepoDefaultBranch(): Promise<string> {
105-
console.error('getRepoDefaultBranch() not implemented')
106-
throw new Error('getRepoDefaultBranch() not implemented')
102+
console.warn('getRepoDefaultBranch() returning empty string')
103+
return ''
107104
}
105+
108106
async getPrUrl(_prNumber: number): Promise<string> {
109-
console.error('getPr() not implemented')
110-
throw new Error('getPr() not implemented')
107+
console.warn('getPrUrl() returning empty string')
108+
return ''
111109
}
110+
112111
async getPrId(_prUrl: string): Promise<string> {
113-
console.error('getPrId() not implemented')
114-
throw new Error('getPrId() not implemented')
112+
console.warn('getPrId() returning empty string')
113+
return ''
115114
}
115+
116116
async getCommitUrl(_commitId: string): Promise<string> {
117-
console.error('getCommitUrl() not implemented')
118-
throw new Error('getCommitUrl() not implemented')
117+
console.warn('getCommitUrl() returning empty string')
118+
return ''
119119
}
120-
_getUsernameForAuthUrl(): Promise<string> {
121-
throw new Error('Method not implemented.')
120+
121+
async _getUsernameForAuthUrl(): Promise<string> {
122+
console.warn('_getUsernameForAuthUrl() returning empty string')
123+
return ''
122124
}
123125
}

src/features/analysis/scm/ado/utils.ts

+37-32
Original file line numberDiff line numberDiff line change
@@ -340,39 +340,44 @@ export async function getAdoToken({
340340
tokenType: AdoOAuthTokenType
341341
redirectUri: string
342342
}) {
343-
const res = await fetch(ADO_ACCESS_TOKEN_URL, {
344-
method: 'POST',
345-
headers: {
346-
Accept: 'application/json',
347-
'Content-Type': 'application/x-www-form-urlencoded',
348-
},
349-
body: querystring.stringify({
350-
client_assertion_type:
351-
'urn:ietf:params:oauth:client-assertion-type:jwt-bearer',
352-
client_assertion: adoClientSecret,
353-
redirect_uri: redirectUri,
354-
assertion: token,
355-
grant_type:
356-
tokenType === 'code'
357-
? 'urn:ietf:params:oauth:grant-type:jwt-bearer'
358-
: 'refresh_token',
359-
}),
360-
})
361-
const authResult = await res.json()
362-
const parsedAuthResult = AdoAuthResultZ.safeParse(authResult)
363-
if (!parsedAuthResult.success) {
364-
debug('ado refresh token error', { authResult, redirectUri })
365-
}
366-
const scmOrgs = parsedAuthResult.success
367-
? await getOrgsForOauthToken({
368-
oauthToken: parsedAuthResult.data.access_token,
369-
})
370-
: null
343+
try {
344+
const res = await fetch(ADO_ACCESS_TOKEN_URL, {
345+
method: 'POST',
346+
headers: {
347+
Accept: 'application/json',
348+
'Content-Type': 'application/x-www-form-urlencoded',
349+
},
350+
body: querystring.stringify({
351+
client_assertion_type:
352+
'urn:ietf:params:oauth:client-assertion-type:jwt-bearer',
353+
client_assertion: adoClientSecret,
354+
redirect_uri: redirectUri,
355+
assertion: token,
356+
grant_type:
357+
tokenType === 'code'
358+
? 'urn:ietf:params:oauth:grant-type:jwt-bearer'
359+
: 'refresh_token',
360+
}),
361+
})
362+
const authResult = await res.json()
363+
const parsedAuthResult = AdoAuthResultZ.safeParse(authResult)
364+
if (!parsedAuthResult.success) {
365+
debug('ado refresh token error', { authResult, redirectUri })
366+
}
367+
const scmOrgs = parsedAuthResult.success
368+
? await getOrgsForOauthToken({
369+
oauthToken: parsedAuthResult.data.access_token,
370+
})
371+
: null
371372

372-
return AdoAuthResultWithOrgsZ.safeParse({
373-
...parsedAuthResult.data,
374-
scmOrgs,
375-
})
373+
return AdoAuthResultWithOrgsZ.safeParse({
374+
...parsedAuthResult.data,
375+
scmOrgs,
376+
})
377+
} catch (e) {
378+
debug('failed to get ADO token:', e)
379+
return { success: false, data: null }
380+
}
376381
}
377382

378383
export async function validateAdoRepo({

src/features/analysis/scm/bitbucket/bitbucket.ts

+37-30
Original file line numberDiff line numberDiff line change
@@ -73,41 +73,48 @@ export async function getBitbucketToken(
7373
params: GetBitbucketTokenArgs
7474
): Promise<GetBitbucketTokenRes> {
7575
const { bitbucketClientId, bitbucketClientSecret, authType } = params
76-
const res = await fetch(BITBUCKET_ACCESS_TOKEN_URL, {
77-
method: 'POST',
78-
headers: {
79-
'Content-Type': 'application/x-www-form-urlencoded',
80-
Authorization:
81-
'Basic ' + btoa(`${bitbucketClientId}:${bitbucketClientSecret}`),
82-
},
83-
body: querystring.stringify(
84-
authType === 'refresh_token'
85-
? {
86-
grant_type: authType,
87-
refresh_token: params.refreshToken,
88-
}
89-
: {
90-
grant_type: authType,
91-
code: params.code,
92-
}
93-
),
94-
})
95-
const authResult = await res.json()
76+
try {
77+
const res = await fetch(BITBUCKET_ACCESS_TOKEN_URL, {
78+
method: 'POST',
79+
headers: {
80+
'Content-Type': 'application/x-www-form-urlencoded',
81+
Authorization:
82+
'Basic ' + btoa(`${bitbucketClientId}:${bitbucketClientSecret}`),
83+
},
84+
body: querystring.stringify(
85+
authType === 'refresh_token'
86+
? {
87+
grant_type: authType,
88+
refresh_token: params.refreshToken,
89+
}
90+
: {
91+
grant_type: authType,
92+
code: params.code,
93+
}
94+
),
95+
})
96+
const authResult = await res.json()
9697

97-
const parseResult = BitbucketAuthResultZ.safeParse(authResult)
98-
if (!parseResult.success) {
99-
debug(
100-
`failed to parse bitbucket auth result for: ${authType}`,
101-
parseResult.error
102-
)
98+
const parseResult = BitbucketAuthResultZ.safeParse(authResult)
99+
if (!parseResult.success) {
100+
debug(
101+
`failed to parse bitbucket auth result for: ${authType}`,
102+
parseResult.error
103+
)
104+
return {
105+
success: false,
106+
}
107+
}
108+
return {
109+
success: true,
110+
authResult: parseResult.data,
111+
}
112+
} catch (e) {
113+
debug(`failed to get bitbucket token:`, e)
103114
return {
104115
success: false,
105116
}
106117
}
107-
return {
108-
success: true,
109-
authResult: parseResult.data,
110-
}
111118
}
112119

113120
type GetBranchParams = {

0 commit comments

Comments
 (0)