我正在为Trac编写一个插件。每次插件从Git post-receive hook接收一些数据时,我想在时间线上添加一个事件。
查看the timeline API,您似乎只能添加新的事件来源。因此,您负责检索和显示数据。我希望将我的活动保存到现有的来源。
我应该在哪里查看Trac API来保存事件?
ps:我的计划是依赖远程存储库和远程Web界面来代码,如Github。
pss:时间线必须显示来自主项目git存储库及其克隆的提交。我不想托管与项目有关的每个存储库的副本。
答案 0 :(得分:2)
时间轴API的级别高于您需要的级别。 ChangesetModule中有一个通用的VCS实现,它将变更集(事件)检索本身委托给特定于VCS的Repository
。因此,您应该实施the versioncontrol API。
API是为“拉模型”设计的,其中Trac在构造时间轴时查询VCS。如果您真的更喜欢“推模型”(为什么?),您可以尝试以the CacheRepository implementation为基础,将事件注入缓存,或者只是从头开始编写事件存储库。请注意,这违背了现有设计的要求,很可能是不必要的额外努力。
我建议你改用普通的拉模型,它会更简单,更清洁。您可以使用the Subversion implementation或the Mercurial implementation作为参考,并可能使用GitPython与git
对话。