Integração entre qualquer repositório git e o 'commitstream' versionone

nossa ferramenta, Deveo , é uma plataforma de hospedagem de código e colaboração que suporta Git, Subversion e Mercurial. Temos um caso de cliente, onde eles utilizamVersionOne . No VersionOne existe uma funcionalidade commitstream que lhes permite ligar commits em repositórios Git a tarefas em VersionOne.

actualmente o 'commitstream' VersionOne só suporta o GitHub, o Gitlab e o Bitbucket. Existe alguma forma de integrar repositórios de Git arbitrários ao VersionOne Commitstream? Minha idéia inicial é configurar um proxy que encaminharia os pedidos dos links no commitstream VersionOne para os homólogos Deveo.

Author: kontulai, 2016-03-03

1 answers

Se um dado VCS ou front-end (como GitHub, GitLab, Bitbucket, VSO) suporta Webhooks, então o processo para adicionar suporte para ele para o CommitStream é bastante padrão. O CommitStream é escrito com Node e GetEventStore e é open source e estamos a aceitar os pedidos de pull: D

No caso do Deveo, vejo alguma documentação sobre os livros no seu sistema em: http://support.deveo.com/knowledgebase/articles/494691-using-deveo-webhooks

Isto inclui uma amostra carga. Se por repositórios de Git arbitrários, você quer dizer repositórios de Git que estão associados com Deveo, e, assim, irá resultar em que esses Webhooks Deveo sejam acionados, então eu acho que isso é viável à primeira vista.

Para cada VCS, temos uma função de tradutor simples que aceita a carga de entrada e escolhe algumas propriedades comuns antes de salvar essas propriedades comuns e a mensagem original para a EventStore.

Aqui está o transferidor de gitlab.JS, para exemplo:

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

E, alguns casos de teste para isso:

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

Os tradutores do GitHub, do GitLab e do Bitbucket são bastante semelhantes uns aos outros. O estúdio Visual Online para o tradutor de Git é um pouco diferente.: https://github.com/openAgile/CommitStream.Web/blob/develop/src/app/api/translators/es6/vsoGitTranslator.js

No entanto, cada módulo tem a mesma "interface" básica. Eu não sei se o formato das mensagens do Webhook Deveo difere de um VCS para outro, mas se eu assumir que não, então pareceria como:

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' }        
  }
}
Se quiser conversar mais sobre isto, terei todo o gosto. Além disso, podes entrar no nosso Gitter.im canal para o 'CommitStream' em https://gitter.im/openAgile/CommitStream.Web
 1
Author: JoshGough, 2016-03-10 22:03:26