🚀 Asana × GitHub Actions × LINEWORKS で週報自動投稿システムを構築する方法

  • URLをコピーしました!

はじめに

この記事では、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: 週報の送信先

必要な準備

  1. Asana APIの設定
  2. LINEWORKS API の設定
  3. GitHub Actions の設定

Asana APIの準備

Asanaは、チームの仕事やタスクを整理・共有できるプロジェクト管理ツールです。リストやカンバン方式、ガントチャートなど、見やすい形式で作業の流れを把握できるのが特徴です。

Asana APIトークンの取得

Asana APIを使えば、Asanaのタスクやプロジェクトを外部アプリケーションから操作・連携することができ、業務の自動化や効率化が実現できます。

AsanaでAPIを使用するためには、まずPersonal Access Tokenを取得します。

  1. トップバーからプロフィール写真をクリック
  2. ドロップダウンメニューから「設定」を選択
  3. 「アプリ」>「デベロッパーコンソールを表示」>「トークンを新規作成」を選択し、トークンを生成します。

マイアプリ画面で『+トークンを新規作成』のボタンを押します。

トークンを作成します。

注:作成したトークンは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_TOKENAsanaのアクセストークン
LINEWORKS_WEBHOOK_URLLINEWORKSの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で週報を自動投稿する仕組みを構築しました。今後ますます需要が高まるであろう定型業務の自動化に向けて、引き続き運用を通じて改善を重ねていきたいと思います。

この記事が気に入ったら
いいねしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次