github API; возвращает массив тегов

#github

#github

Вопрос:

Мне было интересно, возможно ли следующее — и как это сделать.

Могу ли я каким-либо образом использовать github API для возврата массива тегов для существующего репозитория?

У меня есть файл, который я периодически «коммитирую» с тегами версий. Итак, я хотел бы иметь возможность вызывать github и возвращать что-то вроде:

 $tags = $tags('v1.0', 'v1.1', 'v2.0', 'v2.1')
  

Или, может быть, даже ассоциативный массив, который включает в себя как тег, так и дату.

Но в любом случае, я хотел бы затем обратиться к Github и вернуть этот список. Затем я могу разрешить пользователю выбирать версию, которую они хотели бы видеть, используя следующий URL-адрес github:

 https://raw.github.com/<username>/<projectname>/<tagname>/<filepath>
  

Есть предложения?
Спасибо.

Ответ №1:

Вы могли бы использовать GitHub V3 API и проанализировать результат для построения своего массива:

 $ curl https://api.github.com/repos/VonC/gitolite/git/refs/tags|grep ""refs"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

"ref": "refs/tags/nonstd-path-for-00", 6:--:--  0:00:01 --:--:--     0
"ref": "refs/tags/v0.50", 1
"ref": "refs/tags/v0.55",62
"ref": "refs/tags/v0.60",
"ref": "refs/tags/v0.65",
"ref": "refs/tags/v0.70",62
"ref": "refs/tags/v0.80",
"ref": "refs/tags/v0.85",0:
"ref": "refs/tags/v0.90",1
"ref": "refs/tags/v0.95",0:
"ref": "refs/tags/v1.0",-:
"ref": "refs/tags/v1.0rc1",-
"ref": "refs/tags/v1.1",
"ref": "refs/tags/v1.2",
"ref": "refs/tags/v1.3",
"ref": "refs/tags/v1.4",
"ref": "refs/tags/v1.4.1",
"ref": "refs/tags/v1.4.2",
"ref": "refs/tags/v1.5",