Zenodo: conecte-se ao GitLab assim como ao GitHub

Criado em 11 jan. 2018  ·  20Comentários  ·  Fonte: zenodo/zenodo

Caro time Zenodo,

a integração descrita em https://guides.github.com/activities/citable-code/ é construída de forma generalizável para você, correto? Eu só queria notificá-lo sobre uma discussão sobre a integração do Zenodo no GitLab .

Saúde :-)

Feature request Needs investigation i - Asclepias Accepted

Comentários muito úteis

Especificamente para o módulo Zenodo em GitLabs auto-hospedados, @schlauch e eu postaram https://gitlab.com/gitlab-org/gitlab/issues/25587.

Em resposta a isso, um módulo experimental Invenio foi compartilhado: https://gitlab.hzdr.de/rodare/invenio-gitlab por @tobiashuste.

Todos 20 comentários

PS: Eu pesquisei em invenio attic e contrib para problemas, mas como nada sobre GitLab apareceu, espero que postar aqui esteja OK.

Ei @katrinleinweber , obrigado por apresentar isso. Essa integração exigirá integração da nossa parte, ou seja, algo semelhante a https://github.com/inveniosoftware/invenio-github

Parece que a principal dificuldade aqui seria o suporte para instalações personalizadas do GitLab. Por motivos semelhantes, atualmente não oferecemos suporte ao GitHub empresarial, que é semelhante a uma instância GitLab personalizada.

Posso perguntar por que as mudanças de sua extremidade são necessárias? O GitLab não pode depositar tarballs no lançamento usando sua API?

Ei @ remram44 Você quer dizer algo como um módulo GitLab conversando com nossa API REST? Na verdade, sim, é possível.

Posso perguntar por que as mudanças de sua extremidade são necessárias?

As mudanças em nosso lado seriam escrever algo como módulo invenio-github para gitlab (ou seja, conectar contas GitLab-Zenodo, registrar webhooks, manipulação de carga útil, etc.). Por exemplo, nossa integração com o GitHub é um aplicativo de terceiros do GitHub, que solicita acesso de gravação aos repositórios públicos do usuário do GitHub. O usuário primeiro precisa conectar sua conta GitHub no Zenodo, então fica claro quem é o "proprietário" dos registros do Zenodo assim que o repo é lançado. Portanto, quando o usuário habilita o arquivamento em um de seus repositórios (vira a chave), registramos um webhook no repo e lidamos com a carga útil quando ela chega até nós. Neste ponto, podemos vincular o usuário github ao usuário zenodo.

O GitLab não pode depositar tarballs no lançamento usando sua API?

Portanto, agora, se você quiser reverter isso e fazer com que o GitLab escreva para nós, posso ver que é possível ter um módulo GitLab personalizado enviando um tarball com metadados de um determinado repositório para o Zenodo, mas não está claro para qual usuário do Zenodo. Acho que a maneira mais fácil seria configurar o referido módulo com a chave API do usuário do Zenodo, o que funcionaria.

pode-se ter um módulo GitLab personalizado enviando um tarball com metadados de um determinado repositório para o Zenodo, mas não está claro para qual usuário do Zenodo. Acho que a maneira mais fácil seria configurar o referido módulo com a chave API do usuário do Zenodo, o que funcionaria.

Isso é o que eu tinha em mente! Eu não sabia que a API do Zenodo permitia depósitos anônimos de qualquer maneira. O Zenodo tem algo como OAuth? Isso pode ser mais amigável do que colar uma chave de API.

Obrigado por explicar, @krzysztof :-)

[…] Configure o referido módulo com a chave API do usuário do Zenodo, que funcionaria.

Nesse caso, o módulo precisaria de seu próprio gerenciamento de usuário ou se referisse ao gerenciamento de segredos da instância do GitLab ( somente EE? ), Porque haveria vários usuários em uma instância, querendo que seus repositórios se conectassem a várias contas Zenodo.

Ou talvez (apenas especulando!) Para uma conta Zenodo institucional compartilhada? Mas talvez este caso possa ser ignorado inicialmente.

Eu não sabia que a API do Zenodo permitia depósitos anônimos de qualquer maneira

@ remram44 Não, você precisa da chave API. Zenodo não tem OAuth.

Nesse caso, o módulo precisaria de seu próprio gerenciamento de usuário ou se referisse ao gerenciamento de segredos da instância do GitLab (somente EE?), Porque haveria vários usuários em uma instância, querendo que seus repositórios se conectassem a várias contas Zenodo.

@katrinleinweber No momento não é possível ter vários proprietários para determinados registros, e não queremos que cada usuário de repo tenha sua própria cópia do repositório - isso significaria vários DOIs para o mesmo conteúdo, o que é ruim. Por esse motivo, o repositório GH dado pode ser arquivado por apenas um usuário.

Vários usuários usam algo como uma conta "institucional", principalmente periódicos, mas o "fardo" da curadoria do registro recai sobre o bibliotecário / proprietário da conta, de modo que tecnicamente funcionaria, mas a longo prazo não quereríamos isso para se tornar uma solução comum para este problema. Em vez disso, no futuro, podemos estender o recurso de comunidades para se assemelhar a algo como uma "equipe" e, provavelmente, ter alguma forma de múltiplos proprietários (ou pelo menos múltiplos curadores) por registro.

Se o plug-in GitLab usa um token de API do Zenodo como configuração, isso parece muito utilizável. Também funcionaria em instalações privadas do GitLab. Caberia à equipe decidir em qual conta do Zenodo os registros serão criados.

screen shot 2018-01-15 at 11 47 29

Zenodo não tem OAuth.

Na verdade, parece ser compatível com OAuth 2.0: http://developers.zenodo.org/#authentication Portanto, inserir um token manualmente pode nem ser necessário.

Como um resumo intermitente, poderíamos dizer que um GitLab-CI que empurra para um GitHub-repo conectado ao Zenodo seria uma alternativa atualmente em funcionamento que obtém um DOI atribuído a uma base de código desenvolvida em um GitLab?

Não é mais relevante; Sinta-se à vontade para se esconder.

GitLab sugere :

web hooks, como quando uma nova tag é criada [...] parecem ser as APIs equivalentes usadas pela integração do Zenodo com o GitHub. […] A melhor maneira seria uma integração de projeto configurada no lado do GitLab que empurra um arquivo de cada tag quando ela é criada.

@ remram44 A imagem acima é uma maquete, certo? Como você o criou?

@katrinleinweber Firefox inspector / dev-tool: wink:

Especificamente para o módulo Zenodo em GitLabs auto-hospedados, @schlauch e eu postaram https://gitlab.com/gitlab-org/gitlab/issues/25587.

Em resposta a isso, um módulo experimental Invenio foi compartilhado: https://gitlab.hzdr.de/rodare/invenio-gitlab por @tobiashuste.

Esse recurso seria útil, como podemos aprová-lo?

Continue postando até que receba mais atenção 😉

Este seria um recurso interessante para o Zenodo, sem dúvida.

Sim por favor !

Eu gostaria de usar esse plugin também!

Ótima ideia, seria muito útil!

Um grande sinal de positivo meu! Simplificaria o pipeline da próxima geração de https://zenodo.org/record/3497066!

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