コメントが多すぎる課題

お困りですか?

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

コミュニティに質問

このインサイトでは、コメント数の上限を超えた課題があるかどうかをチェックします。

なぜ制限があるのですか?

Jira Cloud では、課題ごとのコメントの数が制限されています。無制限のエンティティを追加すると、データ形状が異常に大きく複雑になることが多く、その結果、信頼性とパフォーマンスの問題が発生してしまうからです。

移行はこの制限から除外されているため、ブロックされません。ただし、移行後は、次のような方法で制限を超える問題を自動的に整理します。

  • 制限を超えるコメントは CSV ファイルに移動され、メインのコメント ストリームの外に保存されます。
  • こうしたコメントは、権限と作成者に基づいて個別の CSV ファイルにグループ化されます。たとえば、Charlie というユーザーがコメントをすべてのユーザーに表示して、他のユーザーは特定のロールに限定している場合は、それらの表示ルールを反映した 2 つのファイルが作成されます。
  • 各 CSV ファイルが元の課題に添付されることで、すべての過去のコメントに引き続きアクセスでき、同じ課題に関連付けられるようにします。
  • 制限を超えるコメントのみが変換されます。なお、最初に変換されるのは最も古いコメントです。
  • 制限を超えると、新しいコメントを追加できなくなります。

このプロセスでは、いかなるコメントも削除されません。課題を読みやすくしてパフォーマンスを維持できるよう、コメントが添付された CSV ファイルに移動するだけです。

推奨事項

引き続きコメントを追加するアクティブな課題については、以下のアイデアを使用してその数を減らすことができます。ただし、お客様が移行し、新しい課題でやり直した後に、当社が余分なコメントを削除する方が簡単である可能性があります。



余分なコメントを削除する 推奨

Jira にはコメントを一括で削除する簡単な方法はありません。下記のようないくつかのアイデアの中から、自社にとって適した方法を確認してください。

SQL クエリで対象の課題を特定する

ダッシュボードからこの推奨事項を確認する際には、提供された SQL クエリをコピーしてデータベースで実行します。

SQL クエリによって次の情報が返されます。

  • コメントが 5,000 件を超える課題

  • 課題ごとのコメントの数

API で余分なコメントを削除する

次のページは、課題コメントの削除に使用される API にリンクしています。

  1. 課題のコメント ID のリストを取得する: GET (コメントの取得)

  2. コメントをその ID に基づいて削除する: DEL (コメントの削除)

以下は、コメントを削除するために使用できる Python スクリプトの例です。

jira と requests を忘れずにインストールしてください。

コメントを削除する
from jira import JIRA
from datetime import datetime
import requests
from requests.auth import HTTPBasicAuth

def delete_old_comments(email, token, domain, issue_key, date_str):
    # Connect to Jira
    options = {'server': f'https://{domain}.atlassian.net'}
    jira = JIRA(options, basic_auth=(email, token))

    try:
        # Parse the input date
        cutoff_date = datetime.strptime(date_str, '%Y-%m-%d')

        # Get the issue
        issue = jira.issue(issue_key)
        
        # Retrieve all comments
        comments = jira.comments(issue)

        # Iterate over comments and delete those older than the cutoff date
        for comment in comments:
            comment_created = datetime.strptime(comment.created.split('T')[0], '%Y-%m-%d')
            if comment_created < cutoff_date:
                # Delete the comment using REST API
                comment_url = f"https://{domain}.atlassian.net/rest/api/3/issue/{issue_key}/comment/{comment.id}"
                response = requests.delete(
                    comment_url,
                    auth=HTTPBasicAuth(email, token)
                )
                
                if response.status_code == 204:
                    print(f"Deleted comment {comment.id} created on {comment.created}: {comment.body[:50]}...")
                else:
                    print(f"Failed to delete comment {comment.id}. Status code: {response.status_code}")

    except Exception as e:
        print(f"An error occurred: {e}")

if __name__ == '__main__':
    #Define your inputs here
    email = '' #your email
    api_token = '' #your token
    domain = '' #your Jira domain, only the one before %.atlassian.net
    issue_key = 'KEY-1234' #the issue key
    date_str = '2025-01-09' #Format: YYYY-MM-DD

    # Call the function with the specified inputs
    delete_old_comments(email, api_token, domain, issue_key, date_str)





最終更新日 2025 年 11 月 17 日

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

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