1

我正在使用 golang 创建一个简单的 CLI 应用程序。我正在使用 GoReleaser 将其发布到 Gitlab。我按照https://goreleaser.com/quick-start/中列出的步骤发布对 gitlab 的更改。我已经生成了一个具有 API 范围的个人访问令牌。在使用 goreleaser 发布工件之前,我正在标记更改并推送它们。

我总是收到错误说发布失败后 452.34s error=github/gitlab/gitea 发布:未能发布工件:获取“https://PRIVATEGITLABURL/api/v4/projects/PRIVATE_GITLAB_PROJECT/releases/v1%2E0%2E3” :拨tcp IP_ADDRESS:443:连接:操作超时。

我的 .gorelease.yml 文件

before:
  hooks:
    # You may remove this if you don't use go modules.
    - go mod tidy
    # you may remove this if you don't need go generate
    - go generate ./...
builds:
  - env:
      - CGO_ENABLED=0
    goos:
      - windows
snapshot:
  name_template: "{{ incpatch .Version }}-next"
changelog:
  sort: asc
  filters:
    exclude:
      - '^docs:'
      - '^test:'
# .goreleaser.yml
gitlab_urls:
  api: https://PRIVATE_GITLAB_REPO/api/v4/
  download: https://PRIVATE_GITLAB_REPO
  # set to true if you use a self-signed certificate
  skip_tls_verify: false 

有任何想法吗?我的 gitlab 版本是 GitLab 企业版 14.1.5-ee

4

1 回答 1

2

首先检查这是否是因为goreleaser/goreleaser问题 1879(“在 http(s) 代理后面使用 goreleaser”),自PR 1885和 goreleaser v0.147.0 起支持该问题:

  • 您的 GitLab 服务器可以通过 Internet 访问,并且您尚未设置HTTP(S)_PROXY环境变量
  • 或者您的 GitLab 服务器在您的 Intranet 上,您已设置HTTP(S)_PROXY,但忘记了NO_PROXY(通过Intranet 资源访问时使用代理)。https://

Batuhan ApaydınOP 的讨论中建议应用gitlab 配置

# .goreleaser.yml
release:
  # Default is extracted from the origin remote URL or empty if its private hosted.
  # You can also use Gitlab's internal project id by setting it in the name
  #  field and leaving the owner field empty.
  gitlab:
    owner: user
    name: repo. 

OP GrailsTest评论中从 GH 讨论中确认:

我无法推送我的版本,因为我只能通过 SSH 访问 GitLab。
HTTP 似乎不起作用。Https 在我的机器上从来没有工作过,可能是因为我没有设置环境变量。

我可以在我的同事机器上完成这项工作,他们可以通过 HHTPS 和 SSH 访问 GitLab。

于 2021-09-27T06:05:04.503 回答