使用 HTTP 请求检查 git repo 是否公开

2024-01-05

对于我的项目,我需要知道 git 存储库是否公开才能执行某些操作。 我首先想到使用 HTTP 请求,所以我使用邮递员,并尝试使用 HEAD 方法使用多个 URL。

当我发送请求时,我看不到标头中的内容可以指示我何时失败。

当我向 github 发送私有项目请求时,我收到状态 404,所以它对我来说非常适合,因为我知道这是一个私有项目。

但是当我为 gitlab 执行此操作时,我收到状态 200,然后我被重定向。

我想知道是否有解决方案。


一般来说,最简单的方法是执行GET追加后请求/info/refs?service=git-upload-pack到网址。这是 Git 用于获取参考信息的端点。

如果存储库是公共的,您将收到 200。如果存储库是私有的或不存在,您可能会收到 401。大多数主要托管提供商在您经过身份验证之前不会提供有关私有存储库是否存在的信息,因此无论哪种方式您都会收到 401。

请注意,您不能使用HEAD要求;在这种情况下,GitHub 返回 405 Method Not allowed。

Example:开源存储库:https://gitlab.com/gitlab-org/gitlab-ce.git https://gitlab.com/gitlab-org/gitlab-ce.git

{GET}: https://gitlab.com/gitlab-org/gitlab-ce.git/info/refs?service=git-upload-pack https://gitlab.com/gitlab-org/gitlab-ce.git/info/refs?service=git-upload-pack

示例401:

wget $URL
Connecting to gitlab.com (35.231.145.151:80)
Connecting to gitlab.com (35.231.145.151:443)
wget: server returned error: HTTP/1.1 401 Unauthorized

echo $?
1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 HTTP 请求检查 git repo 是否公开 的相关文章

  • Intellij Idea可以自动阶段更改吗

    经过几天的任务处理后 我决定看看已经完成了哪些工作git status来自 Git Bash 有些文件在Changes to be committed list 有些在Changes not staged for commit 有趣的是 我
  • 在 Windows 上,无法创建目录“/home/<用户名>/.ssh”

    要使用 gitbash 在 Windows 上配置 git 如所解释的here https help github com articles generating a new ssh key and adding it to the ssh
  • 在标签上运行管道时如何获取分支名称?

    我从标签运行管道 比方说v1 0 0 在一个分支上 比方说staging 我的输出文件是用创建的 CI PROJECT NAME CI COMMIT REF NAME apk 结果是一个名为MyProject v1 0 0 apk 我希望在
  • Git 克隆已经是克隆的存储库

    做这个手术有什么副作用吗 git clone已经是另一个远程存储库的克隆的存储库 没有副作用 但您应该准确了解克隆存储库时会发生什么 一些理论 问题 是 当您 以正常方式 克隆存储库时 即在调用时没有调整任何时髦的旋钮git clone y
  • 如何在RESTEasy客户端框架中设置HTTP标头?

    RESTEasy 一个 JAX RS 实现 有一个很好的客户端框架 http docs jboss org resteasy docs 2 0 0 GA userguide html RESTEasy Client Framework ht
  • 如何使用 Jhipster、Docker、Gitlab 和 Heroku 构建、测试和部署

    我很新Jhipster https jhipster github io Docker 和我希望获得一些帮助 了解如何在 Heroku 实例上构建和部署应用程序的基础知识 当我和朋友一起工作时 我们可能需要某种集成平台 例如 Gitlab
  • QNetworkAccessManager 的替代方案

    我正在BB10中绘制地图 地图被划分为图块 开始时 用户给出经度 纬度和缩放级别 地图将显示在该坐标处 我通过使用 QNetworkAccessManager 执行 http 请求来获得单个图块 首先下载 7x5 块 但问题是 当用户开始在
  • git pull:无法快进,

    你能帮我解决我的问题吗 当我尝试从 dev 分支拉取时发生错误 我浏览了解决方案 它说我需要 rebase 但它对我来说没有成功 CT aohc MP1GYWQA MINGW64 c TCO source RAPMD Web Fronten
  • 仅当除 master 之外的所有分支都有推送的 TAG 时,Gitlab 才会触发 Pipeline

    我的 YAML 文件必须如何配置 以便仅在推送标签时触发一种情况 作业 构建 的管道 该标签可能位于除 master 之外的所有分支中 对于主案例 我有一个单独的工作 build master yaml 文件 问题 如果主分支获得标签 管道
  • 当我所做的只是压缩提交时,为什么 git-rebase 会给我带来合并冲突?

    我们有一个包含 400 多个提交的 Git 存储库 其中前几十个提交需要大量的反复试验 我们希望通过将许多提交压缩为单个提交来清理这些提交 当然 git rebase 似乎是最佳选择 我的问题是它最终会产生合并冲突 而且这些冲突并不容易解决
  • 如何对 CSV 数据进行curl POST?

    假设我有以下 CSV 数据 fruit csv fruit count Apples 152 Bananas 23 我该如何写一个curl使用以下形式的命令来发布该数据 curl request POST url https script
  • 是否可以在不从 git 克隆或拉取的情况下获取分支名称?

    我想获取 git 存储库的所有分支名称 目前 我克隆存储库 然后将它们获取到本地计算机上 这是低效的 因为我所需要的只是名称而不是其他 我想知道是否可以这样做 如果是这样 我可以使用什么命令 在本地 无需克隆 您可以键入 使用 gitls
  • 如何找出在哪个提交中添加了特定代码?

    我想知道我在哪个提交中添加了下面给出的代码 if getListView getChildCount 0 getActivity findViewById android R id empty setVisibility View VISI
  • Git 和外部备份。子目录是空的,我宁愿它不是空的。

    我想使用 Git 创建外部备份系统 这部分是受到答案的启发在外部磁盘上备份整个 git 存储库的最佳方法是什么 https stackoverflow com a 4372855 2533127 其中建议如下 您还可以通过启动一个新的存储库
  • dulwich - 从远程仓库身份验证克隆

    我找不到有关此主题的任何资源 我需要通过提供用户名和密码从私有存储库进行克隆 然而 当它们作为关键字参数提供给 dulwich get client from path 时 会出现错误 提示 未知参数 用户名 这似乎是一件简单的事情 但我找
  • 如何在git中定义ESC字符?

    我想在 git 输出中使用着色 例如 git log decorate color 当我发出这个命令时 我得到的输出看起来像ESC 1 32m where ESC是反色的 在我看来 这是一个有效的转义序列 除了 033必须发送而不是字符E
  • 从 svn 到 git,移动了主干

    我正在尝试将 svn 存储库切换到 git 这是一个旧的存储库 以前的维护者之一为每个新版本移动了主干 例如 以前的存储库位于 svn ssh svn mycompany com project release 1 trunk 现在 我们当
  • 如何在cygwin下更改git中文件的大小写?

    我们在区分大小写 不敏感的混合环境 cywgin linux 中工作 今天有人通过重命名文件 将 S 更改为 s 对我们的工作流程造成了小破坏 这导致了各种有趣的跨分支合并问题 而且说实话 没有人完全确定发生了什么 在 cygwin 的 g
  • Gitlab CI/CD 管道给出 Dockerfile 错误

    晚上好 我正在尝试将我的nodeJS应用程序部署到我的Digital Ocean Server 它说找不到我的Dockerfile 我确实检查过 Dockerfile 没有 txt 扩展名 任何指导表示赞赏 我在 Gitlab 项目中设置了
  • 将 GitLab CI 变量注入 Terraform 变量

    我有一组 Terraform 文件 特别是一个 Variables tf 文件 它保存了我的变量 如 aws 访问密钥 aws 访问令牌等 我现在想使用 GitLab CI CD 在 AWS 上自动创建资源 我的计划如下 编写 gitlab

随机推荐