假设有一个提交范围,例如:
是否有可能获取这些提交关闭的问题列表?
目前我只能手动地查看每个提交,找到相应的 PR,并查看是否有与之相关联的问题。有什么自动化的方法吗?
假设有一个提交范围,例如:
是否有可能获取这些提交关闭的问题列表?
目前我只能手动地查看每个提交,找到相应的 PR,并查看是否有与之相关联的问题。有什么自动化的方法吗?
#!/bin/bash
echo "[" > allResults
i=1
numResults=1
firstRun=1
while [[ $numResults -gt 0 ]]
do
curl -X GET -u ${GITHUB_USERNAME}:${HOMEBREW_GITHUB_API_TOKEN} "https://api.github.com/repos/microsoft/msquic/pulls?state=closed&page=$i" > page
numResults=`cat page | jq '. | length'`
i=$[$i + 1]
if [[ $numResults -gt 0 ]]
then
# bit of nonsense to deal with trailing comma problem
if [[ $firstRun -ne 1 ]]
then
echo "," >> allResults
fi
if [[ $firstRun -eq 1 ]]
then
firstRun=0
fi
cat page | awk 'NR != 1 { print buffer; buffer = $0 }' >> allResults
fi
done
echo "]" >> allResults
echo "[" > prsWithIssues
# select only PRs with issues then use the crazy awk business to put
# back the commas in the array
cat allResults | jq '.[] | select(.has_issues == true)' | awk '/^{/ { if (endsWithBrace) {print","$0} else {print} ; endsWithBrace=0} !/^{/ {endsWithBrace=1; print} /.*\}$/ { endsWithBrace = 1 }' >> prsWithIssues
echo "]" >> prsWithIssues
cat prsWithIssues | jq '.[] | "\(.merge_commit_sha) \(._links.issue.href)"' > mergeCommitToIssueLink
# just printing here, you'll probably want
# to do a grep for commits in the range you want
cat mergeCommitToIssueLink
正如@Eric_Wang在评论中提到的那样;Github的“问题”不会(必须)关联特定的提交或分支,除非手动标记为这样。合并的Github 拉取请求将会关联,但同样地,除非它们手动与问题关联。然而(考虑到赏金的时间限制),您可以使用Preview v3 Commit Search API来对匹配或引用您给出的请求的问题和PR进行文本grep。如果时间得以延长,我会给您展示一个例子,但它相当易于理解。