Как добавить событие на временную шкалу событий Trac

Пишу плагин для Trac. Я хотел бы добавить событие на временную шкалу каждый раз, когда подключаемый модуль получает некоторые данные из хука Git post-receive.

Глядя на API временной шкалы, кажется, что вы можете добавить только новый источник событий. Таким образом, вы несете ответственность за получение и отображение данных. Я бы предпочел сохранить свое событие в существующем источнике.

Где мне искать в Trac API, чтобы сохранять события?

PS: мой план состоит в том, чтобы полагаться на удаленный репозиторий и удаленный веб-интерфейс для кода, такого как Github.

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


person Dinoboff    schedule 08.03.2009    source источник


Ответы (1)


API временной шкалы — это уровень выше, чем то, что вам нужно сделать. Общая реализация VCS находится в ChangesetModule. , который делегирует извлечение самого набора изменений (события) специфичному для VCS Repository. Поэтому вместо этого вам следует реализовать API управления версиями.

API предназначен для «модели вытягивания», в которой Trac запрашивает систему контроля версий при построении временной шкалы. Если вы действительно предпочитаете «выталкивающую модель» (почему?), вы можете попробовать отработать реализация CacheRepository в качестве основы, внедрение ваших событий в кеш или просто написание репозитория для хранения событий с нуля. Имейте в виду, что это идет вразрез с существующим дизайном и, скорее всего, потребует ненужных дополнительных усилий.

Я предлагаю вам вместо этого использовать обычную модель вытягивания, это будет проще и чище. Вы можете использовать реализацию Subversion или реализация Mercurial в качестве эталона и, вероятно, используйте GitPython, чтобы поговорить с git.

person Gunnlaugur Briem    schedule 11.03.2009
comment
Я собираюсь использовать модель push, прежде чем захочу использовать ее для отслеживания активности проекта и всего его клона. - person Dinoboff; 12.03.2009