Spring Securityに微修正Pull Requestを初めて送った
普段業務ではSpring BootとSpring Securityをメインで実装に利用している。 現在使っているSpring Securityのバージョンが2系で古く、Spring Security 5を調査する必要があった。
そもそも Spring Security 5.x系自体出てすでに数年経過しているので、それなりに日本語の情報もある。のだが、微妙にバージョンによってプロパティ名が違ったりして都度試行錯誤しながら検証している。
そんな中公式のリファレンスを参照していたところ、間違いではないのだが他のプロパティ名とフォーマットが違うものが一つだけあるのに気がついた。
spring.security.oauth2.client.provider.[providerId].user-name-attribute
すでにバックポート修正済みだが、この箇所が元々 userNameAttribute
になっていた。
というのをTweetしたところ「コントリビュートチャンス!」と言われたので素直に従ってみた。
Spring Security
該当のファイルは以下のパスにあった。
docs/manual/src/docs/asciidoc/_includes/servlet/oauth2/oauth2-login.adoc
adoc という形式を初めてみたのだが、 AsciiDoc というものらしい。
該当箇所を修正する。
まずは Issue をたてる
小さいとはいえ、リリースされているドキュメントを修正するのだから Issue は立てておくべきだろう、と思って Issue を立てた。他のOSSとは違ってあまり厳格な Issue のガイドラインがないようだ。 ISSUE TEMPLATE と他の Issue を参考にして修正Issueをあげた
とても適当な英語で恐縮なのだが、内容は伝わったらしい。 Label が自動的につけられ Triage 待ちになった。とりあえずやってみるか精神でやっていたので、この時点でPull Request の作成も開始した。
Repository を Fork する
どうやら他のPull Requestを見ると、リポジトリを Fork して修正した内容を本流へ Pull Request として作成するのが正しい手順のようだ。このタイプの作業は始めてだったので、Github公式のドキュメントを参照した。
フォークからのプルリクエストの作成 - GitHub ヘルプ
手順に従って以下を実施した。
- Repository を Fork して自身のアカウント配下に置く
- fix ブランチを作成する。
gh-8169-fix-property-case-style
こんな名前のブランチで作った。Issue 番号と概要。- こちらも色々探したものの厳格なガイドラインがなかったので見様見真似
- 修正する
- fix ブランチを Push
- 一応最新になっているかを確認するために、本流のmasterを取り込んでrebaseする。
spring-projects:master
に向けて Pull Request を作成する
やったことはこれだけ
PR 作成後の手順
その後いくつかやることがあった。
Pivotal Contribute License
Pivotal Contribute License へAgreement する必要があった。そのためGithubアカウントとリンクさせて、いくつかの会社の情報等を入力する。すると、以下のようにCIが進んでいく。
Reviewer Check
Reviewer がアサインされ、適切なLabelを付与してくれる。そして指摘事項がある場合はコメントが来る。自分の場合は、適切なCommit Messageじゃなかったようだ。Issue とのリンクをするためにCommit Messageを変更してほしいとのこと。
fixes gh-XXX
とすると PR Close 時にちゃんとIssue側もCloseしてくれるらしい。知らなかった
修正したものが問題ないと、Mergeされる
感想
とてもとても小さい修正だったが、初めてOSSへPRを出すことができた。それなりにハードルはあるが「Thanks」と言われ、無事Mergeされた時はうれしかった。これをきっかけに少しずついろんなOSSに積極的にPull Requestを送れるようになれば良いな。
なかなか自分一人ではやろうとすら思わなかったので、背中を押してくれた友人に感謝だ(本人はあんまりそんなつもりはなかったかもしれないが)