1

我正在尝试自动设置 git 系统,但我陷入了一个我想使用 github api 添加用户密钥的过程中。这就是我到目前为止。

USER_SSH_PUB=glob.glob(os.path.expanduser('~/.ssh/temp.k.pub')) 
user_Ssh_Pub_Key_File=open(USER_SSH_PUB[0],"r")
GITHUB_URL='https://api.github.com/users/abc/keys'
key_Data=urllib.urlencode({"title":"abcd","key":user_Ssh_Pub_Key_File.read()})                            
request=urllib2.Request(GITHUB_URL,key_Data)                                                         response=urllib2.urlopen(request)                                                                     |
print response.read() 

当我这样做时,我得到一个 404。有人做过吗?

4

1 回答 1

1

我假设您想获取一个公钥并将其添加到用户的一组密钥中,即通过这个 API

问题是您只能为经过身份验证的用户执行此操作,您不能代表其他用户执行此操作。所以你GITHUB_URL必须是https://api.github.com/user/keys并且你必须以用户身份进行身份验证abcd才能做到这一点。

我认为没有任何使用 urllib2 的 API 的 python 包装器可以工作(很好),但这里列出了一些其中包括的 pip 可安装的。使用我的库,您的代码将如下所示:

from github3 import login

g = login('abcd', password)
with open('~/.ssh/temp.k.pub', 'r') as fd:
    key = g.create_key('abcd', fd)

print("Created {0}".format(key.title))

还有其他流行的包装器,例如pygithub3,但我不熟悉它们。

于 2013-05-21T02:54:58.083 回答