Как получить Readme.MD из Github Graphql API?

В v3 есть специальный API для получения файла readme.md. Но в новом V4 GraphQL нет такого поля в объекте репозитория.

Кто-нибудь знает, как получить файл readme?

Спасибо!

1 ответ

Решение

Для получения файла README.md еще не существует определенной сущности, но вы можете извлечь его так же, как и любой другой файл:

{
  repository(owner: "gitpoint", name: "git-point") {
    object(expression: "master:README.md") {
      ... on Blob {
        text
      }
    }
  }
}

Похоже, потому что GitObject реализует Blob, вы можете использовать синтаксис "... on" для доступа к его свойствам, которые будут содержать содержимое объекта.

Чтобы получить доступ к рассматриваемому объекту, передайте ответвление и имя файла с расширением в формате "branch: filename.ext" и получите BLOB-объект из результата и текст из него.

Несколько объектов могут быть извлечены одновременно, что позволяет вам проверять наличие альтернативных оболочек, таких как имена "readme.md" в нижнем регистре. Просто предоставьте псевдонимы для объектов. Пример ниже.

   {
    repository(owner: "owner", name: "name") {
      upCase: object(expression: "master:README.md") {
        ... on Blob {
          text
        }
      }
      object(expression: "master:readme.md") {
        ... on Blob {
          text
        }
      }
      otherFile: object(expression: "master:index.js") {
        ... on Blob {
          text
        }
      }
    }

Это может помочь объяснить синтаксис "... on". https://graphql.github.io/graphql-spec/June2018/

Другие вопросы по тегам