Github:リポジトリのダウンロード数を確認できますか?


139

Githubで、リポジトリのダウンロード数を確認する方法はありますか?


許可されたユーザーは、リリース内のアセットファイルのダウンロード数と同様に、Githubユーザー名/パスワード使ってスクレイピングすることで、クローン数を利用できます。パブリックリポジトリからクローン数を取得したり、アセット以外のファイル(つまり、リポジトリやファイル)の統計をダウンロードしたりすることはできないようです。tar.gzzip
Allen Luce

1
答えを読んでいる人には、GitHubのページネーションシステムが考慮されず、最新の30のリリースの合計のみが示されるため、リリースのdownload_countを提供する以下のスクリプトはすべて間違っています
Qiri

回答:


116

アップデート2019:

Ustin答えは次のとおりです。


2017年の更新

あなたはまだ使用することができますGitHubのAPIをするあなたのためのダウンロード回数取得リリース(ではない正確に頼まれた何を)
「を参照してくださいシングルリリースを取得、」download_countフィールドを。

repoクローンの数を示すトラフィック画面はなくなりました。
代わりに、次のようなサードパーティのサービスに依存する必要があります。

Git 2.14.2リリース


2014年8月の更新

GitHubは、そのトラフィックグラフでレポのクローンの数も提案しています。
クローングラフ」を参照してください。

http://i.stack.imgur.com/uycEZ.png


2013年10月更新

前述のように下にandyberry88、そして私のように最後の7月に詳細、GitHubのは現在のリリース提案している(参照そのAPIを)、持ってdownload_countフィールドを

Michele Milidoniは、彼の(賛成)回答、Pythonスクリプトそのフィールドを使用しています。
非常に小さな抽出

c.setopt(c.URL, 'https://api.github.com/repos/' + full_name + '/releases')
for p in myobj:
    if "assets" in p:
        for asset in p['assets']:
            print (asset['name'] + ": " + str(asset['download_count']) +
                   " downloads")

元の回答(2010年12月)

GitHubリポジトリAPIには表示されないため、その情報が表示されるかどうかはわかりません(記録されている場合)。

$ curl http://github.com/api/v2/yaml/repos/show/schacon/grit
---
repository:
  :name: grit
  :owner: schacon
  :source: mojombo/grit # The original repo at top of the pyramid
  :parent: defunkt/grit # This repo's direct parent
  :description: Grit is a Ruby library for extracting information from a
  git repository in an object oriented manner - this fork tries to
  intergrate as much pure-ruby functionality as possible
  :forks: 4
  :watchers: 67
  :private: false
  :url: http://github.com/schacon/grit
  :fork: true
  :homepage: http://grit.rubyforge.org/
  :has_wiki: true
  :has_issues: false
  :has_downloads: true

ダウンロードがあるかどうかしか確認できません。


1
これには、ZIPダウンロードまたはクローンのみが含まれますか?
MarzSocks

1
@MarzSocks download_countリリースAPIのフィールドについて話している場合は、リリースダウンロードの数(必ずしもzipではなく、クローンではない)を含める必要があります
VonC

「クローンの数」について話している場合は、@MarzSocks。zipのダウンロードは含まれません。git cloneインスタンスのみ。確認については、GitHubサポートに確認してください。
VonC、2015

@danielspはまだ、公式に文書化されています:help.github.com/articles/viewing-traffic-to-a-repository。しかし、はい、もう表示されません。github.com
docker

自動生成されたソースアーカイブファイルは明らかにアセットではありません ..(このコメントを参照
olejorgenb

81

私は書かれている小規模なWebアプリケーションのGithub上の任意のプロジェクトの使用可能なリリースにおけるすべての資産のダウンロード数のカウントを示すためにJavaScriptでを。ここからアプリケーションを試すことができます:http : //somsubhra.github.io/github-release-stats/


5
「このプロジェクトにはリリースがありません」または「プロジェクトが存在しません」というメッセージが表示され続けます。私はドン間違っていますか?
Alex

同じメッセージが表示されます。それは正しくありません。
cryptic0

3
うん。私も。このアプリはずっと前に動作しなくなったようです。
Daan van den Bergh

1
このアプリケーションは、ここで説明するよう、それだけで、APIレスポンスにはGitHubによって与えられた30回の最新のリリースが含まれて、正しくない:developer.github.com/v3/guides/traversing-with-paginationは それからページを反復処理する必要があります正しい合計を計算するためにヘッダーに指定された「次の」リンク。レポの例はslamdata / quasarです。この方法では、非常に不正確な合計が得られます。
Qiri

アプリケーションはリリースのあるリポジトリのみをカウント
SM Pat

12

GitHubはダウンロードのサポートを廃止し、「リリース」をサポートするようになりました-https://github.com/blog/1547-release-your-software。リリースを作成するには、GitHub UIを使用するか、注釈付きタグ(http:// git-scm.com/book/ch2-6.html)を作成して、GitHubでリリースノートを追加します。その後、バイナリまたは「アセット」を各リリースにアップロードできます。

いくつかのリリースを取得すると、GitHub APIはそれらとそのアセットに関する情報の取得をサポートします。

curl -i \
https://api.github.com/repos/:owner/:repo/releases \
-H "Accept: application/vnd.github.manifold-preview+json"

「download_count」エントリを探します。http://developer.github.com/v3/repos/releases/に詳細情報があります。APIのこの部分はまだプレビュー期間のATMであるため、変更される可能性があります。

2013年11月の更新:

GitHubのリリースAPIはプレビュー期間を過ぎているため、「Accept」ヘッダーは不要になりました-http://developer.github.com/changes/2013-11-04-releases-api-is-official/

ただし、 'Accept'ヘッダーを追加し続けても害はありません。


githubは現在downloads(少なくともこの手法を使用して)アセットのフィールドをもう表示していないと思うのは間違っていますか?
Demis、2015年

この方法はまだ私のために働いているようです。download_countダウンロード数を示すフィールドです(例:api.github.com/repos/twbs/bootstrap/releases)。このリストには「リリース」のみが表示され、レポのリリースページに表示されるタグはAPIリストに表示れないことに注意してください。developer.github.com/v3/repos/releasesを参照してください。たとえば、github.com / jquery / jquery / releasesはリリースセクションの下にいくつかのタグをリストしますが、api.github.com/repos/jquery/jquery/releasesに対して空のリストが返されます
andyberry88 2015年

ありがとう!いくつかのタグが「リリース」として設定されている場合でも、私のリポジトリにはそのようなフィールドがないようです-これは、zip / tarballedリリースのダウンロードをカウントしません(または、フィールドは省略されますcount=0)?または、クローンリクエストのフィールドのみを表示しますか?これを参照してくださいdownload_countapi.github.com/repos/demisjohn/pytrimsetup/releases。そのgithubページはこちらです:github.com/demisjohn/pyTRIMSetup/releases
Demis

ダウンロード数は、リリースアセットでのみ利用でき、タグのソースコードアーカイブでは利用できません。上記で提供したブートストラップURLを見るとbootstrap-XYZ-dist.zipdownload_countフィールドに関連する資産があります。リリースをダウンロードしている人の数を確認したい場合は、リリースzipをアップロードする必要があります。私の知る限り、APIを使用してアーカイブのクローンを作成/ダウンロードした人の数を確認する方法はありません。(上記のstackoverflow.com/a/4339085/2634854からの)グラフビューは、あなたが何をしているのかを与えるかもしれません。
andyberry88

明確にしていただきありがとうございます。グラフは本当に役に立ちます。
Demis

12

VISITORカウントは、ダッシュボード>トラフィック(または統計または洞察)で利用できるはずです。

ここに画像の説明を入力してください


7

以前は、Githubにダウンロードコードの2つの方法がありました:.gitリポジトリのクローンを作成するか、zipとしてダウンロードするか、後でダウンロードするためにファイル(たとえば、バイナリ)をアップロードしました。

リポジトリをダウンロードするとき(クローンまたはzipとしてダウンロード)、Githubは技術的な制限のためにダウンロード数をカウントしません。リポジトリのクローンは読み取り専用操作です。認証は必要ありません。この操作は、HTTPSを含む多くのプロトコルを介して実行できます。HTTPSは、ブラウザでリポジトリを表示するためにWebページが使用するプロトコルと同じです。数えるのはとても難しいです。

参照:http : //git-scm.com/book/en/Git-on-the-Server-The-Protocols

最近、Githubはダウンロード機能を廃止します。これは、Githubがソフトウェアのビルドに集中しており、バイナリの配布に集中していないことを彼らが理解しているためです。

参照:https : //github.com/blog/1302-goodbye-uploads


7

前述のように、GitHub APIはバイナリファイルリリースのダウンロード数を返します。コマンドラインで簡単にダウンロード数を取得するための小さなスクリプトを開発しました。


この使用例をどこでも見ることができますか?Githubバッジに追加できますか?そうでなければ、Googleアナリティクスを使用してGithubバッジへのダウンロード数をどうにかして取得することは可能でしょうか?
eonist 2017

6

非常に遅いですが、ここにあなたが望む答えがあります:

https://api.github.com/repos/ [git username] / [git project] /releases

次に、データで探しているプロジェクトのIDを見つけます。上部近く、URLの横にあるはずです。次に移動します

https://api.github.com/repos/ [git username] / [git project] /releases/ [id] / assets

download_countというフィールドが答えです。

編集:大文字はユーザー名とプロジェクト名で重要です


アセットにコンテンツが表示されず、「[]」のみが表示される
理由

すべてを正しく入力しましたか?リリースがあり、正しいプロジェクトをチェックしていることを確認してください。
LeChosenOne 2017年

彼らは唯一吸うれ、リリースではなく、ソースコードのtarballまたはzipファイルにバイナリファイルを追跡することを、私を見つける
Griffan

うん。リリースは、開発者向けのソースコードではなく、他の人に渡すバイナリです。
LeChosenOne 2017

5
これはまだ機能しますか?Imの取得:{ "message": "Not Found", "documentation_url": "https://developer.github.com/v3" }
eonist

5

Github APIは必要な情報を提供しなくなりました。Stan Towianskiの回答に記載されているリリースページをご覧ください。その回答に対するコメントで説明したように、Github APIは、リリースごとに彼が提供する3つのファイルのうちの1つのダウンロードのみを報告します。

この質問に対する他のいくつかの回答で提供されている解決策を確認しました。フォンクの答えは、ミケーレミリドーニのソリューションの本質的な部分を示しています。私は彼のgdcスクリプトをインストールして次の結果を得ました

# ./gdc stant
mdcsvimporter.mxt: 37 downloads
mdcsvimporter.mxt: 80 downloads
How-to-use-mdcsvimporter-beta-16.zip: 12 downloads

ご覧のとおり、gdcはtar.gzおよびzipファイルのダウンロード数を報告しません。

あなたは何をインストールせずにチェックしたい場合は、してみてくださいWebページ Somsubhraがで述べた解決策、インストールされている彼の答えを。Githubユーザー名として「stant」、リポジトリ名として「mdcsvimporter2015」を入力すると、次のようになります。

Download Info:
mdcsvimporter.mxt(0.20MB) - Downloaded 37 times.
Last updated on 2015-03-26

悲しいかな、ここでもtar.gzとzipファイルをダウンロードしないレポートのみです。GithubのAPIが返す情報を注意深く調べましたが、どこにも提供されていません。APIが返すdownload_countは、今日では完全とはほど遠いものです。


5

リリースファイル/パッケージがダウンロードされた回数を確認するには、https://githubstats0.firebaseapp.comにアクセスでき ます

それはあなたに総ダウンロード数とリリースタグごとの総ダウンロードの内訳を与えます。


これはリリースのバイナリファイルでのみ機能し、ソースコード自体では機能しないことに注意してください。つまり、ダウンロードする他のファイルをアップロードしないと、カウントされません。それはおそらくLeChosenOneの答えからGithub APIを使用しています。
JoniVR 2019

3

結局、スクレイパースクリプトを書いてクローン数を見つけました。

#!/bin/sh
#
# This script requires:
#   apt-get install html-xml-utils
#   apt-get install jq
#
USERNAME=dougluce
PASSWORD="PASSWORD GOES HERE, BE CAREFUL!"
REPO="dougluce/node-autovivify"

TOKEN=`curl https://github.com/login -s -c /tmp/cookies.txt | \
     hxnormalize | \
     hxselect 'input[name=authenticity_token]' 2>/dev/null | \
     perl -lne 'print $1 if /value=\"(\S+)\"/'`

curl -X POST https://github.com/session \
     -s -b /tmp/cookies.txt -c /tmp/cookies2.txt \
     --data-urlencode commit="Sign in" \
     --data-urlencode authenticity_token="$TOKEN" \
     --data-urlencode login="$USERNAME" \
     --data-urlencode password="$PASSWORD" > /dev/null

curl "https://github.com/$REPO/graphs/clone-activity-data" \
     -s -b /tmp/cookies2.txt \
     -H "x-requested-with: XMLHttpRequest" | jq '.summary'

これは、Githubのクローングラフが使用するのと同じエンドポイントからデータを取得し、そこから合計を吐き出します。データには、1日あたりの数も含まれています。代わりに.summary.きれいに印刷されたものを確認してください。


2

VonCとMichele Milidoniの回答に基づいて、このブックマークレットを作成しました。このブックマークレットは、githubがホストするリリース済みバイナリのダウンロード統計を表示します。

注:コンテンツセキュリティポリシーの実装に関連するブラウザー問題のため、ブックマークレットは一時的に一部のCSPディレクティブに違反する可能性があり、CSPが有効な状態でgithubで実行すると、基本的に正しく機能しない可能性があります。

推奨されませんが、一時的な回避策としてFirefoxでCSPを無効にすることができます。about:configを開き、security.csp.enableをfalseに設定します。


2

これをより明確にするためにしようとするには:
このgithubのプロジェクトのために:stant / mdcsvimporter2015
https://github.com/stant/mdcsvimporter2015
リリースとで
https://github.com/stant/mdcsvimporter2015/releases

httpまたはhttpsに移動します(「api。」と「/ repos」が追加されていることに注意してください)
https://api.github.com/repos/stant/mdcsvimporter2015/releases

このjson出力が表示され、「download_count」を検索できます。

    "download_count": 2,
    "created_at": "2015-02-24T18:20:06Z",
    "updated_at": "2015-02-24T18:20:07Z",
    "browser_download_url": "https://github.com/stant/mdcsvimporter2015/releases/download/v18/mdcsvimporter-beta-18.zip"

またはコマンドラインで次を実行します:
wget --no-check-certificate https://api.github.com/repos/stant/mdcsvimporter2015/releases


私が見る限り、githubはmdcsvimporter-beta-18.zipのように、ダウンロード用に提供する3つのファイルのうち、最初のファイルのみをカウントします。v19.zipなどのdownload_countを取得する方法を見つけたことがありますか?
Jan Ehrhardt、2015年

md2015のリリースは3つしかありません。最初に表示するのはv19です。v19はこの投稿の後に登場したため、ここには表示されません。あなたはURLに行きましたか:-)?"download_count":31、 "created_at": "2015-03-26T04:22:13Z"、 "updated_at": "2015-03-26T04:22:13Z"、 "browser_download_url":
Stan Towianski


こんにちは。ダウンロードURLをどこで思いついたかはわかりませんが、それはgithubの質問です。それは私がリリースしたファイル(3)だけを数えているようで、作成したソースzipファイルも含まれていません(私のリリースごとに2つ)。私はこの呼び出しを実行し、jsonを取得し、解析してダウンロード数だけを表示するために実行するJavaアプリを自分で作成しました。
Stan Towianski、2015年

残念な。どうやらGithubは必要な情報を提供していないようです(もう?)。github.com/stant/mdcsvimporter2015/releasesにある3 * 3ファイルのうち、*。tar.gzファイルと* .zipファイルではなく、リリースファイル自体のdoenload_countのみを報告します。それは他のすべてのソリューションに影響を与えるので、私は別の回答をします。
Jan Ehrhardt、2015年

1

すでに述べたように、APIを介しリリースに関する情報を取得できます

WordPressを使用している人のために、私はこのプラグインを開発しました:GitHub Release Downloads。GitHubリポジトリのリリースのダウンロード数、リンク、および詳細情報を取得できます。

元の質問に対処するために、ショートコード[grd_count user="User" repo="MyRepo"]はリポジトリのダウンロード数を返します。この数は、1つのGitHubリポジトリのすべてのリリースのすべてのダウンロードカウント値の合計に対応します。

例: 例


1

2019年からの回答:

  1. クローンの数については、https://developer.github.com/v3/repos/traffic/#clonesを使用できます(ただし、過去14日間のカウントのみを返すことに注意してください
  2. アセット(リリースに添付されているファイル)のダウンロード数を取得するには、https://developer.github.com/v3/repos/releases/#get-a-single-release(正確には「download_count」プロパティ対応するアセットリストの項目)


0

Pythonでのソリューションが必要な人のために、簡単なスクリプトを書きました。


Pythonスクリプト:


使用法:

ghstats.py [user] [repo] [tag] [options]


サポート:

  • Python 2Python 3の両方をそのままサポートします。
  • スタンドアロンモジュールとPythonモジュールの両方として使用できます。

0

これはpip install PyGithubパッケージを使用したpythonソリューションです

from github import Github
g = Github("youroauth key") #create token from settings page


for repo in g.get_user().get_repos():
    if repo.name == "yourreponame":
        releases = repo.get_releases()
        for i in releases:
            if i.tag_name == "yourtagname":
                for j in i.get_assets():
                    print("{} date: {} download count: {}".format(j.name, j.updated_at, j._download_count.value))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.