2014-09-18 46 views
2

例如:我想最後的提交日期在這裏 - https://github.com/elasticsearch/elasticsearch/tree/master/dev-tools/pmd如何獲取github倉庫中的文件夾/目錄中的最後提交日期?

有了這個,我可以進入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 url,但即使這不會返回任何有用的信息。

如何使用github-api獲取文件夾內的提交日期?

回答

2

使用GitHub的API新的答案:

請求的commits that touched the subdirectory使用GET /repos/:owner/:repo/commits,傳遞path參數,指定有問題的子目錄:

path:字符串,只有犯下包含該文件路徑將被返回。

響應將是零個或多個提交。以最新,看它的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:作者日期(格式方面--d吃=選項)
  • %aD:作者日期,RFC2822風格
  • %ar:作者日期,相對
  • %at:作者日期,UNIX時間戳
  • %ai:作者日期,ISO 8601格式
+0

真棒,我試了我的例子,並得到了輸出。但任何想法爲什麼它會顯示2個不同的日期,即在2014-03-12作者和2014-03-13提交者? – 2014-09-18 20:55:10

+0

作者和提交者有什麼區別? – 2014-09-18 20:56:10

+0

@tech_human,往往沒有什麼區別。但編寫代碼的人是作者,而最近承諾的人是提交者。請參閱[本答案](http://stackoverflow.com/a/18754896/354577),其中引用了Pro Git中的[本章](http://git-scm.com/book/ch2-3.html)瞭解更多細節。我敢肯定,如果作者重新提交了這個提交,那麼這些日期可能會有不同的日期,但是相同的作者。 – Chris 2014-09-18 20:58:50

相關問題