OSS活動としてRuby on RailsのGitHubにプルリクエストを作成した話

## きっかけ

Ruby on Rails の GitHub プロジェクト(https://github.com/rails/rails) にあるドキュメントファイル内に、いくつかタイポがあることに気づきました。
![01-github-readme-before.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945225/25bed7bb-e1ed-1bc6-824a-36ff7d57924f.png)
赤線部の1つ「Depedencies」は、正しくは「Dependencies」ですね。
これらの誤記を修正しようと思いました。

本記事では Ruby on Rails の GitHub プロジェクトをサンプルに、プルリクエストを発行する方法を紹介していきます。

## GitHub pull request 作成までの流れ

### 1. 貢献方法を確認

まずはコントリビュートする方法や注意点を確認します。

一般的には GitHub プロジェクトの `README.md` と `CONTRIBUTING.md` ファイルにコントリビュートに関する情報が記載されていますので、このファイルの内容を確認します。
Rails の GitHub プロジェクトの場合、どちらのファイルにも今回のケースに当てはまる内容の記載はありませんでした。

### 2. 既存のissueとpull requestを確認

次に、同じ内容の issue または pull request が存在するか確認します。

既存の issue : https://github.com/rails/rails/issues
![02-github-existing-issues.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945225/ab4568d7-1b5a-fd81-4950-1b492cffff9e.png)

既存の pull request : https://github.com/rails/rails/pulls
![03-github-existing-pull-requests.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945225/b527da33-bb42-f2ac-d763-4bfd54ec38b0.png)

Open 状態の issue と pull request はどちらもそれなりの数ですので、検索欄に「typo」など適当に入力して、該当するものがないか確認します。
いくつかのワードで検索したところ、当該ファイルのタイポに関しては issue、pull request ともに存在しませんでした。

Close 状態の issue と pull request を検索すると、簡単なドキュメントの修正であれば、issue を立てずに pull request を発行しているようでした。
なので過去の pull request にならって、同じように pull request を作成しようと思います。

### 3. プルリクエスト用ブランチを新規作成

次に、pull request 用ブランチを新規作成します。

やり方は色々ありますが、今回はローカル PC 上で作成する方法を選択しました。

まず、Rails の GitHub プロジェクトの画面の「Fork」ボタンをクリックし、プロジェクトを Fork します。
![04-github-fork.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945225/0a90cd91-9052-c03d-89d7-feaa9452efb4.png)

Fork したプロジェクトの画面の「Code」ボタンをクリックし、画面に表示される内容をもとに git clone します。
![05-github-clone.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945225/fd259721-a444-d80f-3a01-51fa2d5cb0b2.png)

次に、ローカル PC にて、 git clone したプロジェクトから適当な名前のブランチを新規作成し、そのブランチに変更内容を git push します。
タイポ修正ですので、ブランチ名は「fix-typo」として、修正内容を push しました。
![06-desktop-create-new-branch.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945225/085c38cc-bf23-0d9b-3198-d4292ba32296.png)

### 4. プルリクエストを新規作成

git push 後、Rails の GitHub プロジェクトの画面を開くと、以下のように「Compare & pull request」というボタンが表示されます。このボタンをクリックします。
![07-github-buttom-of-pull-requests.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945225/1c6ec910-3bb7-60f2-b794-db071298b00e.png)

すると、pull request 作成画面に遷移します。

用意されているテンプレートや過去の pull request を参考に description を記入し、pull request を新規作成します。

https://github.com/rails/rails/pull/51433
![08-github-issue-pull-request.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945225/384eef03-fa24-a09d-b076-6a77a65db040.png)

### 数分後

pull request を発行してから数分でマージされました。早すぎる...
![09-github-merged-pull-request.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945225/8701769a-d591-64fc-2bb2-09e7a9d70a83.png)

GitHub プロジェクト上の当該ファイルを確認すると、修正内容が反映されていることが分かります。
![10-github-readme-after.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945225/b6f77f4e-41e7-c793-af5d-4aeedaca76e8.png)

本記事執筆中に気づいたのですが、Railsにコントリビュートすると、[Rails Contributors](https://contributors.rubyonrails.org/)というサイトにも掲載されるようです。
![11-rails-contributors.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945225/ab4c5035-46ab-e57f-8a77-e712e88719af.png)