获取BitBucket Pipelines中已更改文件的列表



我知道我可以将特定步骤限制为";条件:变更集:includePaths:"这不是我想做的。

我知道我可以使用git diff在最后一次提交中获得修改过的文件列表。不幸的是,这还不够。

我想做的是获得自上次推送以来在此分支中修改的所有文件的列表。例如,假设您执行以下操作:

  1. 创建一个分支
  2. 提交A
  3. 推动
  4. 提交B
  5. 提交C
  6. 提交D
  7. 推动

我想要一个在所有B、C和D中修改的文件列表,这样我就可以将它们传递给我的测试脚本,并评估自上次管道运行以来修改的所有文件。

使用拉取请求,我想我可以通过区分BITBUCKET_COMMITBITBUCKET_PR_DESTINATION_BRANCH来实现这一点。但对于我想在任何时候推送提交时简单运行的管道步骤,我不知道如何获得我想要的变更集。

对于在2023年或之后寻找这个问题答案的人,我们可以使用Bitbucket API在管道构建中的pull请求中获得更新对象的列表,例如:

# Get the PR diffstat URL
curl --request GET --url "https://api.bitbucket.org/2.0/repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}" --header "Authorization: Bearer <access_token>" --header "Accept: application/json" -o response.json
DIFFSTAT_URL=$(jq -r .links.diffstat.href response.json)
curl --request GET --url "${DIFFSTAT_URL}" --header "Authorization:Bearer <access_token>" --header "Accept: application/json" -o diffstat.json
jq -r .values[].new.path diffstat.json > changelog.txt

来源:https://developer.atlassian.com/cloud/bitbucket/rest/api-group-pullrequests

最新更新