Skip to main content

github-graphql-api

GitHub REST APIのSub-issue関連バグを回避するためのGraphQL API共通処理(Sub-issue登録、エラーハンドリング)を提供

Quellinformationen

Repository
takemo101/compose-workflow
Letzte Quellaktivität
9. Januar 2026 um 14:55
Erkannte Sprache von SKILL.md
Japanisch
Sterne
0
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
2 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
github-graphql-api
description
GitHub REST APIのSub-issue関連バグを回避するためのGraphQL API共通処理(Sub-issue登録、エラーハンドリング)を提供
# GitHub GraphQL API共通処理 > **参照元**: decompose-issue.md, detailed-design-workflow.md から分離された共通GraphQL API処理 --- ## 概要 GitHub REST APIにはSub-issue関連のバグがあるため、GraphQL APIを使用する。 **Reference**: https://github.com/cli/cli/issues/10378 --- ## Sub-issue登録 親IssueにSub-issueを紐付けるGraphQL API処理。 ### 処理フロー ```python def add_sub_issue(parent_issue_id: int, child_issue_id: int) -> bool: """ 親IssueにSub-issueを登録する Args: parent_issue_id: 親Issue番号 child_issue_id: 子Issue番号(Sub-issue) Returns: 成功時True、失敗時False(致命的エラーとしない) """ try: # 1. GraphQL Node IDを取得 parent_node_id = bash( f"gh issue view {parent_issue_id} --json id --jq '.id'" ).stdout.strip() child_node_id = bash( f"gh issue view {child_issue_id} --json id --jq '.id'" ).stdout.strip() if not parent_node_id or not child_node_id: return False # 2. GraphQL APIでSub-issue関係を追加 result = bash(f''' gh api graphql \ -H "GraphQL-Features: sub_issues" \ -f 'query=mutation {{ addSubIssue(input: {{ issueId: "{parent_node_id}", subIssueId: "{child_node_id}" }}) {{ issue {{ number }} subIssue {{ number }} }} }}' ''') return result.exit_code == 0 except Exception: return False # Sub-issue登録失敗は致命的エラーとしない ``` ### シェルコマンド版 ```bash # 1. Node ID取得 PARENT_NODE_ID=$(gh issue view $PARENT_ISSUE_ID --json id --jq '.id') CHILD_NODE_ID=$(gh issue view $CHILD_ISSUE_ID --json id --jq '.id') # 2. Sub-issue登録 gh api graphql \ -H "GraphQL-Features: sub_issues" \ -f "query=mutation { addSubIssue(input: { issueId: \"$PARENT_NODE_ID\", subIssueId: \"$CHILD_NODE_ID\" }) { issue { number } subIssue { number } } }" || true # エラーでも続行 ``` --- ## エラーハンドリング | エラー | 対応 | |--------|------| | Node ID取得失敗 | 処理をスキップ(警告ログ出力) | | GraphQL API失敗 | 処理をスキップ(致命的エラーとしない) | | ネットワークエラー | リトライ1回後スキップ | **重要**: Sub-issue登録の失敗はワークフロー全体を停止させない。Issue自体は作成済みなので、手動でSub-issue関係を設定可能。 --- ## 使用箇所 | ワークフロー | 用途 | |-------------|------| | `/decompose-issue` | 分割したSubtaskを親Issueに紐付け | | `/detailed-design-workflow` | 作成したIssueをEpicに紐付け | --- ## CLIスクリプト **自動化スクリプトが利用可能です:** ```bash bash .opencode/skill/github-graphql-api/scripts/add-sub-issue.sh <parent-issue> <child-issue> ``` | 引数 | 説明 | |------|------| | `parent-issue` | 親Issue番号 | | `child-issue` | Sub-issueとして追加するIssue番号 | **使用例:** ```bash bash .opencode/skill/github-graphql-api/scripts/add-sub-issue.sh 10 42 ```
Auf GitHub ansehen