okuzawatsの日記

Android / Kotlin / GitHub Actions Enthusiast 🤖

Chatworkにメッセージを送信するGitHub Actionsを公開しました🎉

目次

GitHub ActionsからChatworkに何かを通知したいことがありませんか?僕はあります。例えば、CIが成功した時は成功したことをChatworkに通知して欲しいですし、CIが失敗した時は失敗したことをChatworkに通知して欲しいです。GitHub Actionsが元気に動いているのを眺めているのは楽しい趣味ですが(そして時に必要なことでもありますが)、大抵の場合は結果だけをチャット(ここではChatwork)に通知してくれれば足ります。

結論としては、GitHub ActionsからChatworkにメッセージを送信するためのActionをGitHubのマーケットプレースに公開しました🎉こちらのActionを使っていただければ、GitHub ActionsからChatworkへ、簡単にメッセージを送信できるようになるかと思います。

ちなみに、GitHubのマーケットプレースを探すと、既に以下のアクションが存在しました。どのActionもPull Requestに関する通知を送ってくれるActionのようです。自分はCIの結果をChatworkに通知する、というようなユースケースを満たすActionが欲しいと考えていたので、これらのActionはちょっと目的が違うかなと思いました。

使い方

以下にサンプルとなるGitHub Actionsのワークフローを示します。 okuzawats/chatwork-messaging-action を使用している箇所に着目してください。

name: send message
on:
  push:
    branches: [main]
jobs:
  message:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: set current datetime to env
        env:
          TZ: 'Asia/Tokyo'
        run: echo "CURRENT_DATETIME=$(date +'%Y-%m-%d %H:%M:%S')" >> $GITHUB_ENV
      - name: set arguments
        id: arguments
        run: echo '::set-output name=message::"[info][title](beer)what time is it now?[/title]it is ${{ env.CURRENT_DATETIME }} now.[/info]"'
      - uses: okuzawats/chatwork-messaging-action@v1.0
        with:
          apiToken: ${{ secrets.API_TOKEN }}
          roomId: ${{ secrets.ROOM_ID }}
          message: ${{ steps.arguments.outputs.message }}

このActionを使う時に必要となるのは、APIのトークン( apiToken )、チャットルームのID( roomID )、そして送信するメッセージ( message )です。いずれもこのActionを使用する上で必須のパラメータとしています。

APIトークンは以下から利用申請を行うと取得できるものです。こちらはGitHubのシークレットに入れて使うことを想定しています。

チャットルームのIDは、「チャットの説明 > グループチャットの設定 > チャット情報 > 画面下部のルーム ID」というように進んで確認できる数字です。ブラウザ版のChatworkでチャットルームを開いた時のURLに含まれるrid以下の数字も同じものです。ブラウザ版を使っているのであれば、URLを確認するのが一番早いかもしれません。こちらも一応シークレットに入れて使うことを想定しています。

最後のパラメータは、Chatworkに送信したい文字列です。Chatworkのメッセージは、「メッセージ記法」というものを使ってリッチにできます。メッセージ記法については、以下のリンクを参照してください。また、もしActionで使用できないメッセージ記法があれば、Issueを立てていただけるとありがたいです。

Reference

  1. Chatwork, Chatwork APIへようこそ!, retrieved from https://developer.chatwork.com/docs (最終アクセス日:2022年8月31日)
  2. Chatwork, メッセージ記法について, retrieved from https://developer.chatwork.com/docs/message-notation (最終アクセス日:2022年8月31日)

#GitHub Actions

書いている人 😎

profile

茨城県つくば市在住のモバイルアプリケーションアーキテクト(Androidが得意です)。モバイルアプリのアーキテクチャ、自動テスト、CI/CDに興味があります。いわゆる「レガシーコード」のリファクタリング・リアーキテクチャが好きです。

👉 もっと詳しく

著書 ✍

Android 依存性注入 ヒッチハイク・ガイド🧳

Androidアプリでの依存性注入(Dependency Injection)に入門するためのガイダンスです。依存性注入の概念やメリットを理解し、Dagger Hiltを用いてAndroidアプリに適用する方法を解説しています。

販売サイトへ🏃

ソフトウェアデザイン 2023年6月号📚

特集「クリーンアーキテクチャとは何か?」の第5章「モバイルアプリ開発における実践」を執筆しました。

販売サイトへ🏃

Android クリーンアーキテクチャ ヒッチハイク・ガイド🧳

Androidアプリでのクリーンアーキテクチャに入門するためのガイダンスです。クリーンアーキテクチャの概念を理解し、Androidアプリに適用する方法を解説しています。

販売サイトへ🏃

Android ユニットテスト ヒッチハイク・ガイド🧳

Androidアプリのユニットテストに入門するためのガイダンスです。初学者が混乱せずにAndroidアプリのユニットテストを書き始めることができる、ということを目的としています。

販売サイトへ🏃

Android MVVMアーキテクチャ入門🛠

Androidアプリ開発の初学者に向けた、MVVM(Model-View-ViewModel)アーキテクチャの入門書を書きました。初学者の方を確実にネクストレベルに引き上げる技術書です。NextPublishingより出版されています。

販売サイトへ🏃

関連記事 👀

お問い合わせ✉️

Androidアプリ開発、特にレガシープロジェクトに関するご相談はこちらまで📨

お名前

メールアドレス

お問い合わせ内容