создать репо с помощью github api (только curl и без oauth) - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь создать репозиторий github с использованием API v3, но всегда получаю ошибку Not Found.Я хочу сделать это только с curl и без oauth.Вот что я пытаюсь:

curl -u myusername https://api.github.com/users/repos -d '{"name": "reponame"}'

Что мне не хватает?

1 Ответ

0 голосов
/ 31 января 2019

Вы не можете сделать это без токена доступа.Также, пожалуйста, не стесняйтесь смотреть на мой проект с открытым исходным кодом GitHub Git-Captain .

Я создал веб-приложение с Node.js-интерфейсом и HTML / JS-интерфейсом.что вы можете настроить, чтобы API выполнял многие из этих вызовов за вас.У него есть пошаговая инструкция для сервера Windows, и я скоро добавлю пошаговую версию Linux.

Для добавления новой конечной точки в проект потребуется лишь небольшая настройкак источнику, чтобы сделать это для вас.

Чтобы ответить на ваш вопрос,

Документация GitHub API объясняет, как именно то, что вы запрашиваете по этой ссылке .

Приведите этот пример:

, как вы просили в CURL, и, очевидно, замените токен "5199 ..." своим собственным:

curl -i -H "Authorization: token 5199831f4dd3b79e7c5b7e0ebe75d67aa66e79d4" \
    -d '{ \
        "name": "blog", \
        "auto_init": true, \
        "private": true, \
        "gitignore_template": "nanoc" \
      }' \
    https://api.github.com/user/repos

ИЛИ

Не в CURL и в соответствии с этим StackOverflow вы можете сделать следующее:

https://api.github.com/orgs/<organisation_name>/repos?access_token=<generated token>
       or
https://api.github.com/users/<username>/repos?access_token=<generated token> 

В теле передать это как полезную нагрузку:

{
  <br/>"name": "<Repo Name>",<br/>
  "description": "<Whateveryour description is>",<br/>
  "homepage": "https://github.com",<br/>
  "private": false,<br/>
}

Вы можете получить «личный токен доступа в GitHub», перейдя на Settings->Developer Settings-> Personal Access Tokens->Generate new token

imageDeveloper Settings-> Personal Access Tokens->Generate new token">


ИЛИ выполните все следующие действия

  • Напишите скрипт (давайте назовем этот скрипт # 1), который принимает имя пользователя, пароль и repoName в качестве параметра.
  • Этот сценарий вызовет сценарий № 2, то есть curl -u ' USER-NAME-HERE' https://api.github.com/user/repos -d '{"name": "REPO-NAME-HERE"}', который запросит ваш пароль пользователя,
  • попросит ваш сценарий № 1 прослушать ответ сценария № 2 и затем ввести его впароль, который пользователь передал в качестве параметра в сценарии # 1
  • Наконец программно нажмите Enter, который запускает локоть, чтобы создать репо.

UPDATE *

По какой-то причине CURL вообще не будет работать, но конечная точка API Git-Hub https://api.github.com/user/repos действительно работает.Используя POSTMAN , я смог создать новый POST с URL-адресом https://api.github.com/user/repos и BODY, установленным на:

{
  "name": "Hello-World",
  "description": "This is your first repository",
  "homepage": "https://github.com",
  "private": false,
  "has_issues": true,
  "has_projects": true,
  "has_wiki": true
}

Затем я перешел в раздел «Авторизация» почтальона.и в «Типе» я выбрал «Базовая авторизация» и ввел свое имя пользователя и пароль.Нажал запрос на обновление, а затем отправил, и мой репо был создан!

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