Кросспроектное связывание коммитов с задачами в Редмайне

Багтрекер Redmine не позволяет связать задачу с фиксацией изменений в системе контроля версий^W^W^W^W^W^W коммитом, относящимся к части хранилища, не связанной с проектом, куда входит задача — ни автоматически, указывая номер задачи в комментарии к коммиту, ни вручную, на странице коммита. Однако при наличии связи в базе данных Редмайн всё же отобразит ссылки на страницах и задач, и коммитов.

Связи хранятся в таблице changesets_issue

changeset_id issue_id
24645 2224

Сопоставить номер связи с номером ревизии можно через таблицу changesets

id repository_id revision committer
24645 37 8801 as

Таблицы в MySQL Workbench

Для создания связи достаточно внести запись в таблицу changesets_issue, подставив в поле changeset_id правильное значение changesets.id — ссылки появятся при ближайшем посещении страниц. Привязать редмайновую задачу с указанным номером ко всем коммитам, в комментариях к которым есть этот номер, можно запросом


SET @issue_id = 1234;
    
INSERT IGNORE INTO changesets_issues
SELECT 
    id, @issue_id
FROM
    changesets
WHERE
    comments REGEXP CONCAT('.*#', @issue_id, '[^0-9].*');