我们正在为我们的支持团队编写一些文档。 我们希望包括指向存储在私有GitHub存储库中的文件的链接。 如果有人重构私有GitHub存储库中的代码,我们不希望文档变得过时,因此,我要设置一个CI作业来解析文档(如果有兴趣,可以使用jsoup)并找到所有链接。 一旦拥有所有链接,我们便开始检查它们。
注意:我们编写了一个自定义链接检查器,因为我们拥有的一组关键链接中的一个用于我们的监控解决方案,而遗憾的是(也可以理解)我们使用的SaaS返回404警报网址上的所有未经身份验证的请求。 SaaS本身使用2FA访问Web UI,因此,我们最终要做的是解析URL,然后构造对SaaS API的等效调用以验证链接。 对于我们使用的监视系统,这很容易:所有URL都是相同的格式。
我们可以使用个人访问令牌来验证随机GitHub URL是否有效(理想情况下仅使用curl
-我可以从那里转换为我选择的HTTP客户端,curl
提供更通用的答案) ?如果可以,怎么办?
URL可以是:
https://github.com/<org>/<repo>
https://github.com/<org>/<repo>/tree/<branch>
https://github.com/<org>/<repo>/blob/<path/to/file>
https://github.com/<org>/<repo>/compare/[<branch>...]<branch>
https://github.com/<org>/<repo>/pulls
,https://github.com/<org>/<repo>/settings/collaboration
等使用个人访问令牌作为密码的HTTP基本身份验证,例如
curl -I -u stephenc:2....token.redacted....b https://github.com/stephenc/<repo-name>
HTTP/1.1 404 Not Found
HTTP承载身份验证,例如
curl -I -H "Authorization: bearer 2....token.redacted....b" https://github.com/stephenc/<repo-name>
HTTP/1.1 404 Not Found
答案 0 :(得分:0)
它似乎适用于一些 URL(不知道是哪个URL)。
我可以使用API令牌作为用户名来访问curl -u agentgonzo:$TOKEN https://raw.githubusercontent.com/agentgonzo/repo/path/to/file
,但是在https://github.com URL上却无法使用。不确定这是否对您有帮助。
答案 1 :(得分:0)
我从GitHub支持获得了一个答案:No
由于个人访问令牌不适用于GitHub Web UI URL,因此不能在没有调用API的情况下验证所有可能的GitHub私有仓库URL。