python
  • github
  • github-api
  • 2013-05-20 63 views 0 likes 
    0

    我正在尝试自动安装git系统,而且我被困在一个使用github api添加用户密钥的过程中。这是我迄今为止。使用python将用户的ssh密钥发布到github

    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

    我假设你想要一个公钥并将其添加到用户的一组密钥中,即通过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但我不熟悉他们。

    相关问题