Maison > développement back-end > Golang > le mod Tidy du référentiel interne via ssh échoue

le mod Tidy du référentiel interne via ssh échoue

WBOY
Libérer: 2024-02-10 15:30:10
avant
1106 Les gens l'ont consulté

通过 ssh 从内部仓库进行 mod tidy 失败

L'éditeur php Baicao a rencontré un problème lors du modding spice. Il a essayé d'opérer depuis l'entrepôt interne via ssh mais a échoué. Cette situation peut conduire au chaos dans l'entrepôt de code, affectant le processus de développement et la stabilité du projet. Avant de résoudre ce problème, nous devons comprendre la cause de l’échec et les solutions possibles pour garantir la santé de l’entrepôt de code. Ensuite, nous explorerons en détail comment résoudre ce problème.

Contenu de la question

Lorsque j'utilise un référentiel github interne, je ne peux pas go mod tidy。 ssh 身份验证似乎可以单独工作(请参见下面的日志),但是 go mod tidy il atteint le référentiel interne et lance

[email protected]: permission denied (publickey).
fatal: could not read from remote repository.
please make sure you have the correct access rights and the repository exists.
Copier après la connexion

De mon action github

steps:
            # checks-out the repository under $github_workspace, so the job can access it
            - uses: actions/checkout@v3

            # set up go
            - name: set up go
              uses: actions/setup-go@v4
              with:
                  go-version: 1.20.2
                  cache: false

            - name: add private key to ssh agent
              env:
                private_key: ${{ secrets.shared_deploy_private_key }}
              run: |
                echo "${{ env.private_key }}" > key.pem
                chmod 600 key.pem
                eval "$(ssh-agent -s)"
                ssh-add key.pem
                ssh-add -l -e sha256
                ssh -t [email protected] 2>&1 || true    ### tests ssh auth

            # install dependencies
            - name: install dependencies
              run: |
                  git config --global url."[email protected]:".insteadof "https://github.com/"
                  go clean -modcache  
                  go env -w goprivate=github.com/my-org/*
                  go env -w gonoproxy=github.com/my-org/*
                  go env
                  go mod tidy
Copier après la connexion

Connexion添加私钥

agent pid 1766
identity added: key.pem (_redacted_)
3072 sha256:_redacted_ _redacted_ (rsa)
hi my-org/observability-go! you've successfully authenticated, but github does not provide shell access.
Copier après la connexion

Enregistrement安装依赖项

go: downloading github.com/pmezard/go-difflib v1.0.0
go: downloading github.com/mattn/go-isatty v0.0.17
go: downloading golang.org/x/sync v0.1.0
github.com/my-org/clan-service/cmd/clanservice imports
    github.com/my-org/observability-go/logging: github.com/my-org/[email protected]: invalid version: git ls-remote -q origin in /home/runner/go/pkg/mod/cache/vcs/d0c7f50097d6054d27fc7949420737cdb6036d1246584bb05f13c6fe75577be2: exit status 128:
    [email protected]: permission denied (publickey).
    fatal: could not read from remote repository.
    please make sure you have the correct access rights
    and the repository exists.
Copier après la connexion
La sortie de

go env

GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/runner/.cache/go-build"
GOENV="/home/runner/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/runner/go/pkg/mod"
GONOPROXY="github.com/my-org/*"
GONOSUMDB="github.com/my-org/*"
GOOS="linux"
GOPATH="/home/runner/go"
GOPRIVATE="github.com/my-org/*"
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/opt/hostedtoolcache/go/1.20.2/x64"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/opt/hostedtoolcache/go/1.20.2/x64/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.20.2"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/runner/work/clan-service/clan-service/go.mod"
GOWORK=""
CGO_CFLAGS="-O2 -g"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-O2 -g"
CGO_FFLAGS="-O2 -g"
CGO_LDFLAGS="-O2 -g"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build4021260014=/tmp/go-build -gno-record-gcc-switches"
Copier après la connexion

Qu'est-ce que j'ai raté ? Comment puis-je faire ceci?

Solution de contournement

Chaque étape s'exécute dans un processus distinct, de sorte que les opérations qui modifient l'environnement actuel au niveau du processus ne « survivront » pas à l'étape suivante.

Par exemple :
Vous devez réexécuter eval "$(ssh-agent -s)" sur l'étape "Installer les dépendances" afin de configurer correctement l'environnement pour communiquer avec votre agent ssh.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal