コメントが多すぎる課題
このインサイトでは、コメント数の上限を超えた課題があるかどうかをチェックします。
なぜ制限があるのですか?
Jira Cloud では、課題ごとのコメントの数が制限されています。無制限のエンティティを追加すると、データ形状が異常に大きく複雑になることが多く、その結果、信頼性とパフォーマンスの問題が発生してしまうからです。
移行はこの制限から除外されているため、ブロックされません。ただし、移行後は、次のような方法で制限を超える問題を自動的に整理します。
制限を超えるコメントは CSV ファイルに移動され、メインのコメント ストリームの外に保存されます。
こうしたコメントは、権限と作成者に基づいて個別の CSV ファイルにグループ化されます。たとえば、Charlie というユーザーがコメントをすべてのユーザーに表示して、他のユーザーは特定のロールに限定している場合は、それらの表示ルールを反映した 2 つのファイルが作成されます。
各 CSV ファイルが元の課題に添付されることで、すべての過去のコメントに引き続きアクセスでき、同じ課題に関連付けられるようにします。
制限を超えるコメントのみが変換されます。なお、最初に変換されるのは最も古いコメントです。
制限を超えると、新しいコメントを追加できなくなります。
このプロセスでは、いかなるコメントも削除されません。課題を読みやすくしてパフォーマンスを維持できるよう、コメントが添付された CSV ファイルに移動するだけです。
推奨事項
引き続きコメントを追加するアクティブな課題については、以下のアイデアを使用してその数を減らすことができます。ただし、お客様が移行し、新しい課題でやり直した後に、当社が余分なコメントを削除する方が簡単である可能性があります。
Delete extra comments
Jira にはコメントを一括で削除する簡単な方法はありません。下記のようないくつかのアイデアの中から、自社にとって適した方法を確認してください。
SQL クエリで対象の課題を特定する
ダッシュボードからこの推奨事項を確認する際には、提供された SQL クエリをコピーしてデータベースで実行します。
SQL クエリによって次の情報が返されます。
Issues with over 5,000 comments
課題ごとのコメントの数
API で余分なコメントを削除する
次のページは、課題コメントの削除に使用される API にリンクしています。
Get a list of comment IDs under an issue: Get comments
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)この内容はお役に立ちましたか?