@@ -345,7 +345,17 @@ async function getRepository(user, repoURL) {
345
345
async function addUserToRepository ( copilot , repository , user , accessLevel ) {
346
346
const refreshedCopilot = await _refreshGitlabUserAccessToken ( copilot ) ;
347
347
const gitlab = await _authenticate ( refreshedCopilot . accessToken ) ;
348
- const member = await gitlab . ProjectMembers . show ( repository . id , user . userProviderId ) ;
348
+ const member = await new Promise ( ( resolve , reject ) => {
349
+ gitlab . ProjectMembers . show ( repository . id , user . userProviderId )
350
+ . then ( ( result ) => resolve ( result ) )
351
+ . catch ( ( err ) => {
352
+ // eslint-disable-next-line no-magic-numbers
353
+ if ( _ . get ( err , 'cause.response.status' ) === 404 ) {
354
+ return resolve ( null ) ;
355
+ }
356
+ return reject ( err ) ;
357
+ } ) ;
358
+ } ) ;
349
359
if ( ! member ) {
350
360
await gitlab . ProjectMembers . add ( repository . id , user . userProviderId , accessLevel ) ;
351
361
return ;
@@ -386,16 +396,17 @@ async function _refreshGitlabUserAccessToken(copilot) {
386
396
. end ( ) ;
387
397
// save user token data
388
398
const expiresIn = refreshTokenResult . body . expires_in || config . GITLAB_ACCESS_TOKEN_DEFAULT_EXPIRATION ;
389
- return await dbHelper . update ( models . User , copilot . id , {
399
+ const updates = {
390
400
accessToken : refreshTokenResult . body . access_token ,
391
401
accessTokenExpiration : new Date ( new Date ( ) . getTime ( ) + expiresIn * MS_PER_SECOND ) ,
392
402
refreshToken : refreshTokenResult . body . refresh_token
393
- } ) ;
403
+ } ;
404
+ copilot = _ . assign ( copilot , updates ) ;
405
+ return await dbHelper . update ( models . User , copilot . id , updates ) ;
394
406
}
395
407
return copilot ;
396
408
}
397
409
398
-
399
410
module . exports = {
400
411
createComment,
401
412
updateIssue,
0 commit comments