サードパーティ アクションを含む Automation for Jira ルールの失敗
プラットフォームについて: Data Center のみ。 - This article only applies to Atlassian apps on the Data Center プラットフォーム。
この KB は Data Center バージョンの製品用に作成されています。Data Center 固有ではない機能の Data Center KB は、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。 Server* 製品のサポートは 2024 年 2 月 15 日に終了しました。Server 製品を実行している場合は、 アトラシアン Server サポート終了 のお知らせにアクセスして、移行オプションを確認してください。
*Fisheye および Crucible は除く
要約
Automation for Jira 9.1.1 のアップデートを使用し、ScriptRunner スクリプトなどのサードパーティ アクションを組み込んだ自動化ルールに障害が発生しています。これらの障害は、以下に示すように、自動化監査ログに詳細なしで記録されます。

診断
この問題は、Automation for Jira を 9.1.1 にアップグレードした後に発生した
ロギング レベルを [デバッグ] に設定すると、com.codebarrel.automation と com.codebarrel.jira.plugin.automation の 2 つのデバッグ パッケージ(Atlassian Jira のログ ファイル内) で、「検証に合格しなかったためスキップされました」というメッセージが表示された
atlassian-jira.log
2024-05-31 08:30:00,671+0000 http-nio-8080-exec-25 url: /jira/rest/cb-automation/latest/project/10000/rule/1/execute/SCRUM-23; user: admin DEBUG xxx 510x1768x1 xxxx /rest/cb-automation/latest/project/10000/rule/1/execute/SCRUM-23 [c.c.j.p.a.service.execution.JiraAutomationExecutionService] Sync execution of Rule(id=1, name='Sample Scriptrunner rule') for AutomationEvent with traceId='d105dd50-1017-4ca5-900c-8576261cba33' has been skipped because it didn't pass the validation.ルール アクターにグローバル Jira 管理者権限がない
原因
ScriptRunner の「スクリプトを実行」アクションおよび他のサードパーティ プラグイン アクションには、Jira 管理者権限が必要です。しかし、以前のバージョンでは、この要件は十分に検証されておらず、Jira 9.1.1 のアップデート後に初めて実装されました。
この動作に関連するいくつかのバグ/改善リクエストがあります。
自動化監査ログの失敗メッセージに失敗の理由に関する詳細が含まれていない: JIRAAUTOSERVER-1029
アクター ユーザーの権限が不十分な状況でルールを公開しようとすると、検証が行われない: JIRAAUTOSERVER-1030
サードパーティ プラグインによって提供されるアクションに必要な権限に関するドキュメンテーションの改善: JRASERVER-77784
ルール所有者にルールの失敗を通知するメールが送信されない: JIRAAUTOSERVER-1100
ソリューション
この課題の影響を受けるすべての自動化ルールを修正するには、次の手順に従って、ルール アクターにグローバル Jira 管理者権限を付与する必要があります。
次の SQL クエリを使用して、Jira データベースを介してサードパーティ アドオンからのアクションを使用しているすべての自動化ルールを特定します (結果にはルール名と ID が含まれます)。
SQL クエリ Postgres:
SELECT
r."ID" AS "Rule Id",
r."NAME" AS "Rule name",
t."TYPE" AS "Rule trigger",
STRING_AGG(DISTINCT p.pkey, ', ') AS "Project Keys",
au1.lower_user_name AS "Rule author",
au2.lower_user_name AS "Rule actor"
FROM "AO_589059_RULE_CONFIG" r
LEFT JOIN "AO_589059_RULE_CFG_COMPONENT" t ON t."RULE_CONFIG_ID" = r."ID" AND t."COMPONENT" = 'ACTION'
LEFT JOIN "AO_589059_RULE_CFG_PROJ_ASSOC" rp ON rp."RULE_CONFIG_ID" = r."ID"
LEFT JOIN project p ON CAST(p.id AS TEXT) = rp."PROJECT_ID"
LEFT JOIN app_user au1 ON au1.user_key = r."AUTHOR_KEY"
LEFT JOIN app_user au2 ON au2.user_key = r."ACTOR_KEY"
WHERE r."STATE" = 'ENABLED'
AND t."TYPE" not in ('jira.issue.assign'
'jira.issue.clone',
'jira.issue.comment',
'jira.issue.create',
'jira.issue.create.subtasks',
'jira.issue.delete.comment',
'jira.issue.delete',
'jira.issue.delete.link',
'jira.issue.edit',
'jira.issue.link',
'jira.worklog.add',
'jira.issue.add.watcher',
'jira.issue.transition',
'jira.issue.outgoing.email',
'hipchat.notification',
'msteams.notification',
'slack.notification',
'stride.notification',
'twilio.notification.sms',
'jira.issue.outgoing.webhook',
'jira.sd.add.customer',
'jira.sd.create.request',
'jira.version.create',
'jira.version.release',
'jira.version.unrelease',
'jira.create.variable',
'jira.issue.deleteattachment',
'codebarrel.action.log',
'jira.lookup.issues',
'jira.publish.event',
'jira.issue.refresh.issue',
'jira.set.entity.property',
'jira.issue.archive')
GROUP BY
r."ID", r."NAME", t."TYPE", au1.lower_user_name, au2.lower_user_name
ORDER BY
r."NAME" ASC;SQL クエリ Oracle:
SELECT
r.ID AS "Rule Id",
r.NAME AS "Rule name",
t.TYPE AS "Rule trigger",
LISTAGG(DISTINCT p.pkey, ', ') WITHIN GROUP (ORDER BY p.pkey) AS "Project Keys",
au1.lower_user_name AS "Rule author",
au2.lower_user_name AS "Rule actor"
FROM AO_589059_RULE_CONFIG r
LEFT JOIN AO_589059_RULE_CFG_COMPONENT t ON t.RULE_CONFIG_ID = r.ID AND t.COMPONENT = 'ACTION'
LEFT JOIN AO_589059_RULE_CFG_PROJ_ASSOC rp ON rp.RULE_CONFIG_ID = r.ID
LEFT JOIN project p ON p.id = rp.PROJECT_ID
LEFT JOIN app_user au1 ON au1.user_key = r.AUTHOR_KEY
LEFT JOIN app_user au2 ON au2.user_key = r.ACTOR_KEY
WHERE r.STATE = 'ENABLED'
AND t.TYPE not in ('jira.issue.assign','jira.issue.clone','jira.issue.comment','jira.issue.create','jira.issue.create.subtasks','jira.issue.delete.comment','jira.issue.delete','jira.issue.delete.link','jira.issue.edit','jira.issue.link','jira.worklog.add','jira.issue.add.watcher','jira.issue.transition','jira.issue.outgoing.email','hipchat.notification','msteams.notification','slack.notification','stride.notification','twilio.notification.sms','jira.issue.outgoing.webhook','jira.sd.add.customer','jira.sd.create.request','jira.version.create','jira.version.release','jira.version.unrelease','jira.create.variable','jira.issue.deleteattachment','codebarrel.action.log','jira.lookup.issues','jira.publish.event','jira.issue.refresh.issue','jira.set.entity.property','jira.issue.archive')
GROUP BY
r.ID, r.NAME, t.TYPE, au1.lower_user_name, au2.lower_user_name
ORDER BY
r.NAME ASC;各自動化ルールの設定ページを開いて、ルール アクターを確認してください。
自動化ルールを修正して、ルール アクターにグローバル Jira 管理者権限が付与されていることを確認するには、2 つのオプションがあります。
オプション 1:
ルール アクターをそのままにします。
次のページを使用して、このユーザーを適切なグループに追加することでグローバル管理者権限を付与します。
⚙ > [ユーザー管理] > [ユーザー]
オプション 2:
ルール アクターを変更して、すでにグローバル管理者権限が付与されている別のユーザーを指定します。
ルール アクターを変更するには、ルール設定を変更するユーザーに、"A4J グローバル スコープのユーザーに偽装する" 権限が付与されている必要があります。
プロジェクト権限スキーム内 (ルールのスコープにプロジェクトが 1 つだけ含まれている場合)
グローバル Jira レベル (ルールのスコープに少なくとも 2 つのプロジェクトが含まれている場合)
この内容はお役に立ちましたか?