Go Module Proxy
Last updated
Last updated
O provê alguns serviços através do Google, como um mirror para acelerar o download, um banco de dados com checksums para validação do conteúdo dos módulos e um indice para descoberta de novos módulos.
É qualquer servidor que aceite uma requisição GET no padrão esperado. um exemplo seria:
Irá retornar uma lista com as versões conhecidas do modulo, sendo uma por linha, veja aqui um exemplo:
Agora um ponto interessante a ser analisado é o .mod
da dependência, que pode ser acessado seguindo o padrão:
Como, por exemplo:
O download do pacote pode ser feito diretamente através do:
Como, por exemplo:
Do ponto de vista de uso, o go build
irá realizar as operações da sessão anterior automaticamente. Então temos uma situação interessante, o proxy armazena versões de cada pacote, ou seja, se por ventura o pacote original sair do ar, suas dependências não irão quebrar e caso alguém injete código malicioso a versão do proxy não é afetada!
Em caso de versões anteriores é preciso trabalhar com variáveis de ambiente:
Outro ponto de atenção é caso você tenha a necessidade de utilizar um repositório privado, o go permite o uso da variavel:
Por padrão o go irá utilizar o repositório , porém é possivel configurar outros repositórios conforme a sua necessidade. Um exemplo seria um desenvolvedor utilizando o proxy chinês, para go 1.13 ou superior: