我想根据当pull请求被批准并合并到目标分支时,哪些文件发生了更改,来控制bitbucket管道中发生的情况。我遇到的问题是bitbucket在运行管道之前提交。因此,当管道被踢出时,所有提交都在当前分支上。所以我不明白我怎么知道哪些文件自上次运行管道以来发生了变化?
我认为git show HEAD^1不会工作,因为可能会有几十个提交。我不知道如何在合并拉取请求之前的最新提交与刚刚合并为拉取请求一部分的最新提交之间进行git比较。
有没有办法知道哪些文件在使用git命令作为拉取请求的一部分进行了更改?本质上,当您查看拉取请求时,Bitbucket向您显示的信息是相同的,我如何获得该文件列表?
发布于 2020-08-20 07:29:53
找到了使用bitbucket API和endpoint的解决方案(有文档记录的here)
使用bitbucket提交,您可以对此端点进行GET调用:https://api.bitbucket.org/2.0/repositories/{workspace}/{repo_slug}/diffstat/{commit}
在bitbucket管道期间运行此命令时,所有三个变量都可用于bitbucket默认变量(列出的here)
使用python请求库,按照惯例发出get请求:
headers = {'Content-Type': 'application/json'}
r = requests.get(url, auth=(<username>,<app_password>), headers=headers)Bitbucket不再接受密码,因此您必须创建一个应用程序密码来代替您的帐户密码(说明here)
当使用有效的commit (仅尝试使用短版本而不是全长SHA)对此端点执行GET时,我收到一个json,其中包含每个更改的字典列表。
https://stackoverflow.com/questions/63443900
复制相似问题