async function checkToken()

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)
    }

}