我对JGit客户端有一些挑战。我将它嵌入Java App&我想在Github上的帐户下获取所有存储库并显示它们。另外,我可以使用JGit直接在Github上创建一个存储库。像创建远程存储库一样?
我已经完成了这个link,但这对我来说似乎很通用。提前致谢
答案 0 :(得分:1)
List user repositories API可以从任何语言(包括Java)调用,与JGit无关。
GET /users/:username/repos
进行这些调用的Java库示例为“GitHub API for Java ”及其java.org.kohsuke.github.GHPerson.java#listRepositories()
方法
new PagedIterator<GHRepository>(
root.retrieve().asIterator("/users/" + login + "/repos?per_page=" + pageSize,
GHRepository[].class, pageSize))
获得这些用户回购的网址后,您可以创建其中的JGit回购。
答案 1 :(得分:1)
我也执行相同的要求以获取特定用户的存储库列表 试试这个,您将获得该用户的所有存储库 //这里的名称表示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;
}
// getJson方法
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;
}
// 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;
}
}