in src/server/passports/github.js [18:55]
async function checkToken(item, accessToken) {
const baseURL = `https://api.github.com`
const checkAuthApi = `${ baseURL }/applications/${ config.server.github.client }/token`
const newToken = accessToken
const oldToken = item.token
const accesstokenObject = {
access_token: oldToken
}
try {
const header = {
method: 'POST',
headers: {
'Authorization': 'Basic ' + base64.encode(config.server.github.client + ":" + config.server.github.secret),
'User-Agent': 'CLA assistant',
'Accept': 'application/vnd.github.doctor-strange-preview+json',
'Content-Type': 'application/json'
},
body: JSON.stringify(accesstokenObject)
}
const res = await fetch(checkAuthApi, header)
const checkTokenResponse = await res.json()
if (checkTokenResponse) {
if (!(checkTokenResponse && checkTokenResponse.scopes && checkTokenResponse.scopes.indexOf('write:repo_hook') >= 0)) {
updateToken(item, newToken)
} else if (item.repo) {
const ghRepo = await repoService.getGHRepo(item)
if (!(ghRepo && ghRepo.permissions && ghRepo.permissions.admin)) {
updateToken(item, newToken)
logger.info('Update access token for repo ', item.repo, ' admin rights have been changed')
}
}
}
} catch (error) {
updateToken(item, newToken)
}
}