コメントが多すぎる課題
このインサイトでは、コメント数の上限を超えた課題があるかどうかをチェックします。
なぜ制限があるのですか?
Jira Cloud では、課題ごとのコメントの数が制限されています。無制限のエンティティを追加すると、データ形状が異常に大きく複雑になることが多く、その結果、信頼性とパフォーマンスの問題が発生してしまうからです。
移行はこの制限から除外されているため、ブロックされません。ただし、移行後は課題を自動的に修正し、制限を超えたコメントを次のように削除します。
課題から余分なコメントを削除します。
権限とコメント作成者に基づいて、それらを異なる CSV ファイルにグループ化します。たとえば、ユーザー Charlie が複数のコメントを全ユーザーに表示し、いくつかのコメントを特定のロールに制限する場合、ケースごとの Charlie のコメントを含む 2 つのファイルが作成されます。
各ファイルをアーカイブとし元の課題に添付します。
制限を超える新しいコメントを追加することはできません。
推奨事項
引き続きコメントを追加するアクティブな課題については、以下のアイデアを使用してその数を減らすことができます。ただし、お客様が移行し、新しい課題でやり直した後に、当社が余分なコメントを削除する方が簡単である可能性があります。
余分なコメントを削除する 推奨
Jira にはコメントを一括で削除する簡単な方法はありません。下記のようないくつかのアイデアの中から、自社にとって適した方法を確認してください。
SQL クエリで対象の課題を特定する
ダッシュボードからこの推奨事項を確認する際には、提供された SQL クエリをコピーしてデータベースで実行します。
SQL クエリによって次の情報が返されます。
コメントが 5,000 件を超える課題
課題ごとのコメントの数
API で余分なコメントを削除する
次のページは、課題コメントの削除に使用される API にリンクしています。
以下は、コメントを削除するために使用できる 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)