使用Javascript获取用户的Github存储库列表

Rol*_* Y. 4 javascript api github repository

首先,感谢阅读.我正在Github主持我目前的开发项目.使用Github的页面,我使用Github来托管我的个人博客,你可以到达 那里.在那里,我有一个页面专门用于我目前正在进行的所有项目.基本上,我想自动显示所有正在进行的项目的列表,查询Github.谷歌搜索了很多,我发现这可以使用Javascript实现.我尝试过,但我没有按预期工作.加载页面时,我只是收到短信'Querying Github for repositories'.似乎没有任何事情发生.

我联系了Github维护者,他们回答说这种技术使用了过时版本的Github API.嗯,似乎是v3.

由于我没有JS的经验,任何人都可以帮我修复它吗?

此致,
罗兰.


这是我在HTML 页面中使用的代码

<div id="opensource-projects"></div> 

<!-- JavaScript to load and display repos from GitHub -->
<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="/javascripts/git.js" type="text/javascript"></script>
<script type="text/javascript">
  $(function() {
    $("#opensource-projects").loadRepositories("Yonaba");
  });
  </script>
Run Code Online (Sandbox Code Playgroud)

然后,在文件git.js中,我有以下内容:

// http://aboutcode.net/2010/11/11/list-github-projects-using-javascript.html

jQuery.githubUser = function(username, callback) {
  jQuery.getJSON("http://github.com/api/v1/json/" + username + "?callback=?", callback);
}

jQuery.fn.loadRepositories = function(username) {
  this.html("<span>Querying GitHub for " + username +"'s repositories...</span>");

  var target = this;
  $.githubUser(username, function(data) {
    var repos = data.user.repositories;
    sortByNumberOfWatchers(repos);

    var list = $('<dl/>');
    target.empty().append(list);
    $(repos).each(function() {
      list.append('<dt><a href="'+ this.url +'">' + this.name + '</a></dt>');
      list.append('<dd>' + this.description + '</dd>');
    });
  });

  function sortByNumberOfWatchers(repos) {
    repos.sort(function(a,b) {
      return b.watchers - a.watchers;
    });
  }
};
Run Code Online (Sandbox Code Playgroud)

@jcolebrand:谢谢你的帮助,但我并没有真正理解你的意思.我也尝试向Chrome控制台发送一些命令.我猜$是jQuery的别名,不是吗?好吧,发送相同的东西控制台只输出多个对象,描述我的回购.真棒.我认为问题现在正确解析它们并显示它们.哎,我需要学习JS语法......

liv*_*ely 7

您发布的脚本无法正常工作,因为该网址适用于较旧的API.将网址更改为此,它应该适合您.

https://api.github.com/users/YOUR_USERNAME_HERE/repos?callback=CALLBACK
Run Code Online (Sandbox Code Playgroud)