热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

检查gitrepo是否通过HTTP请求公开

如何解决《检查gitrepo是否通过HTTP请求公开》经验,为你挑选了1个好方法。

对于我的项目,我需要知道git repo是否公开。我首先想到要使用HTTP请求,所以我使用的是邮递员,并且尝试使用HEAD方法处理多个URL。

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

当我向github发送一个私有项目的请求时,我收到状态404,因此对我来说是完美的,因为我知道这是一个私有项目。

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

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



1> 小智..:

通常,最简单的方法是GET在附加/info/refs?service=git-upload-pack到URL 之后执行请求。这就是Git用于获取参考信息的端点。

如果存储库是公共的,则将得到200。如果存储库是私有的或不存在,则可能会得到401。大多数主要的托管服务提供商只有在您通过身份验证后才提供有关是否存在私有存储库的信息,因此您将以两种方式获得401。

请注意,您不能使用HEAD请求。在这种情况下,GitHub返回不允许的405方法。

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

{GET}: 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


推荐阅读
author-avatar
YooHoo
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有