参照された課題
このワークフローは、コメントまたは説明で Id によって別の課題がメンションされると、参照リンクを自動的に追加します。
名前 | @jetbrains/youtrack-workflow-referred-issues |
|---|---|
自動添付 | いいえ |
モジュール |
ユースケース
このワークフローは、関連する課題間のリンクの作成を自動化できます。
このワークフローは、が参照する名前の課題リンクタイプを参照します。これは、デフォルトで YouTrack で使用できないカスタム課題リンクタイプです。このワークフローを使用するには、この課題リンクタイプをシステムに追加する必要があります。この課題リンクタイプを作成するときに、次の値を入力します。
フィールド | 説明 |
|---|---|
名前 | リファレンス (またはその他の名前、これはワークフローに影響しません) |
外部名 | 参照先 |
リンク方向 | 未指定 |
一般的な手順については、課題リンクタイプの作成を参照してください。
モジュール
このモジュールのこの変更時ルールは、他の課題への参照について、課題の説明とコメントをチェックします。1 つ以上の参照が見つかった場合、課題はリンクへの参照として追加されます。
課題 ID が説明またはコメントに追加されたときに、課題に「参照する」リンクを追加する
const entities = require('@jetbrains/youtrack-scripting-api/entities');
const workflow = require('@jetbrains/youtrack-scripting-api/workflow');
exports.rule = entities.Issue.onChange({
title: 'Add "refers to" link to an issue when the issue ID is added to a description or comment',
guard: (ctx) => {
return !ctx.issue.comments.added.isEmpty() || ctx.issue.isChanged('description');
},
action: (ctx) => {
const issue = ctx.issue;
const startGroup = /(^|[',;.:"\\()?!<>#+|/\[\]\t\n\r ])/;
const endGroup = /([',;.:"\\()?!<>#+|/\[\]\t\n\r ]|$)/;
const issueIdGroup = '(' + issue.project.key.toLowerCase() + '-\\d+)';
const regexp = new RegExp(startGroup.source + issueIdGroup + endGroup.source, 'i');
let text = issue.comments.added.isEmpty() ? issue.description : issue.comments.added.first().text;
let match = regexp.exec(text);
const allMentionedIssues = {};
while (match) {
const matchedIssueId = match[2].trim();
const referringIssue = entities.Issue.findById(matchedIssueId);
if (referringIssue !== null) {
issue.links[ctx.RefersTo.outward].add(referringIssue);
allMentionedIssues[matchedIssueId] = true;
}
text = text.substring(match.index + match[0].length);
match = regexp.exec(text);
}
const allAddedIssues = Object.keys(allMentionedIssues);
if (allAddedIssues.length) {
workflow.message('Automatically added \'refers to\' {0} links.', allAddedIssues.join());
}
},
requirements: {
RefersTo: {
type: entities.IssueLinkPrototype,
name: 'Refers',
outward: 'refers to'
}
}
});
2026 年 9 月 10 日