我正在尝试自动设置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。有人这样做过吗?
答案 0 :(得分:1)
我假设您想要使用公钥并将其添加到用户的密钥集中,即通过this API。
问题是您只能为经过身份验证的用户执行此操作,您不能代表其他用户执行此操作。因此,GITHUB_URL
必须为https://api.github.com/user/keys
,您必须以用户abcd
进行身份验证才能执行此操作。
我认为使用urllib2的API没有任何python包装器可以工作(好),但是有一些列出的here包括mine,它是可以安装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,但我不熟悉它们。