【オープンソース】コントリビュートする方法

## 目次

1.はじめに
2.イシュー発見
3.コントリビュートのガイドライン確認
4.Gitリポジトリのクローン後ローカル設置
5.イシュー修正後PR提出
6.結論

## 1. はじめに
オープンソースを使用していて問題点を見つけたことがありますか。とっても単純なタイプミスからコードのバグまで様々な種類があります。時間があれば、オープンソースに寄与してみるのはどうでしょうか。オープンソースは誰でも参加できる空間であり、そのような寄与一つ一つが積み重なればオープンソースコミュニティ全体に有益な影響を与えます。これから実際の事例を通してGitHubのオープンソースに寄与する方法を見てみます。

## 2. イシュー発見
最近[`bootstrap_form`](https://github.com/bootstrap-ruby/bootstrap_form)というオープンソースを使っていますが、公式文書の`README.md`ファイルにあるリンク3つ(`bootstrap_form_with`、`bootstrap_form_for`、`bootstrap_form_tag`)が動作しないことを気づきました。
![Screen Shot 2023-09-11 at 22.13.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529304/1e2f4b1a-f983-fb4e-25c2-ce4ba528e61e.png)

## 3. 寄与ガイドライン確認
大抵のオープンソースはオープンソースに寄与したい人のため、`CONTRIBUTING.md`というファイルに詳しくルールを説明しています。`bootstrap_form`の寄与ルールを読んでみたらコミットに`[ci skip]`というテキストを挿入すると、提出されたPRがマージされる時にCIのパイプラインが実行されないと説明しています。コードではなくただの`README.md`ファイルの修正なので、忘れないで入れてあげましょう。寄与ルールを無視してPRを提出すると、PRが拒絶される可能性があるので必ず寄与ルールを守りましょう。
![Screen Shot 2023-09-11 at 21.01.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529304/4a113b13-5994-2203-fbbd-0376a81ba217.png)

## 4. Gitリポジトリのクローン後ローカル設置
寄与ルールの確認が終わったので、Gitリポジトリを複製してローカルに設置しましょう。まず、`bootstrap_form`の原本GitリポジトリをForkして複製します。
![Screen Shot 2023-09-11 at 20.58.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529304/6ae745f5-10f2-771a-9270-f94ed683f08a.png)
複製したリポジトリに移動し、**Clone** ボタンを押すと表示されるメニューから、その複製リポジトリのアドレスをコピーします。
![Screen Shot 2023-09-11 at 21.02.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529304/6a912156-fb10-e768-f7d5-2ac196fcbdc9.png)
ターミナルでgitコマンドとコピーしたアドレスを使用してローカルコンピューターに複製したリポジトリを設置します。
```bash
git clone https://github.com/minimabot/bootstrap_form.git
```
ローカルコンピューターに`bootstrap_form`の設置が終わったら、そのディレクトリに移動して新しいブランチを生成します。ドキュメントのリンクを修正するPR提出なので、ブランチ名をdocs/fix-broken-linksにします。
```text
git checkout -b docs/fix-broken-links
```

## 5. イシュー修正後PR提出
これでイシューを修正する準備は終わりました。設置した複製したリポジトリから`README.md`ファイルを開き、動作しないリンクを見つけて修正します。マークダウンのセクションリンクを間違って使用しています。簡単な作業なので1分もかかりません。
![Screen Shot 2023-09-11 at 21.15.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529304/b16e581a-adf9-e162-0d65-f8f8b988e837.png)
修正が終わったら、`README.md`ファイルをGitステージに上げてコミットします。
```text
git add README.md && git commit
```
簡単な修正でも、レビューアのためにコミットメッセージを詳細に作成します。
```text
Fix broken section links in README.md [ci skip]

This PR fixes the issue of broken section links in the README.md file.
The following section links have been corrected for accurate navigation:
- bootstrap_form_with
- bootstrap_form_for
- bootstrap_form_tag
```
コミットメッセージ作成まで終わったら、`fork`で複製したリポジトリにプッシュします。
```text
git push origin docs/fix-broken-links
```
プッシュができたら、GitHubページでPRの提出が有効になることが確認できます。
![Screen Shot 2023-09-11 at 21.30.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529304/4830df50-71e4-fd8d-2a87-cbbbf9e7811e.png)
活性化されたボタンを押して移動すると、すでにコミット内容に基づいてPR内容が作成されています。 ブランチとコミット内容を確認した後、問題がなければ`Create pull request`ボタンを押してPR提出を完了します。
![Screen Shot 2023-09-11 at 21.30.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529304/834e3215-1352-fdad-1b5a-14955c3e2e91.png)
提出したPRのレビューを待ちます。 そしてPRがマージされると`bootstrap_form`のコントリビューターになります。🎉🎉
![Screen Shot 2023-09-11 at 22.24.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3529304/5914346d-9697-dcac-e077-5994c8df213f.png)

## 6. 結論
実際の事例を通してオープンソースに寄与する方法を見てみました。 オープンソースを修正するためには個人的な時間を使う必要があります。 個人的な時間を奪われると思うかもしれません。しかし、私は何かに貢献できるという気持ちを大事にしています。そんな喜びを皆さんにも感じてもらえたらと思います。