# 課題の依存関係の作成

どの issue が他の作業にブロックされている、またはブロックしているかを確認できるように、issue の依存関係を作成する方法について説明します。

課題の依存関係を使用すると、他の作業によってブロックされている、またはブロックしている課題を定義できます。

## 別の課題にブロックされている、または別の課題をブロックしているとして課題をマークする。

1. 依存関係を作成する issue に移動します。
2. 右側のサイドバーで、**\[Relationships]** をクリックします。
3. ドロップダウンから依存関係オプションを選びます。
   * Issue が別の issue の完了に依存していることを示すには、\[**ブロック元としてマーク**] を選びます。
   * 別の問題の完了を妨げていることを示すには、この問題を **\[Mark as blocking]** として選択します。
4. 開いたダイアログボックスで、あなたの issue によってブロックされている、またはあなたの issue をブロックしているすべての issue を検索して選択します。

ブロックされている issue は、プロジェクト ボードまたはリポジトリの issue ページに \[Blocked] アイコンでマークされるため、ボトルネックを簡単に特定できます。

## 2つの課題間のブロック関係を削除する

1. 依存関係を削除する issue に移動します。
2. 右側のサイドバーで、**\[Relationships]** をクリックします。
3. ドロップダウンから依存関係オプションを選びます。
   * 別の課題の完了に依存しなくなったことを示すには、\[**ブロック元を変更**] を選択します。
   * 他の issue の解決を妨げていないことを示すには、\[**ブロックの変更**] を選択してください。
4. 開いたダイアログ ボックスで、issue によってブロックされなくなった、あるいはブロックしなくなった issue の選択を解除します。

## で問題の依存関係を管理する GitHub CLI

GitHub CLI は、コンピューターのコマンド ラインから GitHub を使用するためのオープン ソース ツールです。 コマンドラインから作業しているときは、GitHub CLI を使用して時間を節約し、コンテキストの切り替えを回避できます。
GitHub CLIの詳細については、「[GitHub CLI について](/ja/github-cli/github-cli/about-github-cli)」を参照してください。

依存関係に関する新しい問題を作成するには、`--blocked-by`で`--blocking`フラグと`gh issue create`フラグを使用します。 各フラグは、問題番号または URL のコンマ区切りのリストを受け入れます。

```shell
gh issue create --title "TITLE" --body "ISSUE-DESCRIPTION" --blocked-by BLOCKED-BY-ISSUE-NUMBER --blocking BLOCKING-ISSUE-NUMBER
```

既存の問題に対する依存関係を追加または削除するには、問題番号または URL を含む `gh issue edit` に対応するフラグを使用します。

```shell
gh issue edit ISSUE-NUMBER --add-blocked-by BLOCKED-BY-ISSUE-NUMBER --add-blocking BLOCKING-ISSUE-NUMBER
gh issue edit ISSUE-NUMBER --remove-blocked-by BLOCKED-BY-ISSUE-NUMBER --remove-blocking BLOCKING-ISSUE-NUMBER
```

問題の依存関係を確認するには、 `gh issue view`を使用します。 リレーションシップが設定されている場合、出力には "Blocked by" 行と "Blocking" 行が含まれます。

```text
My new issue octo-org/octo-repo#123
Open • monalisa opened 3 days ago • 0 comments
Blocked by: octo-org/octo-repo#200 Database schema migration
Blocking: octo-org/octo-repo#300 Release v2.0

  Here are more details.

View this issue on GitHub: https://github.com/octo-org/octo-repo/issues/123
```

`--json`フィールドと`blockedBy` フィールドを使用して、`blocking` フラグを使用してプログラムで依存関係にアクセスすることもできます。

```shell
gh issue view ISSUE-NUMBER --json blockedBy,blocking
```