我喜欢借助GitHub API计算存储库中的所有打开请求和问题。我发现API端点<!doctype html>
<html>
<head>
<meta charset="utf-8">
<style type="text/css">
.ModalWrapper {
width: 100%;
height: 100%;
position: fixed;
text-align: center;
}
.ModalPopup {
background: #ffffff;
border-radius: 5px;
display: inline-block;
border: solid thin #19b4b5;
}
.ModalTop {
text-align: center !important;
width: 100%;
height: 30%;
min-height: 30%;
padding-top: 5%;
padding-bottom: 5%;
top: 0px;
left: 0px;
background-color: #19b4b5;
}
.ModalContent {
display: inline-block;
margin: 10px;
}
</style>
</head>
<body>
<div id="fb-root"></div>
<script language="javascript" type="text/javascript">
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s);
js.id = id;
js.src = "//connect.facebook.net/de_DE/sdk.js#xfbml=1&version=v2.8";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<div class="ModalWrapper">
<div class="ModalPopup">
<div class="ModalTop">Your Post</div>
<div class="ModalContent">
<div class="fb-post" data-href="https://www.facebook.com/20531316728/posts/10154009990506729/" data-show-text="true">
<blockquote cite="https://www.facebook.com/20531316728/posts/10154009990506729/" class="fb-xfbml-parse-ignore"></blockquote>
</div>
</div>
</div>
</div>
</body>
</html>
结果包含/repos/:owner/:repo
属性。然而,这是问题数量和拉取请求的总和。
有没有办法获取或计算未结问题的数量并在存储库中提取请求?
答案 0 :(得分:1)
osowskit是正确的,最简单的方法是迭代问题列表和存储库中的拉取请求列表(我假设你想为每个问题获得单独的计数,在你的问题)。
问题API将返回问题和拉取请求,因此您需要计算两者并从问题数量中减去拉取请求的数量,以获得不是拉取请求的问题计数。例如,使用精彩的github3.py
Python库:
import github3
gh = github3.login(token='your_api_token')
issues_count = len(list(gh.repository('owner', 'repo').issues()))
pulls_count = len(list(gh.repository('owner', 'repo').pull_requests()))
print('{} issues, {} pull requests'.format(issues_count - pulls_count, pulls_count))
答案 1 :(得分:1)
(比接受的答案更有效的方法)是使用搜索API。 要获取您可以致电的未解决问题的数量(用您的组织和仓库来代替):
https://api.github.com/search/issues?q=repo:realm/realm-java%20is:issue%20is:open&per_page=1
并获取PR的数量:
https://api.github.com/search/issues?q=repo:realm/realm-java%20is:pr%20is:open&per_page=1
如果您同时希望获得未解决和已解决的问题/公关,当然可以删除is:open
。
两者都将返回结果“ total_count”。请注意,我添加了per_page=1
,实际上并未检索到所有问题。
答案 2 :(得分:0)
您不需要遍历所有拉取请求。 GitHub API返回页面,在链接标题中,您可以访问第一页,上一页,下一页和最后一页。您可以使用它来实现更有效的算法:
1)获取第一页并指定页面大小为1 2)获取最后一页链接的值(即页数) 3)因此,您将拥有页数,因此PR,并且不必获取所有这些页面。
答案 3 :(得分:0)
使用 Github Graphql API,您现在可以在一个请求中完成此操作:
{
repository(owner: "mui-org", name: "material-ui") {
issues(states: OPEN) {
totalCount
}
pullRequests(states: OPEN) {
totalCount
}
}
}
输出:
{
"data": {
"repository": {
"issues": {
"totalCount": 471
},
"pullRequests": {
"totalCount": 47
}
}
}
}