mackerel-client-go (OSS) にコミットするためにやったことの備忘録
Mackerelを仕事とプライベートで利用しているのでちょっとした自分用のCLIツールが欲しくなりました。(mkrという公式のCLIは提供されています) CLIの実装はGo + mackerel-client-go です。そのCLIツールを作成している中で Clientツール(mackerel-client-go)に欲しいAPIが実装されていなかったのが今回コミットするきっかけとなりました。
Mackerelについてはこちら!
mackerel-client-goはこちら!
MackerelはAPIドキュメント( Mackerel API ドキュメント(v0))
が公開されています。
コミットするまでにやったことについて
ore-mkr
という名前で独自CLIを作っていたのですが、mackerel-client-goにuser一覧を取得するAPIが実装されていませんでした。
ユーザ - Mackerel API ドキュメント (v0) にはユーザ一覧を取得するAPIが公開されているので最初は🤔となりました。 mackerel-client-goには実装がまだ行われていいないんだとうことがわかり、じゃ自分で書いてみよう!と、、、
PRを出すまでの流れ
公式GithubリポジトリのREADMEにプルリクエストを送るまでのながれが記載されていました。
CONTRIBUTION
- Fork (https://github.com/mackerelio/mackerel-client-go/fork)
- Create a feature branch
- Commit your changes
- Rebase your local changes against the master branch
- Run test suite with the
go test ./...
command and confirm that it passes- Run
gofmt -s
- Create new Pull Request
この記載されている流れで実施していきます。
2) Forkすると自分のリポジトリに追加されるので、それを自分のローカルにcloneする
3) ローカルにcloneしたら、コードを実装する
Implement find users api by yhidetoshi · Pull Request #92 · mackerelio/mackerel-client-go · GitHub
→ APIの処理とテストコードを実装した。
3.1) CIチェックを通るようにします。
4) Pull Requestを作成する(自分のGItHubリポジトリからPull Requestを作成)
5) 無事にMergeされた!!
まとめ
今回、mackerel-client-goというMackerelのGoクライアントツールのOSSにコミットしたときのことを備忘録としてまとめました。 OSSにコミットしたのは2回目ということもありますので、(もし誤り等があるかもしれませんがご了承ください) 。 自分が欲しいAPIが実装されていないところを見つけて実装して、無事にマージされ、そのコードを使って自分のCLIツールで活用することができて非常に良い経験になりました。今後は勉強しながら普段お世話になっているOSSに少しでも貢献していけるようにコーディングスキルをつけていきたいと思います。