OSS 貢献における GitHub の Issue 探しについて手始めに調べてみた

最近 OSS 貢献について興味が湧き、調べ始めています。その中でも最初の取っ掛かりにあたる、Issue 探しについてまず調べてみました。

## 筆者の状況

* OSS 貢献について調べ始めたばかり
* どのリポジトリに貢献したいかも決まっておらず、探している最中

## 手がかりとなる Issue の Label について

OSS貢献をこれからやろうと思っても、どの Issue から手をつければいいか迷いますよね。

GitHub には、Issue の管理や優先順位付けを助ける役目として、Label をつけることができるのですが、その Label が Issue 探しの手がかりになるようです。

GitHub には <a href="https://help.github.com/articles/about-labels/#using-default-labels" target="_blank" rel="nofollow noopener">デフォルトで準備されている Label</a> があるのですが、その中でも OSS 貢献が初めての人向けの Issue につける Label があります。それが `good first issue` と `help wanted` の2つです。

種類|内容
:--|:--
`good first issue`| 最初のコントリビューター向けに良い Issue
`help wanted`| リポジトリのメンテナーが Issue や Pull Request の助けを求めている

以下、GitHub の User Document に <a href="https://help.github.com/articles/helping-new-contributors-find-your-project-with-labels/" target="_blank" rel="nofollow noopener">Helping new contributors find your project with labels</a> という記事から引用します。

> Apply the `help wanted` and `good first issue` labels to issues in your repository to highlight opportunities for people to contribute to your project.

`help wanted` と `good first issue` という Label は、GitHub がデフォルトで提供しているよく知られた Label であり、リポジトリに貢献したい人向けの Issue ということを表しているので、Issue を探す手がかりとして良さそうです。

## Label から貢献したい Issue を探す

ではその Label をもとに、どのように Issue を探すことができるのでしょうか？
いくつか探す方法を調べてみました。

### GitHub Search で探す

一番手軽で身近な方法なのが、GitHub の Search から Issue を検索する方法です。

https://github.com/search から `label:"help wanted"` というように指定して検索すると、マッチした Issue が表示されます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/222030/a516e9f0-90dc-8b32-411b-93c9ffeb3f3e.png)


あるいは貢献したいリポジトリが決まっているのであれば、リポジトリの Issues から同じように検索することもできます。以下は <a href="https://github.com/Homebrew/brew/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22" target="_blank" rel="nofollow noopener">Homebrew/brew の Issue 検索結果</a> です。 

![image.png](https://qiita-image-store.s3.amazonaws.com/0/222030/3ffb04a9-782d-b1bf-bb3a-9f011bb09f32.png)


### GitHub Help Wanted で探す

貢献したいリポジトリが決まっていない場合、GitHub Search ですべてのリポジトリに対して Issue 検索をかけるのはなかなかやりづらいと思います。 <a href="http://github-help-wanted.com/" target="_blank" rel="nofollow noopener">Github Help Wanted</a> というサイトを使うと探しやすくなるかもしれません。

以下2つのカテゴリの検索条件で、GitHub 上の Issue を絞り込むことができます。

* プログラミング言語(`Languages`)
* Issue のラベル(`Labels`)

Ruby で `help wanted` と `good first issue` の Label のついた Issue を検索した結果は以下のような形になります。`Newest`、`Oldest`、`Recently Updated`、`Most Commented` というような条件でソートもできます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/222030/988496be-1bba-9b16-8f50-d57ae092bb95.png)


このサイト自体オープンソースで開発されており、 React + Redux で動いているようで、検索条件を指定すると自動で検索結果を再描画してくれるので、使いやすかったです。

<a href="https://github.com/mac-s-g/github-help-wanted/" target="_blank" rel="nofollow noopener">GitHub - mac-s-g/github-help-wanted: connecting developers with open source projects</a>

## 終わりに

今まで OSS の Issues をあまりチェックしたことはなかったのですが、いざ OSS 貢献をしようと思って調べてみると、新たに知ることが多かった気がします。

貢献したいリポジトリが決まっていなくても、 Issue を色々確認する中で新たに興味を持てるようなリポジトリに出会うことができたりすると思うので、これから少しずつ Issue を読んでいこうと思います。

## 参考 URL

* <a href="https://help.github.com/articles/about-labels/" target="_blank" rel="nofollow noopener"> About labels - GitHub User Documentation</a>
* <a href="https://speakerdeck.com/ohbarye/how-to-find-good-first-issues" target="_blank" rel="nofollow noopener">貢献できるOSSの見つけ方 / How to find "Good First Issues" - Speaker Deck</a>
* <a href="https://www.slideshare.net/shigemk2/oss-78585757" target="_blank" rel="nofollow noopener">Oss貢献超入門</a>
* <a href="https://amp.reddit.com/r/javascript/comments/7ckujr/github_help_wanted_connecting_developers_with/" target="_blank" rel="nofollow noopener">Reddit - javascript - "GitHub Help Wanted": connecting developers with open-source projects</a>