Rumah >pembangunan bahagian belakang >Golang >mod kemas dari repositori dalaman melalui ssh gagal

mod kemas dari repositori dalaman melalui ssh gagal

WBOY
WBOYke hadapan
2024-02-10 15:30:101162semak imbas

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

editor php Baicao menghadapi masalah apabila mengubah suai kemas Dia cuba beroperasi dari gudang dalaman melalui ssh tetapi gagal. Keadaan ini boleh menyebabkan huru-hara dalam gudang kod, menjejaskan proses pembangunan dan kestabilan projek. Sebelum menyelesaikan masalah ini, kita perlu memahami punca kegagalan dan kemungkinan penyelesaian untuk memastikan kesihatan gudang kod. Seterusnya, kami akan meneroka secara terperinci bagaimana untuk menyelesaikan masalah ini.

Kandungan soalan

Apabila menggunakan repositori github dalaman, saya tidak boleh go mod tidy。 ssh 身份验证似乎可以单独工作(请参见下面的日志),但是 go mod tidy ia terkena repositori dalaman dan membuang

[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.

Daripada tindakan github saya

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

Log masuk添加私钥

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.

Rekod安装依赖项

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.
Keluaran

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"

Apa yang saya terlepas? Bagaimana saya boleh melakukan ini?

Penyelesaian

Setiap langkah berjalan dalam proses yang berasingan, jadi operasi yang mengubah suai persekitaran skop proses semasa tidak akan "bertahan" ke langkah seterusnya.

Contohnya:
Anda perlu menjalankan semula eval "$(ssh-agent -s)" pada langkah "Pasang kebergantungan" untuk menyediakan persekitaran dengan betul untuk berkomunikasi dengan ejen ssh anda.

Atas ialah kandungan terperinci mod kemas dari repositori dalaman melalui ssh gagal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam