在将分支保护添加到develop分支之前,bitbucket-pipelines用户在发布结束时自动将版本更改提交到develop分支。
添加分支保护后,由于bitbucket-pipelines没有写入分支的权限,发布失败。这是错误:
+ git push && git push --tags
remote: Permission denied to update branch develop.To http://bitbucket.org/team_name/repo_name
! [remote rejected] develop -> develop (pre-receive hook declined)
error: failed to push some refs to 'http://bitbucket.org/team_name/repo_name'
这是 bitbucket-pipelines.yml 文件:
pipelines:
branches:
develop:
- step:
name: test
script:
- npm install
- npm run tsc
- npm test
- step:
name: release
trigger: manual
caches:
- node
script:
- npm install
- npm run tsc
- npm publish
- npm version minor -m "Upgrade to %s [skip ci]"
- git push && git push --tags
我尝试授予 bitbucket-pipelines 用户写入权限,但是我无法做到这一点,用户名没有出现:
有没有办法允许该用户即使有分支保护也可以提交,或者是否可以授予该用户写入权限?
提前致谢。
您需要创建一个“bot”用户,然后单击其头像,选择一个工作区,单击“设置”>“OAuth 消费者”>“添加消费者”,然后在管道配置中使用客户端 ID 和密钥:
# Get an oauth access token using the client credentials, parsing out the token with jq.
- apt-get update && apt-get install -y curl jq
- >
export access_token=$(curl -s -X POST -u "${CLIENT_ID}:${CLIENT_SECRET}" \
https://bitbucket.org/site/oauth2/access_token \
-d grant_type=client_credentials -d scopes="repository"| jq --raw-output '.access_token')
# Configure git to use the oauth token.
- git remote set-url origin "https://x-token-auth:${access_token}@bitbucket.org/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}"
# Make changes and commit back.
- echo "Made a change in build ${BITBUCKET_BUILD_NUMBER}" >> changes.txt
- git add changes.txt
- git commit -m "[skip ci] Updating changes.txt with latest build number."
- git push
更多信息:https://support.atlassian.com/bitbucket-cloud/docs/push-back-to-your-repository/
我遇到了类似的问题,并想办法让它发挥作用。步骤如下:
导出 access_token=$(curl -s -X POST -u "
: " \ https://bitbucket.org/site/oauth2/access_token \ -d grant_type=client_credentials -d 范围=“存储库”| jq --原始输出 '.access_token')
将
curl --请求 GET \ --url 'https://api.bitbucket.org/2.0/repositories///branch-restrictions' \ --header '授权:承载'${access_token}'' \ --header '接受:application/json'
相应地更换。它将打印出存储库所有可用分支限制的 JSON 响应。找到要进行下一步更改的分支和restriction_id。
curl --请求 PUT \ --url 'https://api.bitbucket.org/2.0/repositories///branch-restrictions/
' \ --header '授权:承载'${access_token}'' \ --header '接受:application/json' \ --header '内容类型: 应用程序/json' \ --data '{ "type": "分支限制", “用户”:[ { “类型”:“用户”, “用户名”:“” } ], “组”:[] }'
根据需要替换 、 、