在 Github 上的大型开源存储库上工作。有超过 300 个拉取请求 (PR) 等待队列合并到主分支。
我想在文件中添加功能,在此之前,我需要确保不存在进行相同更改的现有 PR。
那么如何找出包含特定文件更改的拉取请求呢?
得到@Philippe和@knight9631的帮助,我得到了预期的结果。
upstream
按照@Philippe 的回复中的描述进行更改。
$ git remote add upstream https://github.com/[orga]/[project].git
# add fetch = +refs/pull/*/head:refs/remotes/origin/pr/* to .git/config in session origin
$ git fetch --all
Run Code Online (Sandbox Code Playgroud)
运行下面的脚本。
FILENAME=$1
git log --all --format=%d $FILENAME|awk -F "[\/|\)]" '/pr/{print $3}' |sort -n |while read line
do
state=$(curl -s https://api.github.com/repos/ansible/ansible/pulls/$line|jq -r .state)
if [[ $state == "open" ]]; then
echo "PR $line hasn't been merged"
fi
done
Run Code Online (Sandbox Code Playgroud)
$ bash PR.sh abc.json
PR 22857 hasn't been merged
PR 19231 hasn't been merged
PR 22981 hasn't been merged
Run Code Online (Sandbox Code Playgroud)
获取Github API时需要添加授权token。否则很容易达到限速
TOKEN="<your_own_token"
state=$(curl -s -H "Authorization: token $TOKEN" https://api.github.com/repos/ansible/ansible/pulls/$line|jq -r .state)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4594 次 |
最近记录: |