Backlog の期限切れタスクを Slack へ通知するためのリポジトリです。
インフラは Google Apps Script の実行環境を利用し、ソースコードは Google Clasp で管理できるようにしています。
- Node.js
- v20.7.0
- npm
- 10.1.0
Other libraries are here
Google ASIDE を利用して Clasp、Type Script、Jest などを引き込んでいます。
- Apps Script in IDE (ASIDE)
これに加えて、node modules は GAS の実行環境では引き込めないため、
rollup を利用してトランスパイル時に必要なものだけバンドル化しています。
See CONTRIBUTING.md
npmを使用して必要なパッケージをインストールします。
npm -i
下記コマンドを実行してGoogleへの認証を行います。 認証することでGoogle環境とファイルのやり取りができるようになります。
clasp login
コマンドを実行すると、ターミナル上に以下のようなURLが出力されます。
このアドレスへアクセスすると、ログインと権限の許可が求められます。
実行例
~/ghq/github.com/semba-yui/notice-slack-backlog-issueson main [?] is 📦 v1.0.0 via v20.7.0
$ clasp login
Logging in globally…
🔑 Authorize clasp by visiting this url:
https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&scope=hoge # ← この URL をクリック
Authorization successful.
Default credentials saved to: /Users/semba/.clasprc.json.
プロジェクトに環境変数(スクリプト プロパティ)を設定していきます。
※ .env
ファイルはローカルのみに保持し、コミットしないこと。
cp .env.example .env
.env
に適切な環境変数を設定する。
Warning
権限の選択等は一切ありません。
とても危険なので取り扱いは十分に気をつけること。
払い出した API キーは BACKLOG_API_KEY
として設定します。
管理画面の URL のパスパラメータから確認します。
例: https://hoge.backlog.jp/EditProject.action?project.id=00001
の場合、
BACKLOG_PROJECT_ID
には 00001
を設定します。
Backlog の Project URL を設定します。
例: https://hoge.backlog.jp
の場合、hoge
を BACKLOG_PROJECT_URL
に設定します。
通知対象の Slack Channel ID を設定する。
https://auto-worker.com/blog/?p=132 参照。
Note 参照。
~/ghq/github.com/semba-yui/notice-slack-backlog-issues on main [!?] is 📦 v1.0.0 via v20.7.0 took 2s
$ npm run build
> [email protected] build
> npm run clean && npm run bundle && ncp appsscript.json dist/appsscript.json
> [email protected] clean
> rimraf build dist
> [email protected] bundle
> rollup --no-treeshake -c rollup.config.mjs
https://api.slack.com/apps にアクセスし、Create New App
を選択する。
From Scratchを選択する。
- App Name: アプリの名称
- Pick a workspace to develop your app in: アプリをインストールするワークスペース
OAuth & Permissions のページを開き、Scopes にて以下の権限を全て付与する。
users:read
users:read.email
chat:write
OAuth Tokens for Your Workspace
の下部にある Install to Workspace を選択し、ワークスペースへインストールする。
これにより、Bot User OAuth Token が払い出されるため、この値を .env
に設定して利用する。
メンションすると招待できる。
- Ryuichiro Semba
See LICENSE