Как проверить ссылки в частном репозитории github

фон

мы пишем некоторую документацию для нашей службы поддержки. Мы хотим включить ссылки на файлы, которые хранятся в частных репозиториях на GitHub. Мы не хотим документации устарели, если кто-то переделывает код в отдельный репозиторий на GitHub, поэтому я ставлю задачи CI, который анализирует документацию (с jsoup если вам интересно) и находит все ссылки. Как только у нас есть все ссылки, мы начинаем проверять их.

Примечание: мы написали специальную ссылку проверки, так как один из критических набор ссылок у нас есть-наше решение для мониторинга, и к сожалению (и по понятным причинам) ЗАС мы используем возвращает 404 для не прошедших проверку подлинности запросов на URL оповещения. Сам SaaS использует 2FA для доступа к веб-интерфейсу, поэтому мы в конечном итоге делаем разбор URL-адресов, а затем создаем эквивалентный вызов API SaaS для проверки ссылки. Для мониторинга систему мы используем, это просто: все URL-адреса имеют одинаковый формат.

вопрос

можем ли мы проверить случайный URL GitHub как действительный (в идеале, используя только curl - Я могу перевести на мой выбранный HTTP-клиент оттуда, и curl дает более общий ответ) с помощью Личного маркера доступа? И если да, то как?

URL-адреса могут быть:

  • простой прямой РЕПО URLs:https://github.com/<org>/<repo>
  • прямые URL-адреса филиалов: https://github.com/<org>/<repo>/tree/<branch>
  • файл URL-адреса: https://github.com/<org>/<repo>/blob/<path/to/file>
  • diff URLs:https://github.com/<org>/<repo>/compare/[<branch>...]<branch>
  • другие URL-адреса, основанные на наличии РЕПО и не изменяющиеся в дочернем пути, например https://github.com/<org>/<repo>/pulls, https://github.com/<org>/<repo>/settings/collaboration, etc
  • плюс кто знает, какие другие 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

2 ответов


похоже, что это работает для некоторые URLs (не знаю, какие из них). Я могу получить доступ curl -u agentgonzo:$TOKEN https://raw.githubusercontent.com/agentgonzo/repo/path/to/file использование маркера API в качестве моего имени пользователя, но то же самое не работает наhttps://github.com URLs. Не уверен, поможет вам это или нет.


Я получил ответ от поддержки GitHub:нет

поскольку маркер личного доступа не будет работать для URL-адресов веб-интерфейса GitHub, нет, нет способа проверить все возможные URL-адреса частного РЕПО GitHub без вызова API в некоторых случаях.