sh 清除GitHub上合并PR的通知
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 清除GitHub上合并PR的通知相关的知识,希望对你有一定的参考价值。
#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o xtrace
#requires curl and jq
auth="Authorization: token YOUR_SECRET_OAuth_TOKEN"
declare -i pages
headers=$(curl -I -H "${auth}" https://api.github.com/notifications)
if [[ $headers == *"Link:"* ]]
then
links=$(echo ${headers} |grep -e "Link:")
pages=$(echo ${links} |tr "," "\n" |grep last |grep -Eo "page=[0-9]+" |grep -Eo "[0-9]+")
else
pages=1
fi
rm -f /tmp/notifications.json
for ((i=1; i<=$pages; i++)); do
curl -H "${auth}" https://api.github.com/notifications?page=${i} \
| jq -r '.[] | select(.unread) | select(.subject.type == "PullRequest") | "\(.id) \(.subject.url)"' \
>>/tmp/notifications.json
done
#check if a pull request has been merged
is_merged() {
local STATUS=$(curl -H "${auth}" -s -o /dev/null -w "%{http_code}\n" ${1}/merge)
if [ $STATUS -eq 204 ]
then
return 0
else
return 1
fi
}
#call with id and pr_url
mark_read_if_merged() {
if is_merged $2;
then
curl --request PATCH -H "${auth}" https://api.github.com/notifications/threads/${1}
fi
}
while read notification_id pr_url
do
mark_read_if_merged $notification_id $pr_url
done < /tmp/notifications.json
以上是关于sh 清除GitHub上合并PR的通知的主要内容,如果未能解决你的问题,请参考以下文章
在 PR 上通过的所有检查的 Github API Webhook/Notification
github上测试服出现bug,如何回滚并获得合并之前的分支
sh 显示合并PR提交标签
如果评论被用户批准,则通过 Github 操作合并 PR
《Git与Github使用笔记》第12章 Pull Request的使用
《Git与Github使用笔记》第12章 Pull Request的使用