如何以编程方式检测GitHub存储库中的非活动分支?

Sco*_*oby 5 git github github-api git-branch

我在GitHub存储库中有十二个存储库。存储库结构如下所示:

   + project1 
       +------- trunk
       +------- tags
       +------- branches
       + ------- releases
   + project2
       ....
Run Code Online (Sandbox Code Playgroud)

我们的政策要求在闲置30天后删除所有活动分支。但是,没有自动的方法来检测这种不活动的分支。有时,我有一些不活动的分支,可以存活超过30天。

是否有脚本列出所有GitHub存储库中的分支及其上次提交日期?

Edit1-还有一种方法可以通过API获取多少个组织以及它们包含哪些项目?

nul*_*ken 6

GitHub Repository API应该能够帮助您。

列出分支机构

获取有关分支机构的详细信息

此调用方法公开分支的提示(即最新提交),您可以从中检索提交日期。在此基础上,您也许能够评估每个分支的“活动”。

下面是分支详细信息的示例输出

{
  "name": "coverity",
  "commit": {
    "sha": "f341f3a1276cbec3f6ee9d02264bd4453ca20835",
    "commit": {
      "author": {
        "name": "nulltoken",
        "email": "email@gmail.com",
        "date": "2014-05-03T21:28:26Z"
      },
      "committer": {
        "name": "nulltoken",
        "email": "email@gmail.com",
        "date": "2014-05-09T11:10:01Z"
      },
      "message": "Configure Coverity Scan hook for Travis",
      "tree": {
        "sha": "a5092e975145b96356df6b57cbf50e2d8c6140f8",
        "url": "https://api.github.com/repos/libgit2/libgit2sharp/git/trees/a5092e975145b96356df6b57cbf50e2d8c6140f8"
      },
      "url": "https://api.github.com/repos/libgit2/libgit2sharp/git/commits/f341f3a1276cbec3f6ee9d02264bd4453ca20835",
      "comment_count": 0
    },
    "url": "https://api.github.com/repos/libgit2/libgit2sharp/commits/f341f3a1276cbec3f6ee9d02264bd4453ca20835",

[...]
Run Code Online (Sandbox Code Playgroud)