Открывать и закрывать trac-билеты одним коммитом - PullRequest
2 голосов
/ 11 июня 2010

Я ищу способ добавить ловушку post-commit или pre-commit к моей VCS, которая позволит мне одновременно создавать и закрывать trac-тикет.

Вариант использования:когда ошибка была найдена и исправлена, но один разработчик, который хочет убедиться, что руководитель проекта может видеть, что исправление было сделано, когда оно было сделано и какой этап исправления было сделано.

У нас есть контрольная точка по умолчанию в trac при создании заявки, поэтому отразить эту информацию тоже было бы неплохо.

Ответы [ 2 ]

2 голосов
/ 12 июля 2010

Я рекомендую расширить TracTicketChangesetsPlugin , чтобы сделать это.

Вы должны настроить способ обнаружения команды в сообщении фиксации (см. http://trac -hacks.org / browser/tracticketchangesetsplugin/trunk/ticketchangesets/commit_updater.py?rev=8114#L154), так как у вас еще не будет номера билета для ссылки.

См. http://trac -хаки.org / browser / tracticketchangesetsplugin / trunk / ticketchangesets / commit_updater.py? rev = 8114 # L215 , где он фактически выполняет синтаксический анализ.Вам придется вернуть новый токен для представления «нового билета».

Код, который фактически изменяет билеты, находится по адресу http://trac -hacks.org / browser / tracticketchangesetsplugin / trunk / ticketchangesets / commit_updater.py? rev = 8114 # L234 , поэтому вы бы создали НОВЫЙ тикет, а затем сразу же его закрыли.Чтобы создать новый тикет, вызовите Ticket (self.env) и сохраните его с помощью Ticket.insert () (см. http://trac.edgewall.org/browser/trunk/trac/ticket/model.py?rev=9692#L174).

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

0 голосов
/ 12 июля 2010

Создать хук после фиксации.Обратите внимание, как работают ловушки trac post-commit, и скопируйте эту функцию для управления этим действием (создание + закрытие заявки).Создание + закрытие - это два отдельных http-запроса, которые могут выполняться с помощью wget. Вы можете перехватить сообщение формы создания заявки, посмотреть, как работает существующая интеграция с trac, или взломать его другим способом.Повеселись.Хотелось бы, чтобы это было более конкретно, но это действительно зависит от того, что вы пытаетесь сделать.

...