fix(web): связи из зеркала — только между ключами вида AURORA-1234 (I-1, #17)
Ключ из issue_link попадал в разметку карточки без проверки: строка зеркала с разметкой в target_key исполнялась на странице с токеном. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
adab949783
commit
c7d1aaae0a
@ -509,7 +509,7 @@ function fromJson(text, fileName) {
|
||||
|
||||
// снимок хаба (GET /board) → модель доски. Эпики («Фича»/Epic) — имена дорожек, не карточки; соседи по связям — обычные карточки;
|
||||
// вид работы — первая метка kind-*, иначе тип задачи; срок — плановая дата окончания, иначе срок исполнения; связи — только известных
|
||||
// типов (LINK_TYPES) и не с эпиками; ключи из связей, которых нет в зеркале, — заглушки на дорожке «Нет в зеркале»
|
||||
// типов (LINK_TYPES), между ключами вида AURORA-1234 (ключ идёт в разметку карточки) и не с эпиками; ключи из связей, которых нет в зеркале, — заглушки на дорожке «Нет в зеркале»
|
||||
function fromHub(snap) {
|
||||
const isEpic = it => /^(Фича|Epic|Эпик)$/i.test(it.issue_type || "");
|
||||
const epicNames = { ...EPICS }, epics = new Set();
|
||||
@ -525,7 +525,7 @@ function fromHub(snap) {
|
||||
});
|
||||
snap.links.forEach(l => {
|
||||
const type = LINK_TYPES[l.link_type];
|
||||
if (type && !epics.has(l.source) && !epics.has(l.target)) addLink(links, seen, l.source, l.target, type);
|
||||
if (type && KEY_RE.test(l.source) && KEY_RE.test(l.target) && !epics.has(l.source) && !epics.has(l.target)) addLink(links, seen, l.source, l.target, type);
|
||||
});
|
||||
const missing = addStubs(nodes, links, NOT_IN_HUB);
|
||||
const problems = snap.last_sync ? [] : ["в хабе ещё не было полного обновления из Jira — нажмите «Обновить из Jira»"];
|
||||
|
||||
@ -393,3 +393,4 @@ def test_page_reads_hub_and_has_no_embedded_export():
|
||||
assert '"jira-hub-token"' in html and 'hubFetch("/board")' in html
|
||||
assert "Нет в зеркале" in html
|
||||
assert 'author: "viewer"' in html and "/batches/" in html
|
||||
assert "KEY_RE.test(l.source) && KEY_RE.test(l.target)" in html # I-1: ключи связей из зеркала идут в разметку карточек
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user