如何在github repo中的文件夹/目录中获取最后一次提交日期?

时间:2014-09-18 20:28:19

标签: git github github-api

例如:我想在这里获得最后一次提交日期 - https://github.com/elasticsearch/elasticsearch/tree/master/dev-tools/pmd

有了这个,我可以进入pmd文件夹 - https://api.github.com/repos/elasticsearch/elasticsearch/contents/dev-tools/pmd

但是这并没有关于日期的任何数据。我试过了https://api.github.com/repos/elasticsearch/elasticsearch/contents/dev-tools/pmd/commits,这让我找不到'消息。

使用sha https://api.github.com/repos/elasticsearch/elasticsearch/git/blobs/58788337ae94dbeaac72a0901d778a629460c992尝试了git网址,但即使这样也无法返回任何有用的信息。

如何使用github-api获取文件夹内的提交日期?

1 个答案:

答案 0 :(得分:3)

使用GitHub API的新答案:

使用GET /repos/:owner/:repo/commits请求commits that touched the subdirectory,传入指定相关子目录的path参数:

  

path:string,仅返回包含此文件路径的提交。

响应将为零或更多提交。采取最新动态并查看其commit/author/datecommit/committer/date,具体取决于您要查找的内容:

[
  {
    ...,
    "commit": {
      "author": {
        ...,
        "date": "2011-04-14T16:00:49Z"
      },
      "committer": {
        ...,
        "date": "2011-04-14T16:00:49Z"
      },
      ...,
    },
  },
]

使用本地副本的原始答案:

试试git log -n 1 --pretty=format:%cd path/to/directory。这将为您提供该目录中最新提交的提交者日期

您还可以使用these other date formats

  • %cD:提交者日期,RFC2822样式
  • %cr:提交者日期,相对
  • %ct:提交者日期,UNIX时间戳
  • %ci:提交者日期,ISO 8601格式
  • %ad:作者日期(格式尊重 - 日期=选项)
  • %aD:作者日期,RFC2822样式
  • %ar:作者日期,亲属
  • %at:作者日期,UNIX时间戳
  • %ai:作者日期,ISO 8601格式