Rubycapistrano-releases-notificationを導入したことでデプロイ周のチーム内コミュニケーションが改善されました。今回はその時の話を書いていきます。試したRubyのバージョンは2.6.5、Capistranoのバージョンは3.10.1です。普段の業務でデプロイツールとしてCapistranoを使っているのですが、今のチームで以下の課題がありました。誰がどの環境に何の内容でデプロイしたかはCapistranoを実行した人しかわからないrevisions.logなどを見ればわかるが、わざわざサーバーにsshするのは手間リリース報告が手動でSlackでコメントして連絡するため手間staging環境やqa環境などを利用するときは台帳(誰がどの環境で何を検証しているかを記録する謎のスプレッドシート)に書いてチームメンバーに共有しているのだが、台帳のメンテを度々忘れてしまうということで、上記の課題を解決できる方法は何かないかを探してみた所、元同僚のkimromiさんがCapistranoでデプロイ時にSlackに通知をしてくれる便利なプラグイン(Gem)を公開していたことを思い出し、導入してみました。このプラグインを導入することによってただSlack通知されるだけではなく、どのPullRequestでリリースしたかがわかるようになってさらに便利になりました✨。使い方については↑のkimromiさんの記事とリポジトリをご確認ください。私なりに工夫した設定は以下に記載します。一工夫ひとまず記事の内容を見て導入してみた結果、この時点でもだいぶ便利になったのですがチームメンバーから以下のフィードバッグを貰いました。どの環境にもデプロイされたことはSlackに通知してほしいstaging(production以外)のSlack通知は以下の情報がほしいデプロイした人デプロイしたブランチ名デプロイしたソースコードのコミットのURLということで、以下のように修正をしました。deployですが、これをやるとホントにデプロイしてしまうため、まずは--dry-runオプションをつけて実行し、Slackでどんな内容で通知されるかを確認してみましょう。capistrano-releases-notificationはoctokit.rbを使ってプルリクエストの情報を取得します。Token?とターミナルでGitHubの個人アクセストークンを求められて処理が中断されるので事前に作成しておきましょう。作成後、個人アクセストークンをターミナルに入力し、Enterを押すとデプロイ処理が再開されます。個人アクセストークンの作り方は以下を確認してみてください。実行してみた所、以下のようにSlackに通知されました。--dry-run問題なさそうなら、導入したいリポジトリにcapistrano-releases-notificationを導入後、--dry-run無しでcapistranoを実行すればOKです。導入経緯で挙がった課題は解消され、デプロイ周りの連絡はSlackを見ればわかる状態になったため、手間だったSlackでの連絡や謎のスプレッドシートのメンテが不要になりました。productionへのリリースは今までの場合、どのような内容でリリースしたのかを手動でSlackでコメントして報告していたのですが、プルリクエストの内容でSlack通知されるようになったことでだいぶ楽になりました。(その分プルリクエストの内容をちゃんと書かないとですね)。🎉の絵文字リアクションがつくようになってチーム内の雰囲気も良くなった気がします🚀。kimromiさんありがとうございました!!!これからCapistranoの通知系のプラグインを入れる人にオススメです。2019とのことのため、以下のように実装した方が各環境毎に設定内容が整理されてわかりやすいことがわかりました。今回はその設定方法と置いてみて思ったことを書いていきます。さんのGrass-Graphというサービスで、自分のGitHubのContributionのグラフを表す画像URLを生成します。自分のGitHubのアカウントIDを入力するだけで生成できます。簡単にできてかなり驚きました。私の場合、以下のような画像URLを生成することができました。さんの記事を参考に、サイドバーにモジュールを追加することで草を置くことができました。ありがとうございました。チェックを入れるとプライベートリポジトリのContributionも反映できます。これで自分のブログに草を生やすことができました。ブログに草を置いてみて思ったこと草を置いて数日経ちました。思ったことはこちらです。ブログからGitHubへアクセスできて便利ブログからGitHubへよくアクセスするので、そのリンクが出来たのはシンプルに便利だと思いました。自分の日々の草(Contribution)とより向き合うようになったGitHubの草が表示されるページはプロフィールのページなのですが、思い返すと以下のようにプロフィールページを見る機会が少なかったのかなぁと思いました。普段は自分のリポジトリ一覧にアクセスする時にまずはプロフィールページに開いたりなど数秒しか見ていない場合によってはリポジトリのURLをブックマークしていて、そもそもプロフィールページを見ない日があるそして、FindyやLAPRASで見てみると「うわっ・・・私の草原、コンクリート過ぎ・・・?」と思って変に焦ったりとか...GitHubの草の生え具合(Contribution)が全てではない(他にも色々なgitのホスティングサービスがありますし)のと生やせば良いってものでもないですが、この草の生え具合を見た時にどう思うのかを考えるきっかけが増えて良かったと思いました。ちなみに、今の草の生え具合を自分で見てみたどう思ったかについてですが、「やべ、もっと草生やすのを通して色んな技術をキャッチアップしていくぞ!!」でした(^_^;)。草も生やしながら、このブログのコンテンツの中身も充実させていきます。APIを利用するためにoctokit.rbを使ったため、その時のメモを残しておきます。APIに対応したRuby製のクライアントです。Ruby以外だと.NET(octokit.net)やNode.js(octokit/rest.js)があります。developer.github.comoctokit.rbを使ってリポジトリのリリースを作ってみるそれでは実際にoctokit.rbを使っていきましょう!!今回作るサンプルのコードはここに公開しているため実装を確認したい場合は適宜チェックしてみてください。github.comディレクトリ構成は以下のようになります。app.rb作業用のディレクトリを作っておきます。octokit-rb-create-release-sample.envにGitHubのパーソナルアクセストークンが入るため今回は.gitignoreを作成し、.envを除外しておきます。Gemfileを作成Gemfileにoctokitと環境変数を設定するdotenvを入れます。app.rbを作成app.rbを以下のように作成する。やっていることは、対象のリポジトリの最新のプルリクエストを取得し、そのプルリクエストに対してのリリースを作成する内容です。リリースの詳細にはプルリクエストのタイトルとプルリクエストの番号を入れておくことで確認しやすいようにしました。.envを作成パーソナルアクセストークンとリポジトリをセットします。リポジトリはリリースを作成したいリポジトリ名で設定します。パーソナルアクセストークンの作り方がわからない場合は以下を確認。app.rbすると、以下のように対象リポジトリのリリースページを見てみると、リリースが作成されていることがわかります。プルリクエストの番号部分はリンクになっているため、クリックすればプルリクエストのページへ飛べるのは便利!!!こんな感じでoctokit.rbを使ってみました。今回のはあくまでサンプル用で、実際にはCIでのデプロイが完了したらリリースを作成するなどの使い方にはなると思います。APIを組み合わせてちょっとしたツールを何個か作っていこうと思います。その時にマージしたブランチを削除するのをたまに忘れたりします。branchを押さずにブランチが残ったままになったりします。branchesにチェックを入れたらOKです。※設定するにはadmin権限が必要ですこれでマージしたブランチは自動で削除されるので、消し忘れが解消できますね。branchを押せば復活できるので安心です。今回の内容と全然関係ないですが、「意図せずにボタンなどを押した状態」のことを北海道弁で「押ささる」ってよく言うことをふと思い出しました(ホントに全然関係ない)。公式のドキュメントがあることに気がついたため載せておきます。検索バーで自分のユーザ名を入力して調べていた。以下のように公式ドキュメントに調べる方法がちゃんと載ってあったことがわかったのでメモしておく。help.github.com自分が作ったissueやプルリクエストを調べる時author:ユーザ名をフィルターに入力し抽出するまた、issueの場合はissueの一覧画面で作成者のユーザ名がリンクになっておりクリックするとそのユーザ名で作成されたissueの一覧画面が表示される。自分がコメントしたissueやプルリクエストを調べる時これは完全に知らなかった。検索とかすると良さそう。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。