コメントが多すぎる課題

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

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

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

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

  • 制限を超えるコメントは CSV ファイルに移動され、メインのコメント ストリームの外に保存されます。

  • こうしたコメントは、権限と作成者に基づいて個別の CSV ファイルにグループ化されます。たとえば、Charlie というユーザーがコメントをすべてのユーザーに表示して、他のユーザーは特定のロールに限定している場合は、それらの表示ルールを反映した 2 つのファイルが作成されます。

  • 各 CSV ファイルが元の課題に添付されることで、すべての過去のコメントに引き続きアクセスでき、同じ課題に関連付けられるようにします。

  • 制限を超えるコメントのみが変換されます。なお、最初に変換されるのは最も古いコメントです。

  • 制限を超えると、新しいコメントを追加できなくなります。

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

推奨事項

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


Delete extra comments

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

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

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

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

  • Issues with over 5,000 comments

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

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

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

  1. Get a list of comment IDs under an issue:  Get comments

  2. Delete a comment based on its ID: Delete comment

以下は、コメントを削除するために使用できる 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)

さらにヘルプが必要ですか?

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