コメントが多すぎる課題

お困りですか?

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

コミュニティに質問

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

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

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

移行はこの制限から除外されているため、ブロックされません。ただし、移行後は課題を自動的に修正し、制限を超えたコメントを次のように削除します。

  1. 課題から余分なコメントを削除します。

  2. 権限とコメント作成者に基づいて、それらを異なる CSV ファイルにグループ化します。たとえば、ユーザー Charlie が複数のコメントを全ユーザーに表示し、いくつかのコメントを特定のロールに制限する場合、ケースごとの Charlie のコメントを含む 2 つのファイルが作成されます。

  3. 各ファイルをアーカイブとし元の課題に添付します。

  4. 制限を超える新しいコメントを追加することはできません。

推奨事項

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



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

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 年 6 月 17 日

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

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