如何验证私有github存储库中的链接

Ste*_*lly 9 github

背景

我们正在为我们的支持团队撰写一些文档.我们希望包含存储在私有GitHub存储库中的文件的链接.如果有人重构私有GitHub存储库中的代码,我们不希望文档变得陈旧,所以我正在设置一个解析文档的CI作业(如果您感兴趣,可以使用jsoup)并找到所有链接.一旦我们拥有所有链接,我们就会开始检查它们.

注意:我们编写了一个自定义链接检查器,因为我们拥有的一组关键链接用于我们的监控解决方案,而且遗憾的是(也可以理解)我们使用的SaaS会针对警报URL上的任何未经身份验证的请求返回404.SaaS本身使用2FA来访问Web UI,因此我们最终做的是解析URL,然后构建对SaaS API的等效调用以验证链接.对于我们使用的监控系统,这很简单:所有URL都是相同的格式.

我们curl可以curl使用个人访问令牌验证随机GitHub URL是否有效(理想情况下只使用- 我可以从那里转换到我选择的HTTP客户端,并提供更通用的答案)?如果是这样,怎么样?

网址可以是:

  • 简单直接到repo 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等等
  • 谁知道人们将在文档中添加的其他URL ...

我试过的东西没用

使用个人访问令牌作为密码的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

Ste*_*lly 0

我从 GitHub 支持得到了答案:

由于个人访问令牌不适用于 GitHub Web UI URL,因此在某些情况下,无法在不进行 API 调用的情况下验证所有可能的 GitHub 私有存储库 URL。