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.
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.
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?
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!