You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitLab CI Job中向所属仓库推送标签,无需传递个人凭证?

解决方案

方案1:使用GitLab内置CI_JOB_TOKEN(推荐,同时适配SaaS与私有化部署)

该方案完全依赖GitLab原生能力,不需要额外生成自定义凭证,两种环境适配逻辑完全一致,且临时令牌自动过期,安全性远高于固定凭证。

  • 操作步骤:
    1. 进入对应项目的「设置」→「CI/CD」→「作业令牌访问权限」,开启允许作业令牌对仓库的写入权限(GitLab 16.x及以上版本默认关闭写入权限,需手动开启)
    2. 直接修改CI配置中gradle命令的认证参数即可,CI_JOB_TOKEN是GitLab CI自动注入的内置变量,无需手动创建:
.release-template:
  stage: release
  image: adoptopenjdk:11-jdk-hotspot
  dependencies:
    - deliver
  script:
    - |
      ./gradlew reckonTagPush -Preckon.scope=$scope -Preckon.stage=$stage \
        -Dorg.ajoberstar.grgit.auth.username=gitlab-ci-token \
        -Dorg.ajoberstar.grgit.auth.password=$CI_JOB_TOKEN
  artifacts:
    paths:
      - build/
  #only:
  #  - master
  when: manual #ONLY MANUAL RELEASES, ONLY FROM MASTER

release-major:
  extends: .release-template
  variables:
    scope: major
    stage: final

release-minor:
  extends: .release-template
  variables:
    scope: minor
    stage: final

release-patch:
  extends: .release-template
  variables:
    scope: patch
    stage: final

方案2:使用带写入权限的Deploy Key(兼容低版本私有化部署GitLab)

如果你的私有化部署GitLab版本较低,不支持CI_JOB_TOKEN写入仓库,可以使用该方案:

  • 操作步骤:
    1. 本地生成SSH密钥对,运行命令ssh-keygen -t ed25519 -C "gitlab-reckon-deploy-key",全程不需要设置密码
    2. 进入项目「设置」→「仓库」→「部署密钥」,点击「添加密钥」,把生成的公钥(.pub文件内容)粘贴进去,务必勾选「授予写入权限」选项
    3. 进入项目「设置」→「CI/CD」→「变量」,新增变量:
      • 变量名:GRGIT_SSH_KEY
      • 变量值:粘贴生成的私钥内容
      • 勾选「掩码变量」、「保护变量」(可选,仅保护分支可用)后保存
    4. 修改CI配置的script部分,在执行gradle命令前先配置SSH密钥,grgit会自动识别SSH认证,不需要再传用户名密码参数:
.release-template:
  stage: release
  image: adoptopenjdk:11-jdk-hotspot
  dependencies:
    - deliver
  script:
    - mkdir -p ~/.ssh && echo "$GRGIT_SSH_KEY" > ~/.ssh/id_ed25519 && chmod 600 ~/.ssh/id_ed25519
    - ssh-keyscan $CI_SERVER_HOST >> ~/.ssh/known_hosts
    - ./gradlew reckonTagPush -Preckon.scope=$scope -Preckon.stage=$stage
  artifacts:
    paths:
      - build/
  #only:
  #  - master
  when: manual #ONLY MANUAL RELEASES, ONLY FROM MASTER
# 下游作业配置与原有逻辑一致,无需修改

内容的提问来源于stack exchange,提问作者Martin Ahrer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 13:06:04