Как автоматически создать и назначить заявку в trac ответственному разработчику, если сборка не удалась - PullRequest
0 голосов
/ 15 марта 2012

Я ищу возможность автоматически создать новый тикет в trac в случае сбоя сборки. Проблема в том, что билет должен быть назначен человеку, который сломал сборку. Я попытался TicketToTracScript , чтобы создать билет, но я не знаю, как получить ответственного за этот билет.

1 Ответ

0 голосов
/ 22 марта 2012

Что вы подразумеваете под "ответственным лицом за билет"?

Если вы имеете в виду учетную запись, ответственную за подачу заявки, то я рекомендую создать отдельную учетную запись пользователя Trac для вашей системы автоматической сборки. Эта учетная запись будет использоваться только сценариями, которые автоматически подавать заявки. Обычно это гораздо более простой путь, чем повторное использование чужой учетной записи разработчика.

Если вы имеете в виду человека, которому должен быть назначен билет, то я боюсь, что нет простого ответа. Определение того, кто несет ответственность за нарушение сборки, обычно очень сложно автоматизировать, основываясь исключительно на результатах сборки.

Если ваши выходные данные сборки дают вам номер строки для нарушения, вызвавшего сбой, вы можете использовать такую ​​функцию, как svn blame (если ваша система контроля версий имеет нечто подобное), чтобы увидеть, кто был последний человек, чтобы изменить эту строку. Однако, на самом деле это может быть не тот, кто сломал сборку, но это действительно дает вам начало. Я видел некоторые системы, в которых перечислены все, кто изменил поврежденный файл со времени последней сборки заявки, в поле «CC», и был указан последний человек, изменивший эту строку в качестве владельца. По крайней мере, это приведет к расследованию проблемы, и билет может быть переназначен, если это необходимо.

Единственный верный способ узнать, кто нарушил сборку, - это попытаться построить промежуточные ревизии, пока не обнаружите коммит, вызвавший проблему. Такие инструменты, как git bisect, полезны для этого, если ваша система контроля версий предоставляет что-то аналогичное. Это, конечно, полностью зависит от времени, необходимого для полной сборки. Если у вас большая кодовая база, на сборку которой уходит 45 минут, то это, вероятно, займет слишком много времени, чтобы быть практичным. Если ваш проект, скажем, разбит на отдельные компоненты, которые могут быть собраны по отдельности, то вы можете протестировать и собрать только тот компонент, который не удалось, и быстро идентифицировать нарушающий коммит.

...