Go Modules
  • Boas-vindas
  • Básico
    • O que é um módulo?
    • Rotina usando módulos
      • Criando um novo módulo
      • Adicionando uma dependência
      • Atualizando dependências
      • Adicionando uma dependência em uma nova versão principal (major)
    • Comandos comuns
  • Novos conceitos
    • Módulos
    • go.mod
    • Seleção de versão
  • Avançado
    • Go Module Proxy
    • go.sum
    • Checksum Database
  • Tutoriais
    • Como usar libs privadas?
    • Como usar libs privadas no Github Actions?
  • FAQ
    • Devo fazer commit do arquivo 'go.sum'?
    • Quando usar replace?
    • Posso trabalhar totalmente sem um versionador de código em meu sistema de arquivos local?
    • Como faço para usar a "vendor" com módulos?
    • Que ferramentas posso usar para trabalhar com módulos?
    • Devo adicionar um arquivo 'go.mod' mesmo que eu não tenha nenhuma dependência?
  • Releases
    • 1.13
    • 1.14
    • 1.15
Powered by GitBook
On this page
  1. Tutoriais

Como usar libs privadas no Github Actions?

PreviousComo usar libs privadas?NextDevo fazer commit do arquivo 'go.sum'?

Last updated 4 years ago

Nesse tutorial vamos usar um repositorio privado ficticio chamado github.com/alexrios/superlib na versão v1.1.0

Historia

Durante o pipeline de integração continua executando go mod tidy acontecia o seguinte erro:

go: github.com/alexrios/superlib@v1.1.0: reading github.com/alexrios/superlib/go.mod at revision v1.1.0: unknown revision v1.1.0

Por que?

Para entender como Go usa um SVC para lidar com dependências, recomendo o blog:

Solução

Gere um token com permissão de leitura na org ou usuario do repositorio e configure a substituição no git.

Dessa forma a autenticação será sempre utilizada.

É recomendavel usar os secrets do repositório para evitar a exposição de dados sensiveis, nesse caso, o token.

- name: Granting private modules access
        run: |
          git config --global url."https://${{ secrets.GO_MODULES_TOKEN }}:x-oauth-basic@github.com/alexrios".insteadOf "https://github.com/alexrios"     

para saber mais sobre declarar e usar secrets no github:

https://blog.golang.org/publishing-go-modules
https://help.github.com/pt/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets