gpt4 book ai didi

git - 任何 git 存储库和 versionone commitstream 之间的集成

转载 作者:太空狗 更新时间:2023-10-29 14:18:01 27 4
gpt4 key购买 nike

我们的工具,Deveo , 是一个代码托管和协作平台,支持 Git、Subversion 和 Mercurial。我们有一个客户案例,他们使用 VersionOne .在 VersionOne 中有一个 commitstream允许他们将 Git 存储库中的提交链接到 VersionOne 中的任务的功能。

目前 VersionOne commitstream 只支持 GitHub、Gitlab 和 Bitbucket。有没有办法将任意 Git 存储库集成到 VersionOne Commitstream?我最初的想法是设置一个代理,将请求从 VersionOne commitstream 中的链接转发到 Deveo 对应方。

最佳答案

如果给定的 VCS 或前端(如 GitHub、GitLab、Bitbucket、VSO)支持 Webhooks,那么将对它的支持添加到 CommitStream 的过程是相当标准的。 CommitStream 是用 Node 和 GetEventStore 编写的,是开源的,我们接受 pull 请求 :D

就 Deveo 而言,我在您的系统中看到了一些关于 Webhook 的文档:http://support.deveo.com/knowledgebase/articles/494691-using-deveo-webhooks

这包括一个示例负载。如果您所说的任意 Git 存储库是指与 Deveo 相关联的 Git 存储库,因此将导致那些 Deveo Webhooks 被触发,那么我认为乍一看这是可行的。

对于每个 VCS,我们都有一个简单的转换器函数,它接受入站负载并在将这些通用属性和原始消息保存到 EventStore 之前挑选出一些通用属性。

这里是 gitLabTranslator.js,例如:

https://github.com/openAgile/CommitStream.Web/blob/develop/src/app/api/translators/es6/gitLabTranslator.js

还有一些测试用例:

https://github.com/openAgile/CommitStream.Web/blob/develop/src/app/test/api/translators/gitLabTranslator.tests.js

GitHub、GitLab 和 Bitbucket 翻译器彼此非常相似。

Visual Studio Online for Git 翻译器有点不同:https://github.com/openAgile/CommitStream.Web/blob/develop/src/app/api/translators/es6/vsoGitTranslator.js

但是,每个模块都有相同的基本“接口(interface)”。我不知道 Deveo Webhook 消息的格式是否因一个 VCS 而异,但如果我认为没有,那么它看起来像:

const deveoTranslator = {
family: 'Deveo', // Provides a unique VCS "family" name for this translator.
canTranslate(request) {
// Returns true/false by inspecting the inbound request's headers / body properties.
},
translatePush(pushEvent, instanceId, digestId, inboxId) {
// Returns an array of translated commit messages that conform to the "standard" set of common properties.
},
getProperties(event) {
// Returns an object in the form of { repo : 'text name of the repositoryt', repoHref: 'http://link.to/theRepo', branchHref: 'http://link.to/theRepo/branchName' }
}
}

如果您想就此讨论更多,我很乐意。此外,您可以在 https://gitter.im/openAgile/CommitStream.Web 进入我们的 CommitStream Gitter.im channel 。

关于git - 任何 git 存储库和 versionone commitstream 之间的集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35775835/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com