Подтвердить что ты не робот

API Github - создать ветку?

Кажется, что он отсутствует в документах Repos для v1, v2 и v3... как мне создать ветку с помощью API Github?

4b9b3361

Ответ 1

API V3 упоминает ветки на своей странице справки

Ссылка в URL должна быть отформатирована как heads/branch, а не только branch.
Например, вызов для получения данных для ветки с именем sc/featureA будет выглядеть следующим образом:

GET /repos/:user/:repo/git/refs/heads/sc/featureA

Создать ссылку

POST /repos/:user/:repo/git/refs

Параметры

ref

Строка имени полностью квалифицированной ссылки (то есть: refs/heads/master). Если он не начинается с 'refs и имеет как минимум две черты, он будет отклонен.

sha

Строка значения SHA1 для установки этой ссылки на

Таким образом, должно быть возможно создать новую ветвь, назвав новый параметр "/heads" в параметре ref.


Potherca указывает на рабочий тест, используя сервис www.hurl.it (что делает HTTP-запросы)

  • Найдите версию, с которой хотите перейти.
    Либо на самом Github, либо на запрос GET от Hurl:

    https://api.github.com/repos/<AUTHOR>/<REPO>/git/refs/heads

  • Скопируйте хеш версии

  • Сделайте запрос POST от Hurl до https://api.github.com/repos/<AUTHOR>/<REPO>/git/refs следующим текстом

    :
    {
        "ref": "refs/heads/<NEW-BRANCH-NAME>",
        "sha": "<HASH-TO-BRANCH-FROM>"
    }
    

    (очевидно, заменив <NEW-BRANCH-NAME> на имя, которое вы хотите иметь новую ветвь, и <HASH-TO-BRANCH-FROM> с, знаете ли, хешем ревизии, из которой вы хотите перейти)

    Вам нужно будет использовать HTTP basic и заполнить свои учетные данные Github для доступа к API Github.

  • Нажмите кнопку "Отправить", и ваша ветка будет создана!

Ответ 2

Это общая проблема для всех студентов, когда мы создаем API для создания ветки в GitHub.

{
  "message": "Not Found",
  "documentation_url": "https://developer.github.com/v3"
}

Для решения этой ошибки при создании репозитория в Github.....

  1. Сначала создайте личный токен в

    Github => настройка => developerOption => generatePersonalToken...

                     or 
    

    во время gitLogin bu Oauth, когда вы передаете client_id, в это время вы передаете scope = repo (потому что это разрешает все хранилище, когда вы используете токен или что-то еще)

  2. После этого: нажмите API (получить)

    https://api.github.com/repos/<your login name>/<Your Repository Name>/git/refs/heads

  3. Вы получили ответ, который похож на

    Response => {
    [
    {
        "ref": "refs/heads/<already present branch name for ref>",
        "node_id": "jkdhoOIHOO65464edg66464GNLNLnlnnlnlna==",
        "url": " https://api.github.com/repos/<your login name>/<Your Repository Name>/git/refs/heads/<already present branch name for ref>",
        "object": {
            "sha": "guDSGss85s1KBih546465kkbNNKKbkSGyjes56",
            "type": "commit",
            "url": " https://api.github.com/repos/<your login name>/<Your Repository Name>/git/commits/guDSGss85s1KBih546465kkbNNKKbkSGyjes56"
        }
    }
    ]
    }
    
  4. Завершите этот процесс снова нажмите API (Пост)

    https://api.github.com/repos/Bhupi2508/Test/git/refs...
    

    И отправьте данные в формате JSON следующим образом:

    {
        "ref": "refs/heads/<new branch name>",
        "sha": "4661616ikgohlKIKHBK4634GRGSD66"
    }
    

    ТОГДА ВЫ СОЗДАЕТЕ ФИЛИАЛ В GITHUB ПО API

    И процесс удаления ветки ударил только DELETE (первый) API