はじめに
この記事では、Asanaに登録されたタスク情報をもとに、週報を自動生成し、LINE WORKSに投稿する仕組みの作り方について紹介します。これにより、毎週手動で行っていた週報の作成・送信作業を自動化し、負担を軽減することが目的です。
Asana、GitHub Actions、LINE WORKS を組み合わせる理由
チームではAsanaでタスク管理を行っており、そのデータを使えば正確な週報を自動で作成できます。定期実行には、無料で使えるGitHub Actionsを活用し、サーバー不要で自動処理が可能です。
完成した週報はLINE WORKSで共有しているため、出力先をLINE WORKSにすればコピー&ペーストも不要になります。このように、Asanaで情報を集め、GitHub Actionsで処理し、LINE WORKSで共有する流れを作ることで、報告業務を効率化しました。
システム全体の概要

- Asana: タスク情報の管理
- GitHub Actions: スケジュール実行+Asana、LINEWOKRS API連携 + 週報生成
- LINEWORKS: 週報の送信先
必要な準備
- Asana APIの設定
- LINEWORKS API の設定
- GitHub Actions の設定
Asana APIの準備
Asanaは、チームの仕事やタスクを整理・共有できるプロジェクト管理ツールです。リストやカンバン方式、ガントチャートなど、見やすい形式で作業の流れを把握できるのが特徴です。
Asana APIトークンの取得
Asana APIを使えば、Asanaのタスクやプロジェクトを外部アプリケーションから操作・連携することができ、業務の自動化や効率化が実現できます。
AsanaでAPIを使用するためには、まずPersonal Access Tokenを取得します。
- トップバーからプロフィール写真をクリック
- ドロップダウンメニューから「設定」を選択
- 「アプリ」>「デベロッパーコンソールを表示」>「トークンを新規作成」を選択し、トークンを生成します。
マイアプリ画面で『+トークンを新規作成』のボタンを押します。

トークンを作成します。

注:作成したトークンは1回のみの表示です。必ずコピーして控えてください
LINEWORKSの準備
Incoming Webhookアプリ追加
LINEWORKSの「管理者画面 > アプリ」 からIncoming Webhookアプリを追加します。

Botをトークルームに招待する
週報を投稿したいトークグループで『 ⋮ 』→『Bot招待』を選択します。

『Incoming Webhook』を選択し『OK』ボタンを押して追加します。

トークグループに『Incoming Webhook Bot』が追加されます

Webhook URLの発行
GitHub Actions経由でLINEWORKSトークグループに週報データを送るために、事前に『チャンネルID』と『Webhook URL』と呼ばれる2点を準備します。
チャンネルIDの取得
トークグループ画面の画面右上の 『 ⋮ (三点リーダー) 』 → 『チャンネルID』を選択します。

チャンネルIDをコピーします。

WebhookにチャネルIDを設定
以下どちらかの方法でWebhookリスト画面を開きます。
1.『Bot招待時に送られてきたメッセージ』

2.トーク画面下のハンバーガーメニューから『Webhookリスト』を選択

3. Webhook管理画面が表示されます。右上の『+追加』ボタンを押します。

4.Webhook名と取得したチャンネルIDを入力します。

5.登録したWebhookに対するURLとChannel IDを確認することができます。

Webhook URLに対してリクエストを送信すると、該当のトークルームへメッセージが追加されます。
GitHub リモートリポジトリの準備
GitHubにコードやファイルを保存するには、まず「リポジトリ(Repository)」を作成する必要があります。以下の手順で簡単に作成できます。
GitHubにログイン
まずは GitHub にアクセスして、アカウントにログインします。アカウントをまだ持っていない方は、無料で作成できます。
新しいリポジトリの作成
画面右上の「+」アイコンをクリックし、「New repository(新しいリポジトリ)」を選択し、以下の項目を入力します。
- Repository name(リポジトリ名): 半角英数字で任意の名前を入力します
- Description(説明): 任意でリポジトリの説明を書きます。
- Public / Private: 公開・非公開を選択します。
- Initialize this repository with:
- 必要に応じて「READMEの追加」や「.gitignoreの設定」、「ライセンスの選択」を行います。
最後に「Create repository(リポジトリを作成)」ボタンを押すと、新しいリポジトリが完成です!
GitHub Actions の実装
GitHub Actionsは、GitHubリポジトリ上でソフトウェア開発のワークフローを自動化、カスタマイズ、実行できるツールです。CI/CD(継続的インテグレーション/継続的デリバリー)を含むさまざまなタスクを自動化するために使用されます。
GitHub Actions の Secrets登録
GitHub Actions の Secrets は、パスワードやAPIキーなどの機密情報を安全に管理・利用するための仕組みです。秘密情報を安全に自動処理で使うための金庫🔐みたいなものです 。
今回は以下2つのシークレット情報をGitHub ActionsのSecretsに登録します。
シークレット名 | 説明 |
---|---|
ASANA_TOKEN | Asanaのアクセストークン |
LINEWORKS_WEBHOOK_URL | LINEWORKSのWebhook URL |
GitHubのリポジトリで「Settings」タブをクリックし、左のサイドバーから「Secrets」>「Actions」を選び、「New repository secret」をクリックして新しいシークレットを追加します。

シークレットに名前と値をつけ、「Add secret」 をクリックします。

ASANAトークン(ASANA_TOKEN)と同様の手順でLINEWORKSのWebhook URL(LINEWORKS_WEBHOOK_URL)を登録します。

実行ファイルの説明
【リポジトリ内の構成】
リポジトリ/
├── .github/
│ └── workflows/
│ └── weekly-report.yml ← GitHub Actionsの定義(週次実行のトリガーや処理内容)
├── requirements.txt ← Pythonスクリプト用の依存パッケージリスト
└── weekly_report.py ← 週次レポートを生成・送信するスクリプト本体
.github/workflows/ フォルダの意味
このフォルダ内に置いた YAML形式のファイル(.yml
または.yaml
) が、GitHub上で自動的に認識され、CI/CDや自動化タスクとして実行されます。
weekly-report.ymlの役割
毎週金曜日の日本時間18時に weekly_report.py を実行し、Asanaの週次レポートをLINE WORKSへ送信するGitHub Actionsの設定です。
requirements.txtの役割
GitHub Actions が Python 実行環境を準備するときに、必要なライブラリ(requests, pandas, openpyxlなど) をインストールするために使います。
weekly_report.pyの役割
自分が関与した 今週のAsanaプロジェクト のタスク情報を集計後、完了タスク・進行中タスクを分類し、フォーマットされたレポートとして LINE WORKSに自動投稿 するために使います。
実行結果の確認と運用
LINEWORKS に送信された週報(サンプル)

まとめ
本記事では、Asanaの無料プランとLINEWORKSのWebhookを活用し、GitHub Actionsで週報を自動投稿する仕組みを構築しました。今後ますます需要が高まるであろう定型業務の自動化に向けて、引き続き運用を通じて改善を重ねていきたいと思います。