Jira Cloud で使われていないコンポーネントを探して整理する方法
Jira Cloud では、チームの名前が変わったり製品が終了したりしても、コンポーネントがすべてのドロップダウンに残ります。課題が 0 件のものを一覧する画面はありません。標準の機能で探す方法、削除したときの課題の扱い、空のコンポーネントを一覧する読み取り専用のスクリプトを書きます。
Hullspark · 2026-10-29 更新 · 出典は Atlassian のドキュメントです。画面の文言は、日本語版ヘルプで確認できたものは日本語で書いています。実際の表示と違う場合があります。
先に結論
- 見る場所: スペースの「コンポーネント」ページに各コンポーネントが並び、「その他の操作」メニューから編集・削除できます [1]。1 回に 1 プロジェクトずつ見るページです。
- 課題数を数える: JQL は
component = 名前かコンポーネント ID を受け付けるので [2]、1 つずつ手で数えられます。 - 空のものをまとめて出す: プロジェクトのコンポーネントを返す REST エンドポイントは、各コンポーネントの
issueCountを返します [3]。下のスクリプトで 0 のものだけに絞ります。 - 削除の前に: コンポーネントの作業項目は、別のコンポーネントにリンクし直すか、リンクを完全に解除できます [1]。アーカイブはなく、その要望 JRACLOUD-10507 は未対応です [5]。
手順 1: コンポーネントのページを開く
- スペース(プロジェクト)を開き、スペースナビゲーションで「コンポーネント」を選びます。ナビゲーションに出ていなければ、「ナビゲーションに追加」で足せます。別の道もあり、スペース名の横の「その他のアクション」(•••)から「スペース設定」、「コンポーネント」の順に開きます [1]。
- コンポーネントを設定できるロールは、「スペース管理者」または「アプリ管理者」と書かれています [1]。
- 名前から使われていなさそうなコンポーネントを書き出します。ページは見つけるのに向いていますが、Atlassian の記事には、課題のないコンポーネントを示す列の説明がありません。数は次の 2 つの手順で取ります。
手順 2: JQL でコンポーネントの課題を数える
課題検索を JQL に切り替え、コンポーネント名か ID で検索します [2]。
project = PROJ AND component = "Payments"
project = PROJ AND component = 20500
結果が空なら、見える範囲でそのコンポーネントに課題はありません。注意が 2 つあります。検索は、閲覧権限のある課題しか返しません。また、コンポーネントごとに 1 回の検索が要るので、10 個を超えると手間がかかります。使える演算子は =、!=、IS、IS NOT、IN、NOT IN で、~ と大小比較は使えません [2]。
手順 3: REST API で課題が 0 件のコンポーネントを一覧する
Atlassian の REST リファレンスには、ページ分割されたエンドポイント GET /rest/api/3/project/{projectIdOrKey}/component があります。startAt、maxResults、orderBy を取り、orderBy=issueCount は書かれた並べ替えです。公開されている OpenAPI ファイルでは、返る各コンポーネントに issueCount があります [3]。古い、ページ分割のない /components エンドポイントは、この項目なしで返します。GET /rest/api/3/component/{id}/relatedIssueCounts は、1 つのコンポーネントの数を返します [3]。
スクリプトは GET だけを送るので、何も変更しません。プレースホルダーを、自分のサイト、メールアドレス、プロジェクトキー、API トークンに置き換えます(REST 呼び出しの API トークンによる Basic 認証は Atlassian が説明しています [4])。トークンは他人に見せません。
PowerShell
$site = "https://YOUR-SITE.atlassian.net"
$email = "you@example.com"
$token = "YOUR_API_TOKEN" # your own token; never share or commit it
$key = "PROJ" # project key, case sensitive
$pair = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("${email}:${token}"))
$h = @{ Authorization = "Basic $pair"; Accept = "application/json" }
$start = 0
do {
$uri = "$site/rest/api/3/project/$key/component?startAt=$start&maxResults=50&orderBy=issueCount"
$page = Invoke-RestMethod -Headers $h -Uri $uri # GET only: nothing is changed
$page.values | Where-Object { $_.issueCount -eq 0 } |
Select-Object id, name, @{n="lead";e={$_.lead.displayName}}
$start += $page.values.Count
} until ($page.isLast -or $page.values.Count -eq 0)
curl と jq
curl -s -u "you@example.com:YOUR_API_TOKEN" \
-H "Accept: application/json" \
"https://YOUR-SITE.atlassian.net/rest/api/3/project/PROJ/component?maxResults=50&orderBy=issueCount" \
| jq -r '.values[] | select(.issueCount == 0) | "\(.id)\t\(.name)"'
出力は、課題のないコンポーネントの ID と名前の一覧です。削除する前に 1 つずつ確かめます。リード(担当者)を見て、季節ごとのレポート用に残していないかをチームに聞きます。
削除すると課題はどうなるか
- 画面から: コンポーネントの行の「その他の操作」(•••)を選び、「削除」を選びます。コンポーネントに作業項目がリンクされている場合は、別のコンポーネントにリンクするか、完全にリンクを解除できると Atlassian の記事にあります [1]。この手順を飛ばしたときの動作は書かれていません。
- API から:
DELETE /rest/api/3/component/{id}はmoveIssuesToを取ります。削除するコンポーネントの代わりになるコンポーネントの ID です。null なら、代わりは設定されません [3]。必要な権限は、そのプロジェクトの Administer projects か Administer Jira です [3]。 - まとめ: 空のコンポーネントは、移す先がなくても削除できます。課題が残るコンポーネントは、先に代わりを決めます。決めないと、その課題のグループ分けが失われます。
標準でできない範囲
- アーカイブがない。 コンポーネントのアーカイブの要望は 1,242 票で、状態は Gathering Interest です [5]。
- 1 画面で答えが出ない。 空のコンポーネントを見つけるには、API か、コンポーネントごとの検索が要ります。
- 課題が 0 件でも話は終わらない。 解決済みの課題しかなくても使われていない場合があり、課題がなくてもオートメーションルールやフィルターが使っている場合があります。削除の前に、そのコンポーネントを名指しするルールと保存済みフィルターを確かめます。
- 削除の理由は残らない。 Jira は理由を保存しません。先に一覧をファイルに書き出しておくと、頼まれたときに同じ名前で作り直せます。
この作業のためのツールを開発中です。公開の通知を希望する
よくある質問
Jira Cloud に、課題のないコンポーネントを一覧する方法はありますか?
標準の画面としては、Atlassian のドキュメントで確認できませんでした。「Archive project components」の要望 JRACLOUD-10507 は未対応のままです。一覧は、コンポーネントごとの課題数を返す REST API で取れます。JQL で 1 つずつ数える方法もあります。
コンポーネントを削除すると、課題はどうなりますか?
Atlassian のヘルプには、コンポーネントに作業項目がリンクされている場合、別のコンポーネントにリンクし直すか、リンクを完全に解除できるとあります。REST API では moveIssuesTo パラメータが、削除するコンポーネントの代わりになるコンポーネントを指します。値がなければ、代わりは設定されません。
コンポーネントを削除できるのは誰ですか?
Atlassian のヘルプでは、ロールは「スペース管理者」または「アプリ管理者」です。コンポーネント削除の REST リファレンスでは、そのプロジェクトの Administer projects 権限、または Administer Jira が要ります。
削除せず、アーカイブすることはできますか?
Atlassian の API リファレンスに、コンポーネントのアーカイブ用の項目はなく、アーカイブの要望も未対応です。よく使われる回避策は、名前の先頭に印を付けるなどして、コンポーネントをそのまま残すことです。これは運用上の取り決めで、Jira の機能ではありません。
確かめていないこと
このページの Jira に関する内容は、2026-10-29 に Atlassian のドキュメントと OpenAPI ファイルを読んで書いています。スクリプトは実際の Jira サイトでは実行していません。Atlassian は画面や API を変更します。
コンポーネントのページの列、issueCount が解決済みやアーカイブ済みの課題を含むか、代わりを指定せずに削除したときのダイアログの文言は、確かめていません。メニューの名前は日本語版ヘルプ(「その他のアクション」と「その他の操作」が混在)に従っており、お使いのサイトの表示と違う場合があります。
出典
- [1] Atlassian サポート: Configure Jira components(日本語版): https://support.atlassian.com/ja/jira-software-cloud/docs/configure-jira-components/
- [2] Atlassian サポート: JQL fields (Component): https://support.atlassian.com/ja/jira-software-cloud/docs/jql-fields/
- [3] Atlassian 開発者ドキュメント: Jira Cloud REST API v3, Project components(公開されている OpenAPI ファイル swagger-v3.v3.json を含む): https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-project-components/
- [4] Atlassian 開発者ドキュメント: Basic auth for REST APIs: https://developer.atlassian.com/cloud/jira/platform/basic-auth-for-rest-apis/
- [5] Atlassian Jira: JRACLOUD-10507 Archive project components: https://jira.atlassian.com/browse/JRACLOUD-10507
関連
質問は サポートページか support@hullspark.com へ。プライバシーポリシー