Проблема добавления ключей развертывания в github через API - PullRequest
2 голосов
/ 06 сентября 2011

Я следую рекомендациям, опубликованным здесь: http://develop.github.com/p/repo.html

Я пытаюсь добавить открытый ключ к моему набору ключей развертывания, используя GitHub API.

Создание репозитория работаетштраф:

curl -F "login=username" -F "token=ApiToken" https://github.com/api/v2/json/repos/create -F name=myrepo

{"repository":{"owner":"username","has_downloads":true,"forks":1,"url":"https://github.com/username/myrepo","watchers":1,"has_wiki":true,"fork":false,"size":0,"open_issues":0,"created_at":"2011/09/06 02:42:08 -0700","name":"myrepo","private":false,"has_issues":true}}

Я могу перечислить ключи (пока emtpy):

curl -F "login=username" -F "token=ApiToken" https://github.com/api/v2/json/repos/keys/username/myrepo

{"public_keys":[]}

Но я не могу добавить ключи (остается пустым даже после добавления!):

curl -X POST -F "login=username" -F "token=ApiToken" https://github.com/api/v2/json/repos/key/username/myrepo/add -F "title=TheTitle" -F "key=ssh-rsa xxxxx..."

{"public_keys":[]}

Есть ли какие-либо ограничения в API GitHub в отношении добавления ключа?

1 Ответ

3 голосов
/ 06 сентября 2011

Я нашел проблему, поэтому для справки вот она. Github не разрешает связывать открытый ключ с несколькими пользователями. Если вы попытаетесь добавить ключ с помощью веб-интерфейса, вы получите следующее сообщение:

Oops! The key has already been taken.

API молчит. Вот почему я был сбит с толку.

Используя новый ключ, API работает как положено и отвечает:

curl -X POST -F "login=username" -F "token=ApiToken" https://github.com/api/v2/json/repos/key/username/myrepo/add -F "title=Bogus" -F "key=ssh-rsa xxxxx...."

{"public_keys":[{"title":"Bogus","id":1199679,"key":"ssh-rsa xxxx..."}]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...