web-dev-qa-db-fra.com

repo privé - go 1.13 - échec de `go mod ..`: ping" sum.golang.org/lookup ".. vérification du package .. 410 disparu

J'utilise golang 1.13.

J'ai un projet qui dépend d'un projet gitlab privé.

J'ai les clés ssh pour la même chose.

Lorsque j'essaie de récupérer les dépendances pour un module nouvellement créé, j'obtiens l'erreur suivante:

$ go version
go version go1.13 linux/AMD64

$ go mod why
go: downloading gitlab.com/mycompany/myproject v0.0.145
verifying gitlab.com/mycompany/[email protected]: gitlab.com/mycompany/[email protected]: reading https://sum.golang.org/lookup/gitlab.com/mycompany/[email protected]: 410 Gone

Je n'ai aucune idée pourquoi il essaie d'envoyer une requête ping à sum.golang.org/lookup car il s'agit d'un projet gitlab privé.

Mon ~/.gitconfig contient les éléments suivants (sur la base de ma recherche dans la recherche Google pour des erreurs similaires)

# Enforce SSH
[url "ssh://[email protected]/"]
  insteadOf = https://github.com/
[url "ssh://[email protected]/"]
        insteadOf = https://gitlab.com/
[url "ssh://[email protected]/"]
  insteadOf = https://bitbucket.org/
[url "[email protected]:"]
        insteadOf = https://gitlab.com/

L'erreur persiste toujours.

Je m'attendrais à ce que le paquet soit téléchargé depuis mon dépôt de projet gitlab privé vers le projet en cours.

Y a-t-il quelque chose que je dois faire dans mon référentiel de projet gitlab privé pour le rendre prêt à "aller chercher"?

Le référentiel de projet gitlab privé contient déjà le go.sum et le go.mod du projet.

Quelque chose qui me manque?

modifier: 1) Le nom du référentiel privé et le nom de l'entreprise ne contiennent aucun astérisque ni aucun autre caractère spécial. seulement des alphabets et même pas des caractères numériques.

22
noveaustack

Auriez-vous une chance d'avoir un fichier dans votre dépôt privé avec un astérisque à son nom?

0
Weev

Fondamentalement, il n'a pas pu vérifier le référentiel privé. Cependant, je n'aime pas désactiver la somme de contrôle, mais vous pouvez facilement définir GOSUMDB sur off avant d'essayer d'obtenir le module. quelque chose comme ça:

GOSUMDB=off go get github.com/mycompany/myproject

ref: https: //github.com/golang/go/issues/35164#issuecomment-546503518

Une deuxième et meilleure solution consiste à définir la variable d'environnement GOPRIVATE qui contrôle les modules que la commande go considère comme privés (non disponibles publiquement) et ne doit donc PAS utiliser la base de données proxy ou checksum. La variable est une liste de modèles glob séparés par des virgules (même syntaxe que Go path.Match) De préfixes de chemin de module. Par exemple,

export GOPRIVATE=*.corp.example.com,rsc.io/private

Ou

go env -w GOPRIVATE=github.com/mycompany/*

La dernière solution que vous pouvez essayer est de désactiver ces vérifications pour tous les référentiels privés que vous ne souhaitez pas rendre publics ou vérifiés via sum.golang.org/lookup/github.com/mycompany/...

GONOSUMDB=gitlab.com/mycompany/* go mod why

Notez que:

Si vous rencontrez des problèmes lors de la récupération de modules ou de référentiels via https, vous souhaiterez peut-être ajouter ce qui suit à votre ~/.gitconfig Pour créer go obtenir/récupérer des référentiels en utilisant ssh au lieu de https

[url "ssh: //[email protected]/"] au lieu de = https: //github.com/

0
Muhammad Soliman