希望你们一切都好。我只是想知道是否有办法找出用户创建了多少个拉取请求。还有同一用户的拉取请求有多少被批准或拒绝。只是想将此信息用于某些指标。
最佳答案
我做了一些研究并发现了这一点:
通过pip install requests
首次安装请求。然后需要生成访问 token (设置 - 开发者设置 - 个人访问 token - 生成新 token ),并为 token 添加用户:读取用户权限。
然后,您需要将 token 导出为环境变量。有很多关于如何执行此操作的博客文章 - 为了使其与下面提供的脚本一起使用,您应该将其命名为 GITSTATS_TOKEN
。
要获取您已提交和审核的 PR 数量,您可以运行以下脚本(添加您自己的用户名和您感兴趣的存储库 - 在此示例中,查询显示我提交了多少 PR并在 pandas-dev/pandas 中进行了审查):
import requests
import os
data = requests.get('https://api.github.com/search/issues?q=is:pr+repo:pandas-dev/pandas+author:AUTHOR+is:merged').json()
print(f"Merged PRs: {data['total_count']}")
url = 'https://api.github.com/graphql'
query = (
"""
{
user(login: "AUTHOR") {
contributionsCollection {
pullRequestReviewContributionsByRepository {
contributions {
totalCount
}
repository {
name
}
}
}
}
}
"""
)
json = { 'query' : query}
api_token = os.environ['GITSTATS_TOKEN']
headers = {'Authorization': 'token %s' % api_token}
r = requests.post(url=url, json=json, headers=headers)
json_data = r.json()['data']['user']['contributionsCollection']['pullRequestReviewContributionsByRepository']
reviews = [i['contributions']['totalCount'] for i in json_data if i['repository']['name'] == 'pandas'][0]
print(f'Number of reviews: {reviews}')
关于github - 计算创建、合并或拒绝的拉取请求数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70951216/