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 に答える