My Note

自己理解のためのブログ

mackerel-client-go (OSS) にコミットするためにやったことの備忘録

Mackerelを仕事とプライベートで利用しているのでちょっとした自分用のCLIツールが欲しくなりました。(mkrという公式のCLIは提供されています) CLIの実装はGo + mackerel-client-go です。そのCLIツールを作成している中で Clientツール(mackerel-client-go)に欲しいAPIが実装されていなかったのが今回コミットするきっかけとなりました。

Mackerelについてはこちら!

mackerel.io

mackerel-client-goはこちら!

github.com

MackerelはAPIドキュメント( Mackerel API ドキュメント(v0))が公開されています。

mackerel.io

コミットするまでにやったことについて

ore-mkr という名前で独自CLIを作っていたのですが、mackerel-client-goにuser一覧を取得するAPIが実装されていませんでした。

github.com

ユーザ - Mackerel API ドキュメント (v0) にはユーザ一覧を取得するAPIが公開されているので最初は🤔となりました。 mackerel-client-goには実装がまだ行われていいないんだとうことがわかり、じゃ自分で書いてみよう!と、、、

PRを出すまでの流れ

公式GithubリポジトリのREADMEにプルリクエストを送るまでのながれが記載されていました。

CONTRIBUTION

  1. Fork (https://github.com/mackerelio/mackerel-client-go/fork)
  2. Create a feature branch
  3. Commit your changes
  4. Rebase your local changes against the master branch
  5. Run test suite with the go test ./... command and confirm that it passes
  6. Run gofmt -s
  7. Create new Pull Request

この記載されている流れで実施していきます。

1) 公式GitHubリポジトリをForkする

f:id:yhidetoshi:20190720084100p:plain

2) Forkすると自分のリポジトリに追加されるので、それを自分のローカルにcloneする

f:id:yhidetoshi:20190720084416p:plain

3) ローカルにcloneしたら、コードを実装する

Implement find users api by yhidetoshi · Pull Request #92 · mackerelio/mackerel-client-go · GitHub

APIの処理とテストコードを実装した。

3.1) CIチェックを通るようにします。

f:id:yhidetoshi:20190720163244p:plain

4) Pull Requestを作成する(自分のGItHubリポジトリからPull Requestを作成)

f:id:yhidetoshi:20190720085148p:plain

f:id:yhidetoshi:20190720085911p:plain

5) 無事にMergeされた!!

f:id:yhidetoshi:20190720091731p:plain

まとめ

今回、mackerel-client-goというMackerelのGoクライアントツールのOSSにコミットしたときのことを備忘録としてまとめました。 OSSにコミットしたのは2回目ということもありますので、(もし誤り等があるかもしれませんがご了承ください) 。 自分が欲しいAPIが実装されていないところを見つけて実装して、無事にマージされ、そのコードを使って自分のCLIツールで活用することができて非常に良い経験になりました。今後は勉強しながら普段お世話になっているOSSに少しでも貢献していけるようにコーディングスキルをつけていきたいと思います。