126

GitHub アカウントのリポジトリにある人のすべてのプロジェクトを表示する必要があります。

特定の人の git-user 名を使用して、その人のすべての git リポジトリの名前を表示するにはどうすればよいですか?

4

20 に答える 20

91

これにはgithub apiを使用できます。ヒットすると、ユーザーUSERNAMEhttps://api.github.com/users/USERNAME/reposの公開リポジトリが一覧表示されます。

于 2012-01-03T14:21:25.793 に答える
43

次のコマンドを試してcurl、リポジトリを一覧表示します。

GHUSER=CHANGEME; curl "https://api.github.com/users/$GHUSER/repos?per_page=100" | grep -o 'git@[^"]*'

複製された URL を一覧表示するには、次を実行します。

GHUSER=CHANGEME; curl -s "https://api.github.com/users/$GHUSER/repos?per_page=1000" | grep -w clone_url | grep -o '[^"]\+://.\+.git'

非公開の場合は、API キー ( access_token=GITHUB_API_TOKEN) を追加する必要があります。次に例を示します。

curl "https://api.github.com/users/$GHUSER/repos?access_token=$GITHUB_API_TOKEN" | grep -w clone_url

ユーザーが組織の場合は、/orgs/:username/repos代わりに使用して、すべてのリポジトリを返します。

それらを複製するには、以下を参照してください: GitHub から一度にすべてのリポジトリを複製する方法?

関連項目:コマンドラインを使用してプライベート リポジトリから GitHub リリースをダウンロードする方法

于 2015-10-15T22:56:35.583 に答える
43

Github APIを使用します。

/users/:user/repos

これにより、すべてのユーザーの公開リポジトリが提供されます。プライベート リポジトリを見つける必要がある場合は、特定のユーザーとして認証する必要があります。その後、REST 呼び出しを使用できます。

/user/repos

すべてのユーザーのリポジトリを検索します。

Python でこれを行うには、次のようにします。

USER='AUSER'
API_TOKEN='ATOKEN'
GIT_API_URL='https://api.github.com'

def get_api(url):
    try:
        request = urllib2.Request(GIT_API_URL + url)
        base64string = base64.encodestring('%s/token:%s' % (USER, API_TOKEN)).replace('\n', '')
        request.add_header("Authorization", "Basic %s" % base64string)
        result = urllib2.urlopen(request)
        result.close()
    except:
        print 'Failed to get api request from %s' % url

関数に渡される URL は、上記の例のように REST URL です。認証する必要がない場合は、メソッドを変更して Authorization ヘッダーの追加を削除します。次に、単純な GET 要求を使用して、公開 API の URL を取得できます。

于 2012-01-03T14:25:14.653 に答える
5

Python を使用して、GitHub ユーザーのすべてのパブリック リポジトリのリストを取得します。

import requests
username = input("Enter the github username:")
request = requests.get('https://api.github.com/users/'+username+'/repos')
json = request.json()
for i in range(0,len(json)):
  print("Project Number:",i+1)
  print("Project Name:",json[i]['name'])
  print("Project URL:",json[i]['svn_url'],"\n")

参照

于 2019-07-30T16:15:59.497 に答える
0

きれいなリストとして取得するための@joelazarの回答のわずかに改善されたバージョン:

gh repo list <owner> -L 400 |awk '{print $1}' |sed "s/<owner>\///"

もちろん、所有者名に置き換えます。

これにより、100 を超えるリポジトリ (この場合は 400) を含むリストも取得できます。

于 2021-10-17T06:57:08.730 に答える