2012-02-14 120 views
5

我需要获取托管在GitHub库中的文件的内容。我希望获得带有元数据的JSON响应。我已经用cURL尝试了很多URL,只得到{"message":"Not Found"}的响应。我只需要URL结构。如果它很重要,它来自GitHub上的一个组织。这就是我认为应该工作,但不会:如何通过GitHub API获取文件

http://api.github.com/repos/<organization>/<repository>/git/branches/<branch>/<file> 
+1

请参阅http://stackoverflow.com/questions/9240961/github-jsonp-source-code-api/9241535#9241535 – nulltoken 2012-02-14 06:32:01

+0

三个简单的JSON响应请求?良好的法律。根本不直观。当然有更优雅的方式。 – 2012-02-14 08:53:51

+0

这可能是其API中最弱的一个位。您可以使用他们的Trees API导航结构(在文档中的Git Data中)。为了使用它,你需要一个沙。你可以从回购分行中挖掘出来。也许你更容易像这样使用raw.github.com? raw.github.com/:user/:repo/:branch/:filename。您可以轻松地将这两种方法结合起来,以确定是否存在某个文件,然后获取它。 – 2012-05-23 12:07:28

回答

11

由于描述(位于http://developer.github.com/v3/repos/contents/)说:

/回购/:业主/:回购/​​内容/:路径

的Ajax代码将是:

$.ajax({ 
    url: readme_uri, 
    dataType: 'jsonp', 
    success: function(results) 
    { 
     var content = results.data.content; 
    }); 

通过适当/回购更换readme_uri /:所有者/:回购/​​内容/:路径。

+0

这是新的吗?当我问起时,我发誓不在这里。我查看了这个开发页面。谢谢。 – 2013-02-08 14:42:05

+2

看起来像GitHub发送Base64编码的文件内容... – taseenb 2014-03-30 02:50:00

+9

@taseenb使用'https://raw.githubusercontent.com/:owner /:repo/master /:path'来获取原始数据(二进制,不是Base64) – 2015-08-31 21:44:11

相关问题