{"id":20932337,"url":"https://github.com/karamem0/commistant","last_synced_at":"2026-02-19T10:10:05.839Z","repository":{"id":54351193,"uuid":"457351912","full_name":"karamem0/commistant","owner":"karamem0","description":"Commistant は Microsoft Teams 会議によるコミュニティ イベントをサポートするアシスタント ボットです。","archived":false,"fork":false,"pushed_at":"2026-01-29T05:16:59.000Z","size":16846,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-29T20:12:24.815Z","etag":null,"topics":["azure-openai-service","function-calling","m365dev","microsoft-teams","microsoft-teams-app","microsoft-teams-bot","microsoft-teams-meeting","productivity","react","teams-app"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/karamem0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-02-09T12:37:16.000Z","updated_at":"2026-01-29T05:17:03.000Z","dependencies_parsed_at":"2024-02-21T03:07:18.730Z","dependency_job_id":"a32c51d5-062a-4769-b6e3-d684fad51a59","html_url":"https://github.com/karamem0/commistant","commit_stats":null,"previous_names":[],"tags_count":56,"template":false,"template_full_name":null,"purl":"pkg:github/karamem0/commistant","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karamem0%2Fcommistant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karamem0%2Fcommistant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karamem0%2Fcommistant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karamem0%2Fcommistant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/karamem0","download_url":"https://codeload.github.com/karamem0/commistant/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karamem0%2Fcommistant/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29609532,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T06:47:36.664Z","status":"ssl_error","status_checked_at":"2026-02-19T06:45:47.551Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure-openai-service","function-calling","m365dev","microsoft-teams","microsoft-teams-app","microsoft-teams-bot","microsoft-teams-meeting","productivity","react","teams-app"],"created_at":"2024-11-18T21:48:06.691Z","updated_at":"2026-02-19T10:10:05.832Z","avatar_url":"https://github.com/karamem0.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Commistant\n\nCommistant は Microsoft Teams 会議によるコミュニティ イベントをサポートするアシスタント ボットです。\n\n[![.github/workflows/trigger-on-main.yml](https://github.com/karamem0/commistant/actions/workflows/trigger-on-main.yml/badge.svg)](https://github.com/karamem0/commistant/actions/workflows/trigger-on-main.yml)\n[![codecov](https://codecov.io/gh/karamem0/commistant/graph/badge.svg?token=Z783SI7V9N)](https://codecov.io/gh/karamem0/commistant)\n[![License](https://img.shields.io/github/license/karamem0/commistant.svg)](https://github.com/karamem0/commistant/blob/main/LICENSE)\n\n## 機能\n\nCommistant は会議の開始時、終了時、または会議中に定型のメッセージ通知を送信します。通知にはテキストおよび QR コードつきの URL を添付することができます。\n\n## プレビュー\n\n![プレビュー](./assets/screenshots/001.png)\n\n## 利用シーン\n\n新型コロナウイルスの流行によりコミュニティ イベントはオンライン開催することが主流になりました。開催者は参加者に対して定型のメッセージを送ることがありますが、定期的にメッセージを送ることは開催者の負担となります。Commistant を使うことで、会議中に slido などの Q\u0026A サービスに誘導することや、会議の最初や最後にアンケートの URL を送ることなどが簡単に実現できるようになります。\n\n## インストール方法\n\n### Microsoft Entra ID アプリケーションの登録\n\n1. [Azure ポータル](https://portal.azure.com) に移動します。\n\n2. **≡** - **Microsoft Entra ID** をクリックします。\n\n3. **アプリの登録** - **新規登録** をクリックします。\n\n4. 情報を入力して **登録** をクリックします。\n\n    |項目|値|\n    |-|-|\n    |名前|Commistant|\n    |サポートされているアカウントの種類|シングル テナント|\n\n5. **証明書とシークレット** をクリックしてシークレットを追加します。\n\n6. **API の公開** をクリックしてスコープとクライアント アプリケーションを追加します。\n\n    **スコープ**\n\n    |項目|値|\n    |-|-|\n    |アプリケーション ID URL|api://**Azure Web アプリ のドメイン名**/**アプリケーション ID**|\n    |スコープ名|user_impersonation|\n    |同意できるユーザー|管理者とユーザー|\n    |管理者の同意の表示名|Commistant へのアクセス|\n    |管理者の同意の説明|サインインしたユーザーの代わりに Commistant にアクセスすることをアプリケーションに許可します。|\n    |ユーザーの同意の表示名|Commistant へのアクセス|\n    |ユーザーの同意の説明|サインインしたユーザーの代わりに Commistant にアクセスすることをアプリケーションに許可します。|\n    |状態|有効|\n\n    **クライアント アプリケーション**\n\n    |アプリケーション|スコープ|\n    |-|-|\n    |1fec8e78-bce4-4aaf-ab1b-5451cc387264|user_impersonation|\n    |5e3ce6c0-2b1f-4285-8d4b-75ee78787346|user_impersonation|\n\n### Azure リソースの作成\n\n1. Azure CLI でリソースをデプロイします。\n\n```\naz deployment group create --template-file ./bicep/main.bicep --resource-group \u003cリソース グループ名\u003e --parameters name=\u003cアプリケーション名\u003e microsoftAppId=\u003cアプリケーション ID\u003e microsoftAppPassword=\u003cアプリケーション シークレット\u003e microsoftAppTenantId=\u003cテナント ID\u003e\n```\n\n### アプリケーションのビルド\n\n#### Web アプリ\n\n1. `source/client` フォルダーに移動します。\n\n2. `.env` ファイルを編集します。\n\n    |プレースホルダー|置換|\n    |-|-|\n    |`{{AZURE_FUNCTION_APP_DOMAIN_NAME}}`|**関数アプリのドメイン名**|\n    |`{{VITE_TELEMETRY_CONNECTION_STRING}}`|**Application Insights の接続文字列**|\n\n3. `source/server/Karamem0.Commistant.Web` フォルダーに移動します。\n\n4. アプリケーションをビルドします。\n\n```\ndotnet publish --configuration Release\n```\n\n5. `publish` フォルダーの中身を圧縮します。\n\n```\nCompress-Archive -Path ./bin/Release/net10.0/publish/* -DestinationPath ../../build.zip\n```\n\n6. Azure CLI で ZIP ファイルをアップロードします。\n\n```\naz webapp deploy --name \u003cWeb アプリの名前\u003e --resource-group \u003cリソース グループ名\u003e --src-path \u003cZIP ファイルのパス\u003e\n```\n\n#### 関数アプリ\n\n1. `source/server/Karamem0.Commistant.Function` フォルダーに移動します。\n\n2. アプリケーションをビルドします。\n\n```\ndotnet publish --configuration Release\n```\n\n2. `publish` フォルダーの中身を圧縮します。\n\n```\nCompress-Archive -Path ./bin/Release/net10.0/publish/* -DestinationPath ../../build.zip\n```\n\n3. Azure CLI で ZIP ファイルをアップロードします。\n\n```\naz webapp deploy --name \u003c関数アプリの名前\u003e --resource-group \u003cリソース グループ名\u003e --src-path \u003cZIP ファイルのパス\u003e\n```\n\n### マニフェストのアップロード\n\n1. `manifest` フォルダーに移動します。\n\n2. `manifest.json` ファイルを編集します。\n\n    |プレースホルダー|置換|\n    |-|-|\n    |`{{AZURE_WEB_APP_DOMAIN_NAME}}`|**Web アプリのドメイン名**|\n    |`{{MICROSOFT_TEAMS_APP_ID}}`|**アプリケーション ID**|\n    |`{{MICROSOFT_365_AGENT_ID}}`|**アプリケーション ID**|\n\n3. `manifest` フォルダーの中身を圧縮します。\n\n```\nCompress-Archive -Path ./* -DestinationPath ../manifest.zip\n```\n\n4. [Microsoft Teams 管理センター](https://admin.teams.microsoft.com/) に移動します。\n\n5. **Teams のアプリ** - **アプリを管理** をクリックします。\n\n6. **アップロード** をクリックして `manifest.zip` を選択します。\n\n## 使用方法\n\n### コマンドによる設定\n\n事前に通知する内容を設定します。**@Commistant** と入力するとコマンドの一覧が表示されます。\n\n![使用方法](./assets/screenshots/002.png)\n\n|コマンド名|説明|\n|-|-|\n|会議開始後|会議が開始した後に通知する内容を設定します。|\n|会議終了前|会議が終了する前に通知する内容を設定します。|\n|会議中|会議中に通知する内容を設定します。|\n|初期化|この会議のすべての設定を初期状態に戻します。|\n\n#### 会議開始後\n\n会議の開始時刻の後に 1 回だけ通知を送信します。\n\n**@Commistant 会議開始後** と入力すると設定を変更できます。\n\n![会議開始後](./assets/screenshots/003.png)\n\n|項目|内容|\n|-|-|\n|スケジュール|通知するタイミングを指定します。|\n|メッセージ|送信するメッセージを指定します。|\n|URL|送信する URL を指定します。|\n\nスケジュールの選択肢は以下の通りです。\n\n|項目|内容|\n|-|-|\n|なし|通知を送信しません。|\n|予定時刻|スケジュールで設定されている開始時刻に送信します。|\n|5 分後|スケジュールで設定されている開始時刻の 5 分後に送信します。|\n|10 分後|スケジュールで設定されている開始時刻の 10 分後に送信します。|\n|15 分後|スケジュールで設定されている開始時刻の 15 分後に送信します。|\n\n#### 会議終了前\n\n会議の終了時刻の前に 1 回だけ通知を送信します。\n\n**@Commistant 会議終了前** と入力すると設定を変更できます。\n\n![会議終了前](./assets/screenshots/004.png)\n\n|項目|内容|\n|-|-|\n|スケジュール|通知するタイミングを指定します。|\n|メッセージ|送信するメッセージを指定します。|\n|URL|送信する URL を指定します。|\n\nスケジュールの選択肢は以下の通りです。\n\n|項目|内容|\n|-|-|\n|なし|通知を送信しません。|\n|予定時刻|スケジュールで設定されている終了時刻に送信します。|\n|5 分後|スケジュールで設定されている終了時刻の 5 分前に送信します。|\n|10 分後|スケジュールで設定されている終了時刻の 10 分前に送信します。|\n|15 分後|スケジュールで設定されている終了時刻の 15 分前に送信します。|\n\n#### 会議中\n\n会議中に繰り返し通知を送信します。\n\n**@Commistant 会議中** と入力すると設定を変更できます。\n\n![会議中](./assets/screenshots/005.png)\n\n|項目|内容|\n|-|-|\n|スケジュール|通知するタイミングを指定します。|\n|メッセージ|送信するメッセージを指定します。|\n|URL|送信する URL を指定します。|\n\nスケジュールの選択肢は以下の通りです。\n\n|項目|内容|\n|-|-|\n|なし|通知を送信しません。|\n|15 分|スケジュールで設定されている開始時刻から 15 分おきに送信します。|\n|30 分|スケジュールで設定されている開始時刻から 30 分おきに送信します。|\n|60 分|スケジュールで設定されている開始時刻から 60 分おきに送信します。|\n\n#### 初期化\n\nこの会議のすべての設定を初期化します。\n\n**@Commistant 初期化** と入力すると初期化できます。\n\n![初期化](./assets/screenshots/006.png)\n\n### AI による設定\n\n特定のコマンド以外でもチャットの内容を AI に理解させて設定を変更できます。いくつか例を示します。\n\n- 会議開始後 5 分経ったら「こんにちは」と表示してください。\n- 会議中 30 分おきに「アンケートにご協力ください」と表示してください。URL は「`https://www.example.com`」です。\n- 設定を初期化してください。\n\n### タブによる設定\n\nチャットによる設定変更のほかにタブを使用して設定を変更できます。\n\n![タブによる設定](./assets/screenshots/007.png)\n\n## 注意事項\n\n- 設定は会議ごとに識別されます。複数日にわたるイベントで会議が別になる場合はそれぞれに設定してください。\n- 参加者が途中で退出した場合は通知が参加者に表示されない場合があります。\n\n# 素材\n\nアプリで使用している素材は [unDraw](https://undraw.co/illustrations) にライセンスされています。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaramem0%2Fcommistant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaramem0%2Fcommistant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaramem0%2Fcommistant/lists"}