GitHubで開発が止まったリポジトリの引き継ぎ開発してそうなリポジトリを探す
ChromeをVimキーバインドで操作できるcvimを愛用しているのですが, 開発が止まってしまっているようで,バグフィックスなどがしばらく行われなくなっています.
そこで,誰かフォークして引き継ぎ開発してそうなリポジトリを探そうと思ったのですが, Forksのリストを表示すると,ずらっと一覧がでてきて,これを一つ一つ見ていくのは辛いな,という感じでした.
https://github.com/1995eaton/chromium-vim/network/members
そこで,GitHub API(npmモジュールの@octokit/rest)を使い,最終push日時とスター数を抽出しました.
環境
- Node.js 10.18.0
- @octokit/rest 17.10.0
コード
こんなコードを書きました.
index.js
const { Octokit } = require("@octokit/rest")
const octokit = new Octokit()
const owner = '1995eaton'
const repo = 'chromium-vim'
const per_page = 100
;(async () => {
// get number of Forks
const forksCount = await octokit.repos
.get({
owner,
repo,
})
.then(({ data }) => {
return data.forks_count
})
// calc page count from number of forks
const pages = Math.round(forksCount / per_page)
// get information of forks
const forks = []
for (const p of [...Array(pages).keys()]) {
await octokit.repos
.listForks({ owner, repo, per_page, page: p + 1 })
.then(({ data }) => {
for (const r of data) {
forks.push({
full_name: r.full_name,
stargazers_count: r.stargazers_count,
watchers_count: r.watchers_count,
pushed_at: r.pushed_at,
html_url: r.html_url,
})
}
})
}
// print information of forks
console.log('full_name,stargazers_count,watchers_count,pushed_at,html_url')
for (const fork of forks) {
console.log(`${fork.full_name},${fork.stargazers_count},${fork.watchers_count},${fork.pushed_at},${fork.html_url}`)
}
})()
次のように実行します.
$ npm i @octokit/rest
$ node .
次のようなcsvが出力されます.
full_name,stargazers_count,watchers_count,pushed_at,html_url
sahwar/chromium-vim,0,0,2020-03-10T02:14:36Z,https://github.com/sahwar/chromium-vim
pdanem/chromium-vim,0,0,2020-03-10T02:14:36Z,https://github.com/pdanem/chromium-vim
emoturtle/chromium-vim,0,0,2020-03-10T02:14:36Z,https://github.com/emoturtle/chromium-vim
StevenBalogh/chromium-vim,0,0,2020-03-10T02:14:36Z,https://github.com/StevenBalogh/chromium-vim
Clunt/chromium-vim,0,0,2020-03-10T02:14:36Z,https://github.com/Clunt/chromium-vim
fromasmtodisasm/chromium-vim,0,0,2020-04-25T09:18:55Z,https://github.com/fromasmtodisasm/chromium-vim
Armog/chromium-vim,0,0,2020-03-10T02:14:36Z,https://github.com/Armog/chromium-vim
cedarjp/chromium-vim,0,0,2020-04-13T07:21:19Z,https://github.com/cedarjp/chromium-vim
NoisomePossum/chromium-vim,0,0,2020-03-10T02:14:36Z,https://github.com/NoisomePossum/chromium-vim
これをスプレッドシートで開き,stargazers_count
やpushed_at
などでソートして,
引き継ぎ開発してそうなリポジトリの候補を見ていきました.
注意
octokit.repos.listForks()
で渡すpage
は1始まりなので注意!octokit.repos.get()
で取ったforks_count
は275なのに,3ページ目の結果が61で,全部で261件しか取れていない・・・ので,どこか間違っているかもです
結果
cvimを引き継ぎ開発してそうなリポジトリは見つかりませんでした.残念. 代替ツールで良さげなのを知っている人は教えて下さい.