コンテンツにスキップ

SiriからGitHub Issueを作成する(iOSショートカット)

📁 docs/bot-scheduler/artifact/siri-github-issue.md

概要

iOSショートカット + GitHub REST APIを使い、Siriに話しかけるだけでMyLabにissueを追加する。


事前準備:GitHub Personal Access Token(PAT)

  1. GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
  2. Generate new token (classic)
  3. 設定:
  4. Note: siri-github-issue
  5. Expiration: 任意(無期限非推奨)
  6. Scope: repo にチェック
  7. 生成したトークンをコピー(ghp_xxxx... の形式)
  8. Credentials/github_pat.json に保存済みであれば使い回し可

iOSショートカットの作成手順

ショートカットアプリで新規作成

  1. ショートカット アプリを開く
  2. 右上の 「+」 をタップ
  3. ショートカット名を 「GitHub Issue追加」 に設定(Siriの起動ワードになる)

アクションの追加(順番通りに)

ステップ1:タイトル入力

  • アクション追加 → 「入力を要求」(Ask for Input)
  • プロンプト: Issueのタイトルを入力してください
  • 入力タイプ: テキスト
  • 結果を 「タイトル」 という変数に保存

ステップ2:本文入力(任意)

  • アクション追加 → 「入力を要求」(Ask for Input)
  • プロンプト: Issueの詳細(スキップ可)
  • 入力タイプ: テキスト
  • 結果を 「本文」 という変数に保存

ステップ3:GitHub APIを呼び出す

  • アクション追加 → 「URLのコンテンツを取得」(Get Contents of URL)
  • URL: https://api.github.com/repos/KZ55230/MyLab/issues
  • メソッド: POST
  • ヘッダー:

    キー
    Authorization Bearer ghp_xxxxxxxxxxxxxxxxxxxxxx
    Content-Type application/json
    Accept application/vnd.github+json
    X-GitHub-Api-Version 2022-11-28
  • リクエストボディ: JSON

    • キー title → タイトル変数
    • キー body → 本文変数

ポイント: リクエストボディは「テキスト」ではなく 「JSON」 を選択すること。 JSON形式を選ぶと、タイトル・本文に引用符や改行が含まれていても自動でエスケープされる。

ステップ4:結果を通知

  • アクション追加 → 「辞書の値を取得」
  • キー: number
  • 辞書: 「URLのコンテンツを取得」の結果
  • アクション追加 → 「通知を表示」
  • タイトル: Issue作成完了
  • 本文: #[number変数] [タイトル変数]

Siriから起動する

  1. 「Hey Siri、GitHub Issue追加」と話しかける
  2. タイトルを音声で入力
  3. 本文を音声で入力(不要ならそのまま「完了」)
  4. 通知で作成されたIssue番号を確認

ラベルを付けるには(オプション)

ショートカットのステップ1とステップ3の間に以下を追加する。

  • アクション追加 → 「リストから選択」(Choose from List)
  • リストの項目:
    • 仕事
    • 副業
    • 知的好奇心
    • (ラベルなし)
  • プロンプト: ラベルを選択
  • 結果を 「ラベル」 という変数に保存

ステップ3のリクエストボディに追加: - キー labels → 配列で [ラベル変数]

ラベル名はGitHubに存在するラベルと完全一致させること。


トークンの注意点

  • PATはショートカット内に直書きになるため、スコープは必要最低限(repo)に留める
  • PATが漏洩した場合はすぐに revoke → 再発行
  • iPhoneを紛失した場合も即revoke

動作確認(PC側)

APIが正しく機能するかローカルで確認:

python3 scripts/siri_github_issue/test_api.py

参考