Github API - создать ветку? - PullRequest
29 голосов
/ 01 марта 2012

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

Ответы [ 2 ]

48 голосов
/ 01 марта 2012

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' и имеет по крайней мере две косые черты, он будет отклонен.

sha

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

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


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, указав в качестве тела POST следующее:

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

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

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

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

1 голос
/ 10 мая 2019

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

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

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

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

    Github => setting => developerOption => generatePersonalToken ...

                     or 
    

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

  2. После этого: нажмите API (get)

    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

    И процесс удаления ветви ударил только УДАЛИТЬ(первые) API

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...