我正在创建一个GitHub Action,它运行检查以查看拉取请求如何影响代码库。该检查需要两个输入:
第二个输入很简单:它是PR分支上的最新提交
第一个有点棘手,我很难弄清楚。由于存在潜在的重新安排问题,它不能简单地成为主(上游)存储库的master
(新的更改已在upstream/master
上,而不在分支的master
中) 。所以我在merge-base
分支和master
之间使用HEAD
。
git merge-base master HEAD
这可以按预期工作,但是如果PR是从分支的master
分支中创建的,则会出现问题。合并基础与HEAD
相同。
如何获取正确的SHA
以便在更改PR之前检出存储库。 GitHub可以正确处理这种情况,并且仅显示更改的文件。
答案 0 :(得分:1)
如果在PR合并后 运行此操作,则应查找PR commit的父母的合并基础:
git merge-base HEAD^ HEAD^2
答案 1 :(得分:0)
似乎可行的解决方案是在拉取请求 TextFormField(style: TextStyle(decoration: TextDecoration.none),
decoration: InputDecoration(labelText: 'Enter your sample Username'),
validator: (input) { return null;});
和HEAD
upstream
之间找到合并基础。
master
这假定拉取请求指向git remote add upstream https://github.com/${{github.repository}}
git fetch upstream
merge_base=$(git merge-base refs/remotes/upstream/master HEAD)
git checkout $merge_base
分支。