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

Gitea可重用工作流认证失败及相关资料缺失问题咨询

Gitea可重用工作流相关问题解答

问题描述

  1. 我找到了大量关于GitHub可重用工作流的资料,但找不到任何关于Gitea可重用工作流的内容。我知道Gitea的CI/CD功能相对较新,但也看到过不少相关的成功案例。请问我遗漏了什么信息?
  2. 在尝试使用内部仓库的工作流时,出现了Authentication required错误,相关配置代码如下:

调用方工作流(aldwund/login-server/.gitea/workflows/build.yaml)

name: Gradle Build

on: [push]

jobs:
  gradle-build:
    uses: aldwund/deploy-tools/.gitea/workflows/build.yaml@1.0.0
    with:
      repository: ${{ github.repository }}
      ref: ${{ github.ref }}
    secrets:
      token: ${{ secrets.CHECKOUT_REPOSITORY_TOKEN }}

被调用方工作流(aldwund/deploy-tools/.gitea/workflows/build.yaml)

name: Gradle Build

on:
  workflow_call:
    inputs:
      repository:
        required: true
        type: string
      ref:
        required: true
        type: string
    secrets:
      token:
        required: true

jobs:
  gradle-build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Code to Build
        uses: actions/checkout@v4
        with:
          repository: ${{ inputs.repository }}
          ref: ${{ inputs.ref }}
          token: ${{ secrets.token }}

      - uses: actions/setup-java@v3
        with:
          distribution: temurin
          java-version: 17

      - name: Execute Gradle build
        run: |
          chmod +x gradlew;
          ./gradlew build

问题解答

一、关于Gitea可重用工作流资料缺失的原因

  • Gitea的可重用工作流基于workflow_call实现,是1.20版本才正式推出的特性,属于较新功能,官方文档和社区教程还在逐步补充,不像GitHub相关内容那样成熟普及。
  • 你看到的成功案例多是用户在新版本Gitea上的实践,这类内容分散在Gitea官方讨论区、社区论坛或个人分享中,没有集中的系统性资料。
  • 重点查看Gitea官方文档的「工作流调用(Workflow Call)」章节,里面有基础使用说明;同时关注Gitea更新日志,了解该功能的迭代细节。

二、解决Authentication required错误的方案

你的配置存在以下几处关键问题,调整后即可解决:

  1. 上下文变量错误:Gitea的上下文变量前缀是gitea而非github,调用方工作流中需将${{ github.repository }}改为${{ gitea.repository }},${{ github.ref }}改为${{ gitea.ref }}。
  2. Token权限不足:确保CHECKOUT_REPOSITORY_TOKEN具备**读取调用方仓库(aldwund/login-server)和被调用方仓库(aldwund/deploy-tools)**的权限,建议授予repo完整权限。
  3. 版本与路径验证:确认aldwund/deploy-tools/.gitea/workflows/build.yaml@1.0.0中的标签1.0.0在deploy-tools仓库中真实存在,且工作流文件路径无误。

调整后的调用方工作流代码示例:

# aldwund/login-server/.gitea/workflows/build.yaml

name: Gradle Build

on: [push]

jobs:
  gradle-build:
    uses: aldwund/deploy-tools/.gitea/workflows/build.yaml@1.0.0
    with:
      repository: ${{ gitea.repository }}
      ref: ${{ gitea.ref }}
    secrets:
      token: ${{ secrets.CHECKOUT_REPOSITORY_TOKEN }}

另外,actions/checkout@v4在Gitea环境中兼容性良好,无需替换为其他版本,若后续仍有问题可尝试使用Gitea官方镜像的actions/checkout。

内容的提问来源于stack exchange,提问作者Aaron Welborn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 19:32:47