我们使用GitHub Enterprise作为内部代码库。我们跨团队面临的一个常见问题是“拉动请求审核的周转时间”有时可能是几个“物理天”(很多理想的时间)。
我们正在调整一些工程实践,以防止PR不必要地变大,并允许更快的审阅时间。但是,我找不到任何有助于准确跟踪PR合并之前打开的时间的信息。
我们想使用客观指标来验证我们的一些方法,以查看我们是否对审查时间做出了有意义的改变,并且“直到合并的开放PR持续时间”是要跟踪的重要指标。
git / GitHub有什么可以帮助获得此类指标的东西吗?我试着看,但是什么都没出现。
答案 0 :(得分:2)
GitHub的graphQL API可以帮助您获取请求请求元数据,例如PR的创建时间(createdAt)和合并的时间(mergedAt)https://developer.github.com/v4/object/pullrequest/ 您可以使用搜索查询https://developer.github.com/v4/query/#connections搜索所有提取请求,然后计算合并时间。
此外,您可能对该工具https://github.com/change-metrics/monocle感兴趣,因为它为GitHub存储库提供了请求请求指标。在其他各种指标中,该工具计算“平均合并时间”指标。借助您可以设置的过滤器,您可以获得平均的时间来合并整个GitHub组织,特定存储库,开发人员或一组开发人员。
答案 1 :(得分:1)
您可以使用Github Rest Api来获取详细信息。我添加了带有示例存储库的示例。我认为对于企业版,您必须使用令牌(https://github.com/settings/tokens)访问回购信息。在这种情况下,请求uri将为
https://api.github.com/repos/srajagop/page-test/pulls?token=xxxxxxxxxxxxxxxxx
例如
async function timeElapsed(){
let response = await fetch('https://api.github.com/repos/srajagop/page-test/pulls');
let jsonData = await response.json();
let diff = new Date().getTime() - new Date(Date.parse('2019-04-26T05:56:33Z')).getTime();
let hoursElapsed = Math.ceil(diff / (1000 * 60 * 60));
return hoursElapsed;
}
timeElapsed().then(data => console.log("Hours elapsed", data));