Github: Can I see the number of downloads for a repo?

后端 未结 17 1025
甜味超标
甜味超标 2020-11-28 02:35

In Github, is there a way I can see the number of downloads for a repo?

相关标签:
17条回答
  • 2020-11-28 02:58

    The Github API does not provide the needed information anymore. Take a look at the releases page, mentioned in Stan Towianski's answer. As we discussed in the comments to that answer, the Github API only reports the downloads of 1 of the three files he offers per release.

    I have checked the solutions, provided in some other answers to this questions. Vonc's answer presents the essential part of Michele Milidoni's solution. I installed his gdc script with the following result

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

    As you can clearly see, gdc does not report the download count of the tar.gz and zip files.

    If you want to check without installing anything, try the web page where Somsubhra has installed the solution, mentioned in his answer. Fill in 'stant' as Github username and 'mdcsvimporter2015' as Repository name and you will see things like:

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

    Alas, once again only a report without the downloads of the tar.gz and zip files. I have carefully examined the information that Github's API returns, but it is not provided anywhere. The download_count that the API does return is far from complete nowadays.

    0 讨论(0)
  • 2020-11-28 03:00

    Formerly, there was two methods of download code in Github: clone or download as zip a .git repo, or upload a file (for example, a binary) for later download.

    When download a repo (clone or download as zip), Github doesn't count the number of downloads for technical limitations. Clone a repository is a read-only operation. There is no authentication required. This operation can be done via many protocols, including HTTPS, the same protocol that the web page uses to show the repo in the browser. It's very difficult to count it.

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

    Recently, Github deprecate the download functionality. This was because they understand that Github is focused in building software, and not in distribute binaries.

    See: https://github.com/blog/1302-goodbye-uploads

    0 讨论(0)
  • 2020-11-28 03:01

    To try to make this more clear:
    for this github project: stant/mdcsvimporter2015
    https://github.com/stant/mdcsvimporter2015
    with releases at
    https://github.com/stant/mdcsvimporter2015/releases

    go to http or https: (note added "api." and "/repos")
    https://api.github.com/repos/stant/mdcsvimporter2015/releases

    you will get this json output and you can search for "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"
    

    or on command line do:
    wget --no-check-certificate https://api.github.com/repos/stant/mdcsvimporter2015/releases

    0 讨论(0)
  • 2020-11-28 03:02

    For those who need the solution in Python, I wrote a simple script.


    Python Script:

    • GitHub Download Stats

    Usage:

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

    • Arguments
    • Examples

    Support:

    • Supports both Python 2 and Python 3 out of the box.
    • Can be used as both a standalone and a Python module.
    0 讨论(0)
  • 2020-11-28 03:07

    I ended up writing a scraper script to find my clone count:

    #!/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'
    

    This'll grab the data from the same endpoint that Github's clone graph uses and spit out the totals from it. The data also includes per-day counts, replace .summary with just . to see those pretty-printed.

    0 讨论(0)
  • 2020-11-28 03:08

    Based on VonC and Michele Milidoni answers I've created this bookmarklet which displays downloads statistics of github hosted released binaries.

    Note: Because of issues with browsers related to Content Security Policy implementation, bookmarklets can temporarily violate some CSP directives and basically may not function properly when running on github while CSP is enabled.

    Though its highly discouraged, you can disable CSP in Firefox as a temporary workaround. Open up about:config and set security.csp.enable to false.

    0 讨论(0)
提交回复
热议问题