Java 使用Jgit以编程方式检索Github帐户下的所有存储库
我对JGit客户有点挑战。我将它嵌入到一个Java应用程序中&我想在Github上获取一个帐户下的所有存储库并显示它们。此外,我还可以使用JGit直接在Github上创建一个存储库。比如创建远程存储库 我经历过这个,但对我来说它似乎是普通的。提前感谢您可以从任何语言(包括Java)调用它,它与JGit无关Java 使用Jgit以编程方式检索Github帐户下的所有存储库,java,github,jgit,Java,Github,Jgit,我对JGit客户有点挑战。我将它嵌入到一个Java应用程序中&我想在Github上获取一个帐户下的所有存储库并显示它们。此外,我还可以使用JGit直接在Github上创建一个存储库。比如创建远程存储库 我经历过这个,但对我来说它似乎是普通的。提前感谢您可以从任何语言(包括Java)调用它,它与JGit无关 GET /users/:username/repos Java库进行这些调用的一个例子是“”及其方法 新页面编辑器( root.retrieve(), GHRepository[]类,页面大
GET /users/:username/repos
Java库进行这些调用的一个例子是“”及其方法
新页面编辑器(
root.retrieve(),
GHRepository[]类,页面大小)
一旦您获得了这些用户repo的url,您就可以从中创建JGit repo了。我也按照同样的要求获取特定用户的存储库列表 试试这个,你会得到该用户的所有存储库 //此处名称表示GitHub帐户的用户名
public Collection<AuthMsg> getRepos(String name) {
String url = "https://api.github.com/users/"+name+"/repos";
String data = getJSON(url);
System.out.println(data);
Type collectionType = new TypeToken<Collection<AuthMsg>>(){}.getType();
Collection<AuthMsg> enums = new Gson().fromJson(data, collectionType);
return enums;
}
//AuthMsg类
public class AuthMsg {
//"name" which is in json what we get from url
@SerializedName("name")
private String repository;
/**
* @return the repository
*/
public String getRepository() {
return repository;
}
/**
* @param repository the repository to set
*/
public void setRepository(String repository) {
this.repository = repository;
}
}是的,你也可以创建回购协议:这现在是有意义的。谢谢甚至没有使用API,只是直接从URL调用#openStream()请发布您的代码,以及您遇到的错误。@Sachith我本来会的,但实际上我不知道怎么做。@Sachith您不需要API来检索它。您可以通过一个简单的JavaURL请求来完成。
public String getJSON(String url) {
HttpURLConnection c = null;
try {
URL u = new URL(url);
c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("GET");
c.setRequestProperty("Content-length", "0");
c.setUseCaches(false);
c.setAllowUserInteraction(false);
c.connect();
int status = c.getResponseCode();
switch (status) {
case 200:
case 201:
BufferedReader br = new BufferedReader(new InputStreamReader(c.getInputStream()));
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line+"\n");
}
br.close();
return sb.toString();
}
} catch (MalformedURLException ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
} finally {
if (c != null) {
try {
c.disconnect();
} catch (Exception ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
}
}
}
return null;
}
public class AuthMsg {
//"name" which is in json what we get from url
@SerializedName("name")
private String repository;
/**
* @return the repository
*/
public String getRepository() {
return repository;
}
/**
* @param repository the repository to set
*/
public void setRepository(String repository) {
this.repository = repository;
}