通过API将部署密钥添加到github的问题

时间:2011-09-06 09:51:10

标签: github

我遵循此处发布的指南: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":[]}

关于密钥添加,GitHub API是否有任何限制?

1 个答案:

答案 0 :(得分:3)

我发现了这个问题,所以在这里可以参考。 Github不允许将公钥与多个用户关联。 如果您尝试使用Web界面添加密钥,您将收到以下消息:

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..."}]}