Как получить zipballUrl ветви, используя github graphQL API?

Я пытаюсь программно загрузить zip-файл репозитория, который уже извлечен в определенную ветку. Для этого мне нужно получить zipballUrl главы ветви, который я определяю через github graphQL API.

В этом ответе указывается, как получить zipballUrl из ветви по умолчанию, но я не смог изменить его в соответствии с моим требованием. Цените, если кто-то может помочь.

PS: Выполнение команды git clone и проверка на ветвь не являются опцией, потому что язык программирования, который я использую (балерина), пока не поддерживает команды оболочки.

1 ответ

Решение

Вы можете использовать поле ссылки объекта репозитория.

Например, рассматривая тот же проект Google gson

{
  repository(owner: "google", name: "gson") {

    ref(qualifiedName: "722"){
      target {
        ... on Commit {
          tarballUrl
          zipballUrl
        }
      }
    }
  }
}

В этом запросе ref(qualName) будет в основном искать ссылку или имя ветви с указанным значением и возвращать содержимое tar ветви.

отклик

{
  "data": {
    "repository": {
      "ref": {
        "target": {
          "tarballUrl": "https://codeload.github.com/google/gson/legacy.tar.gz/2725be440147a71030ece93683b4424e849c59ed",
          "zipballUrl": "https://codeload.github.com/google/gson/legacy.zip/2725be440147a71030ece93683b4424e849c59ed"
        }
      }
    }
  }
}

Вы можете проверить ссылку на ветку "722" https://github.com/google/gson/commit/2725be440147a71030ece93683b4424e849c59ed

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