サイトマップ 連絡先 トップに戻る 最初に戻る
$Date: 2018-07-07 06:49:13 +0900 (2018/07/07 (土)) $
$Revision: 1347 $

github のリリースバージョンを列挙する方法

github でリリースされているバイナリのバージョンを列挙する方法を説明します。
github では Release というリンクをクリックすることでリリースバイナリにアクセスできます。
例: https://github.com/m-tmatma/CopyWithLineNumbers/releases

github のリリースバージョンを列挙する方法

https://github.com/m-tmatma/CopyWithLineNumbers/releases の場合 https://api.github.com/repos/m-tmatma/CopyWithLineNumbers/releases にアクセスすると json 形式で情報を取得できます。
この "tag_name": "1.3" という部分がリリースバージョンになります。

github のリリースバージョンを列挙するスクリプト

列挙するスクリプトを作成しました。
$ git clone https://github.com/m-tmatma/github-tools.git
$ cd github-tools
$ ./enum-releases.py m-tmatma CopyWithLineNumbers
1.3
1.002
1.001
1.000

github のリリースバージョンを列挙する関数

enum-releases.py から抜粋
owner に "m-tmatma"
repos に "CopyWithLineNumbers"
を指定します。
"""
enum releases at github.com and returns them as a list
"""
def enum_release(owner, repos):
    import urllib2
    import re
    
    # https://api.github.com/repos///releases
    URL = '/'.join(["https://api.github.com/repos", owner, repos, "releases"])

    result = urllib2.urlopen(URL)

    # "tag_name":"x.xx.x"
    re_release = re.compile(r'"tag_name":"(?P<version>.+?)",')

    content = ""
    for data in result:
        content += data

    releases = []
    iterator = re_release.finditer(content)
    for match in iterator:
        group = match.group('version')
        releases.append(group)

    return releases