Как определить, существует ли файл в репозитории GitHub без сообщения 404 в консоли? - PullRequest
0 голосов
/ 23 января 2019

Я хотел бы определить с помощью вызова API, какие репозитории GitHub имеют определенный файл в своем корневом каталоге, например ReadMe.md.Таким образом, моим решением был fetch вызов файла:

const githubApiBase = "https://api.github.com"
const githubUser = ...
const githubRepository = ...
const filename = "ReadMe.md"

const readmeFile = `${githubApiBase}/repos/${githubUser}/${githubRepository }/contents/${filename}`
fetch(readmeFile)
  .then(response => {
    if(response.status == 200) {
      return true;
    } else {
      return false;
    }
  })

Теперь это действительно возвращает true, когда файл существует, и false в противном случае.Тем не менее, помимо возврата false, это также отображает ошибку в моей консоли.Я хотел бы устранить эту ошибку, поскольку я не считаю это проблемой для моего приложения.

Я знаю, что могу устранить ошибки 404 в моих инструментах разработчика Chrome, но я хочу убедиться, что другие пользователи нене поймите их и убедитесь, что они вообще не появляются.

Я вижу два возможных решения, оба из которых я не знаю, возможны ли они.Первый - проверить наличие файла другим способом, который не приводит к ошибке 404, но все равно выдает false, когда мой файл не существует.Второй способ - устранить ошибку, но у меня сложилось впечатление, что это невозможно: браузеры, похоже, делают это независимо от любого запроса GET 404.

Минимальный рабочий пример для проверки поведения:

fetch("http://httpstat.us/404")
  .then(response => {
    if(response.status == 200) {
      console.log("Found!")
    } else if(response.status == 404) {
      console.log("File does not exist")
    } else {
      console.log("Other error")
    }
  })

Я приветствую любые предложения, спасибо!

...