アーカイブ済みの課題を削除する方法

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問


プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。

Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Fisheye および Crucible は除く

目的

もしも環境にアーカイブされた課題が大量にあり、それらが今後確実に必要ないことがわかっている場合には、この記事で紹介した手順でそれらを削除することができます。 

ソリューション

  • データベースで、すべての課題キーおよびアーカイブされた課題の要約を返す SQL クエリを実行します。

    select ( p.pkey || '-' || ji.issuenum ) as "issue_key" from jiraissue ji
    join project p on p.id = ji.project
    where ji.archived = 'Y';
  • 下記の出力結果を例に確認します。 

    issue_key
    -----------
     PROJ-1 
    (1 row)
  • ユーザーは出力を CSV ファイルとしてエクスポートし、PowerShell でそれらの値を繰り返し処理できます。
  • Linux サーバーから直接実行できる bash スクリプトを作成する方法は次のとおりです。

ステップは次のとおりです。

  1. .sh ファイルを以下の内容で作成します。

    #!/bin/bash
    echo "What's your Jira URL? Provide with the scheme, e.g. https://myjira.com"
    read jiraurl
    echo "What's your Jira username?"
    read username
    echo "What's your password?"
    read password
    
    cat issuelist.csv | while read line
    do
    echo "Restoring issue $line"
    curl -u $username:$password \
    	-H "Content-Type:application/json" \
    	-X PUT \
    	-k $jiraurl/rest/api/2/issue/$line/restore
    sleep 0.1
    echo "Deleting issue $line"
    curl -u $username:$password \
    	-H "Content-Type:application/json" \
    	-X DELETE \
    	-k $jiraurl/rest/api/2/issue/$line
    sleep 0.1
    done
    
    
  2. 以下の SQL を使用して、アーカイブされたすべての課題のリストを取得します
    select ( p.pkey || '-' || ji.issuenum ) as "issue_key" from jiraissue ji
    join project p on p.id = ji.project
    where ji.archived = 'Y';
  3. クエリはさらにカスタマイズすることが可能です。たとえば、Project PROJ のアーカイブされた課題をクエリする場合には、次のようなクエリになります。

    select ( p.pkey || '-' || ji.issuenum ) as "issue_key" from jiraissue ji
    join project p on p.id = ji.project
    where ji.archived = 'Y' and p.pkey = 'PROJ';
  4. クエリの出力を、.sh ファイルを作成したのと同じディレクトリにある「issuelist.csv」というファイルに、1 行に 1 つの課題キーを含めて配置します。クエリが提供するのと同じ方法です。
    • PROJ-10 
      PROJ-16 
      PROJ-15 
      PROJ-14 
      PROJ-17
  5. スクリプトを実行して、Jira baseurl、ユーザー名、パスワードを入力します。

    $ sh delete-archived-issues.sh 
    What's your Jira URL? 
    Provide with the scheme, e.g. https://myjira.com https://10.125.91.129 
    What's your Jira username? USERNAME 
    What's your password? mypassword
  6. スクリプトは各行を繰り返し処理し、課題を復元してから削除します。アーカイブされた課題を直接削除することはできないため、最初に課題を復元する必要があります。

    $ sh delete-archived-issues.sh 
    What's your Jira URL? 
    Provide with the scheme, e.g. https://myjira.com https://10.125.91.129 
    What's your Jira username? USERNAME 
    What's your password? PASSWORD 
    Restoring issue PROJ-10 
    Deleting issue PROJ-10 
    Restoring issue PROJ-16 
    Deleting issue PROJ-16 
    Restoring issue PROJ-15 
    Deleting issue PROJ-15 
    Restoring issue PROJ-14
    Deleting issue PROJ-14

Jira サーバーに大きな負荷が掛かるのを防ぐために、1/10 秒のスリープがあります。また、間違った課題が誤って (例えば、SQL クエリを間違えるなどして) 削除された場合に備えて、最初に必ずバックアップを取得してください。


説明
製品Jira Software 

Last modified on Mar 14, 2023

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.