Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/matchaism/adventar_bell
Adventarの記事投稿をSlackで通知
https://github.com/matchaism/adventar_bell
discord google-apps-script google-sheets javascript slack
Last synced: about 1 month ago
JSON representation
Adventarの記事投稿をSlackで通知
- Host: GitHub
- URL: https://github.com/matchaism/adventar_bell
- Owner: matchaism
- License: mit
- Created: 2024-12-03T05:49:25.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2024-12-15T19:30:22.000Z (about 1 month ago)
- Last Synced: 2024-12-15T20:27:19.079Z (about 1 month ago)
- Topics: discord, google-apps-script, google-sheets, javascript, slack
- Language: JavaScript
- Homepage:
- Size: 39.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Adventar Bell
[![adventar](https://img.shields.io/badge/adventar-D35F4A.svg)](https://adventar.org/) [![Google Sheets](https://img.shields.io/badge/Google%20Sheets-gray.svg?logo=googlesheets)](https://www.google.com/intl/ja_jp/sheets/about/) [![Google Apps Script](https://img.shields.io/badge/Google%20Apps%20Script-gray.svg?logo=googleappsscript)](https://script.google.com/) [![slack](https://img.shields.io/badge/slack-gray.svg?logo=slack)](https://slack.com/) [![discord](https://img.shields.io/badge/discord-gray.svg?logo=discord)](https://discord.com/) [![clasp](https://img.shields.io/badge/deploy%20with-clasp-4285f4.svg)](https://github.com/google/clasp) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![deploy](https://github.com/matchaism/adventar_bell/actions/workflows/deploy.yml/badge.svg?branch=deploy)](https://github.com/matchaism/adventar_bell/actions/workflows/deploy.yml)
## Usage
本体は`src/`で,それ以外は雑多な用途のためのファイル.
1. [advent_calendar.xlsx](./template/advent_calendar.xlsx)を参考に,Googleスプレッドシートを作成
- CSV版: [advent_calendar.csv](./template/advent_calendar.csv)
- スプレッドシートにコピー&ペーストか,インポート
2. 登録したいAdventarのtitle, urlを入力 (1行に1つのAdventar)
3. スプレッドシートの拡張機能Apps Scriptの画面へ
4. `src/`以下のスクリプト(JavaScript)を全てアップロード: エディタ > ファイル > + (ファイルを追加) > スクリプト
5. ライブラリの登録: エディタ > ライブラリ > + (ライブラリを追加) > Cheerioを追加
6. スクリプトプロパティの編集: プロジェクトの設定 > スクリプトプロパティ
- `sheet_name`: `<スプレッドシートのシート名>`
- Slack
1. 事前にカスタムインテグレーションから,Incoming Webhookの設定
2. `slack_webhook_url`: `https://hooks.slack.com/services/~` > WebhookのURLをコピー
- Discord
1. 事前にサーバ設定 > 連携サービス > ウェブフック > 新しいウェブフックの作成 > ウェブフックURLをコピー
2. `discord_webhook_url`: `https://discord.com/api/webhooks/~`
7. これで実行できる
8. 定期実行のため,トリガーを追加## GitHub Actionsによるclaspを利用した自動デプロイ
ワークフロー: [deploy.yml](.github/workflows/deploy.yml)
1. clasp,Apps Scriptの認証情報を,[Actions secrets and variables](./settings/secrets/actions) (Settings > Secrets and variables > Actions)に登録
2. deployブランチにpush,または手動で実行([Actions](./actions/))
3. GitHub Actionsによるデプロイが自動で進行
- 内部では,`clasp push --force`と`clasp deploy --deploymentId $DEPLOYMENT_ID`を実行
- TypeScriptは`.gs`にコンパイル・変換される
4. GAS側の定期実行が必要なら,別途設定### 認証情報
|認証|Secrets|
|---|---|
|clasp|`ACCESS_TOKEN`, `REFRESH_TOKEN`, `SCOPE`, `TOKEN_TYPE`, `ID_TOKEN`, `EXPIRY_DATE`, `CLIENT_ID`, `CLIENT_SECRET`, `REDIRECT_URI`, `IS_LOCAL_CREDS`|
|Apps Script|`DEPLOYMENT_ID`, `SCRIPT_ID`|## 開発
- ローカルでコーディング
- 手元でコンパイルしたいなら`npm run build`
- developブランチでcommit&push
- 上記自動化により自動デプロイ (ワークフロー: [deploy_dev.yml](.github/workflows/deploy_dev.yml),developブランチへのpushがトリガー)
- 開発専用スプレッドシート&GASに`clasp push`&`clasp deploy`
- TypeScriptは`.gs`にコンパイル・変換される
- 必要に応じて実験したいときはブランチを切り,専用ブランチでcommit&push,および手動で[deploy_dev.yml](.github/workflows/deploy_dev.yml)によるデプロイを実行
- 開発が終わったら,develop(とか)->mainのmerge,main->deployのmergeでデプロイへ## License
This package is open-sourced software licensed under the [MIT license](https://choosealicense.com/licenses/mit/).