【问题标题】:Check if Git repository is private or public (e.g. for GitHub) using Java使用 Java 检查 Git 存储库是私有的还是公共的(例如 GitHub)
【发布时间】:2019-08-04 02:33:17
【问题描述】:

在我们开始之前:我是新手,所以我很抱歉

简要说明:

我有一个 Jira 插件,可以跟踪所选 git 提供程序中指定存储库的当前状态,例如GitHub(跟踪提交、分支等)并将其显示在 JIRA 问题视图中

我需要检查我添加到插件的存储库是私有的还是公共的。如果是私有的,我需要为其请求凭据。

有没有办法在 Java 中检查这种情况(例如通过 JGit)?

附:我正在通过它的 HTTPS 链接将 repo 添加到我的插件中

【问题讨论】:

  • 这取决于它是 GitHub、GitLab、BitBucket 还是其他一些托管服务。 Git 本身没有“公共”或“私有”的概念。虽然我猜如果你尝试访问它并获得 403 响应 - 它是私人的。
  • @fredrik 因此我输入了“例如 GitHub”
  • @fredrik 我找到了一些 GitHub API。也许有一个答案 :) 我想我应该为我需要的提供者寻找这样的 API……似乎没有通用的解决方案
  • 相反,每个解决方案都是独一无二的。我想你的意思是没有通用的解决方案——我已经说过了。
  • @fredrik 也许。我美妙的英语:)

标签: java git github jira jgit


【解决方案1】:

特别是 GitHub 提供 REST API 来列出用户存储库。 根据开发者文档,您可以使用 GET 来获取用户的所有存储库,并且“可见性”是一个参数

GET /user/repos

参数:visibility 类型:string 值:allpublicprivate

响应还有一个参数"private": false,可以很容易地从响应中解析出来。

更多:https://developer.github.com/v3/repos/#list-user-repositories

【讨论】:

  • 那么这是否意味着除我之外的其他人或 Github 上的某个人可以获取有关我的私人仓库的信息?
  • 有两种不同的 API。一个列出您自己的存储库,甚至可以列出私人存储库。一个列出任何不列出私人回购的回购(这将具有讽刺意味并且与私人的意思相反!)。我相信@LexSav 正在列出他自己的存储库。
猜你喜欢
  • 2016-03-27
  • 2022-11-20
  • 2020-12-13
  • 2019-08-30
  • 2020-12-28
  • 1970-01-01
  • 1970-01-01
  • 2013-08-14
  • 2012-04-21
相关资源
最近更新 更多