Apicurio-studio: Suporte a vários serviços de hospedagem de código

Criado em 3 mai. 2017  ·  13Comentários  ·  Fonte: Apicurio/apicurio-studio

Suporte a vários repositórios públicos e privados (Github ou Bitbucket). Seria bom se o usuário pudesse se conectar do webapp a serviços externos (Github, Bitbucket ...), e por que não suportar um recurso de espaços de trabalho em cima de "APIs". Isso dá uma visão clara ao trabalhar em APIs pertencentes a diferentes projetos.

Comentários muito úteis

Agora temos suporte para GitLab e Bitbucket. Fechando esta questão. :)

Todos 13 comentários

Sim! Em última análise, o projeto terá um back-end adequado que nos permitirá oferecer suporte a vários repositórios simultaneamente. Provavelmente não está claro no roteiro que essa é uma meta - vou consertar isso quando tiver uma chance. :)

Também parabéns pela edição # 100! ;)

Estou interessado em adicionar suporte para Bitbucket e Bitbucket Server - mas depois de olhar o código e o fluxo de trabalho da IU, não parece haver um ponto de entrada claro para as credenciais do usuário. A partir de agora você precisa fazer o login no Apicurio Studio com suas credenciais do Github, que eu poderia apenas adicionar a opção de Bitbucket OU Github, mas para ter ambos seria necessário algum tipo de página de configurações do usuário.

Por outro lado, eu gostaria de adicionar suporte a LDAP para login e talvez ter configurações globais para o servidor bitbucket. Não importa qual seja a solução - acho que preciso de orientação de experiência do usuário primeiro. Pensamentos?

Olá @danmikita - contribuições para o bitbucket seriam fantásticas. No entanto, acho que algumas mudanças essenciais são necessárias antes que isso aconteça. O resultado é que estamos nos movendo em uma direção que é muito compatível com o que você deseja fazer (login e armazenamento separados), mas ainda não chegamos lá. Alguns antecedentes:

Etapa 1: começamos com uma abordagem sem servidor, sem código de back-end e apenas uma IU que usava diretamente as APIs do GitHub para login e para armazenar / recuperar conteúdo.
Passo 2: O objetivo sempre foi ter um back-end de servidor, que está quase completo. No entanto, o back-end ainda está acoplado ao GitHub, tanto para login quanto para armazenamento / recuperação de conteúdo. Mas pelo menos agora a maioria das entidades e como acessá-las / manipulá-las não são mais específicas do GitHub na camada de IU.
Etapa 3: romper o acoplamento entre o back-end do servidor e o GitHub e desacoplar a autenticação do usuário do armazenamento. A ideia aqui é que a autenticação do usuário seja plugável para que possamos oferecer suporte a uma ampla gama de opções (GitHub, Auth0, KeyCloak, etc). Além disso, forneceremos uma maneira para que os usuários vinculem sua conta do Apicurio Studio à conta do GitHub para que possamos operar em seu nome. Dessa forma, eles podem fazer o login com, por exemplo, LDAP, mas ainda armazenar dados no GH. Nesse ponto, também podemos oferecer suporte a BitBucket e outros sistemas de controle de origem.

Portanto, devo lançar uma versão que execute a Etapa 2 esta semana. Depois disso, podemos começar a trabalhar para chegar à Etapa 3.

Eu priorizaria o suporte a OpenAPI 3 acima do trabalho da Etapa 3 descrito acima. Mas agora que sei que não temos apenas uma demanda da comunidade, mas também uma oferta para ajudar, vou reverter isso. :)

@EricWittmann Isso parece ótimo! Tenho uma equipe inteira aqui que está super empolgada com essa ferramenta e ansiosa para contribuir em um futuro próximo. Você poderia me enviar um ping aqui quando a base de código estiver pronta para que possamos entrar em ação?

Certamente! Vou deixar uma nota aqui quando chegar a hora.

Para sua informação, acabei de lançar o 0.1.6 há cerca de 10 minutos ... deixe-me saber se você encontrar algum problema. Esta é a primeira versão que usa o back-end do servidor em vez de ir direto para o GH. :)

Ei @danmikita - só queria deixar uma atualização rápida aqui. Ainda estou trabalhando em um monte de mudanças no apicurio para torná-lo agradável e fácil de contribuir com o suporte do bitbucket. Existem algumas coisas a serem observadas. :)

Primeiro, decidi começar a usar o Keycloak para autenticação e vinculação de contas (ambos relevantes para esta discussão). Se você não estiver familiarizado com ele, dê uma olhada aqui:

http://www.keycloak.org/

KC resolve vários problemas e tem todos os tipos de recursos excelentes para autenticação (vários logins sociais, registro de usuário, integração ldap, etc etc). Além disso, ele suporta vinculação de contas, que é o que usarei para permitir que um usuário do Apicurio armazene suas APIs em uma variedade de lugares (por exemplo, GitHub, GitLab e Bitbucket). O Keycloak tratará da vinculação da conta e disponibilizará tokens de acesso OAuth. Apicurio implementará o código para invocar as respectivas APIs do provedor (github, gitlab, etc) para armazenar e recuperar dados.

Keycloak já vem com suporte para GitHub, mas ainda não tem GitLab ou Bitbucket. Existe um conector OIDC genérico que pode funcionar, mas ainda não tentei.

De qualquer forma, uma vez que tudo isso esteja feito, se você gostaria de contribuir com suporte para o Bitbucket, seria feito em dois lugares:

1) Implementar um "provedor de identidade" Bitbucket e contribuir com o Keycloak
2) Implementar um "conector" Bitbucket (ou o que quer que eu acabe chamando) no Apicurio

Se você quisesse, já poderia começar em (1) agora. Ainda não comecei a pesquisar exatamente como um novo provedor de identidade pode ser contribuído no Keycloak, mas conheço os caras que trabalham nesse projeto, então tenho certeza de que não é muito difícil. :)

Espero que o atraso não tenha sido muito longo (eu estava de férias por uma semana). Devo mandar fazer o que estou fazendo em Apicurio em mais um ou dois dias, a não ser por complicações inesperadas. :)

@EricWittmann Obrigado por um artigo tão detalhado! Vou dar uma olhada no repositório Keycloak e me familiarizar com a base de código e tentar fazer um PR lá fora em alguns dias.

Uma vez por mês, nosso grupo tem algo que chamamos de "Dias da Inovação", onde todos nós trabalhamos em projetos "favoritos". Tenho um grupo de cerca de 5 desenvolvedores que desejam contribuir com este projeto. Nossa próxima sessão é 28 e 29 de agosto. Esperançosamente, a base de código estará pronta para nós até então!

Muito obrigado por este trabalho. Isto será maravilhoso!

Obrigado pela resposta, @danmikita . Boas notícias: acontece que os caras do Keycloak já adicionaram suporte para autenticação e vinculação de contas para GitLab e Bitbucket. Agora, a única coisa que precisamos fazer para Apicurio + Bitbucket é:

  1. implementar um Apicurio "SourceConnector" que usa a API Bitbucket (por exemplo, para armazenar conteúdo API)
  2. alterações relativamente pequenas da interface do usuário na página Configurações> Contas (isso é novo) e na página Criar API

Deve ser moleza. :)

@EricWittmann Essa é uma ótima notícia! Ainda vou precisar verificar a implementação do Bitbucket para ter certeza de que suporta a versão Enterprise do Bitbucket no local. (Bitbucket Server). BTW - você tem alguma outra tarefa de rebatedor rápido como esta para nós? Acho que não consigo manter 5 desenvolvedores ocupados por 2 dias com esse único recurso. :)

@danmikita Você leu minha mente - esse recurso provavelmente não demorará muito (espero!). Eu estava planejando escolher algumas tarefas prováveis ​​do roteiro e escrevê-las mais detalhadamente como problemas do github, caso vocês quisessem resolvê-las. :) Farei isso até o final da semana.

Uma nova versão do Apicurio Studio com o recurso Vinculação de Contas deve ser lançada hoje. Tive alguns problemas para discutir com Keycloak no Openshift na semana passada, mas está tudo resolvido agora. Eu estarei fazendo o lançamento hoje e atualizando a documentação.

@danmikita Note que

Também criei alguma documentação para configurar um ambiente de desenvolvimento (documentos para contribuidores): https://apicurio-studio.readme.io/v0.1.9/docs/setting-up-a-development-environment

No momento, estou trabalhando na criação / atualização de alguns problemas do roteiro de curto prazo. Coisas que vocês talvez possam derrubar durante os Dias de Inovação. Espero que alguns deles pareçam interessantes. Vou criar um problema pai separado para isso, para que paremos de enviar spam para

Agora temos suporte para GitLab e Bitbucket. Fechando esta questão. :)

Esta página foi útil?
0 / 5 - 0 avaliações