diff --git a/lib/get-git-auth-url.js b/lib/get-git-auth-url.js index 10bdda1d..4495d95d 100644 --- a/lib/get-git-auth-url.js +++ b/lib/get-git-auth-url.js @@ -3,16 +3,6 @@ const {isNil} = require('lodash'); const hostedGitInfo = require('hosted-git-info'); const {verifyAuth} = require('./git'); -const GIT_TOKENS = { - GIT_CREDENTIALS: undefined, - GH_TOKEN: undefined, - GITHUB_TOKEN: undefined, - GL_TOKEN: 'gitlab-ci-token:', - GITLAB_TOKEN: 'gitlab-ci-token:', - BB_TOKEN: 'x-token-auth:', - BITBUCKET_TOKEN: 'x-token-auth:', -}; - /** * Determine the the git repository URL to use to push, either: * - The `repositoryUrl` as is if allowed to push @@ -25,6 +15,18 @@ const GIT_TOKENS = { * @return {String} The formatted Git repository URL. */ module.exports = async ({cwd, env, options: {repositoryUrl, branch}}) => { + const GIT_TOKENS = { + GIT_CREDENTIALS: undefined, + GH_TOKEN: undefined, + // GitHub Actions require the "x-access-token:" prefix for git access + // https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#http-based-git-access-by-an-installation + GITHUB_TOKEN: isNil(env.GITHUB_ACTION) ? undefined : 'x-access-token:', + GL_TOKEN: 'gitlab-ci-token:', + GITLAB_TOKEN: 'gitlab-ci-token:', + BB_TOKEN: 'x-token-auth:', + BITBUCKET_TOKEN: 'x-token-auth:', + }; + const info = hostedGitInfo.fromUrl(repositoryUrl, {noGitPlus: true}); const {protocol, ...parsed} = parse(repositoryUrl);