GitHub App の PR Webhook を受け取り、LINE に通知するサンプルです。
- GitHub App Webhook
- AWS Lambda + API Gateway
- LINE Messaging API
を TypeScript でつないでいます。
※ AWS Lambda 上での動作を前提としたサンプルです。ローカル実行環境は提供していません。
- GitHub アカウント
- GitHub Appsの作成、対象リポジトリへのインストール
- AWS アカウント(Lambda / API Gateway 利用)
- LINE Developers アカウント(Messaging API チャネル)
Lambdaで、以下の環境変数を使用します。
WEBHOOK_SECRET
GitHub App の Webhook secretLINE_CHANNEL_ACCESS_TOKEN
LINE Messaging API のチャネルアクセストークン(長期)LINE_USER_ID
通知を送る LINE ユーザー ID
このリポジトリでは、ローカル環境での Lambda エミュレーションや ステップ実行によるデバッグは検証していません。
動作確認は次の流れを想定しています。
tscでビルドし、dist/とnode_modules/を含めて ZIP を作成- Lambda(Node.js 18+)に ZIP をデプロイし、ハンドラーを
dist/index.handlerに設定 - GitHub App の Webhook をAPI Gatewayに送信し、 Lambda を呼び出し
- CloudWatch LogsやLineアカウントへの通知送信 で挙動を確認
ローカルでのデバッグ方法が必要な場合は、利用者側で index.handler を直接呼び出す
テストスクリプトなどを用意してください(本リポジトリでは提供していません)。
GitHub App の作成手順や Lambda / LINE 側の細かい設定は
以下のブログ記事で解説しています。