Gitea可重用工作流认证失败及相关资料缺失问题咨询
Gitea可重用工作流相关问题解答
问题描述
- 我找到了大量关于GitHub可重用工作流的资料,但找不到任何关于Gitea可重用工作流的内容。我知道Gitea的CI/CD功能相对较新,但也看到过不少相关的成功案例。请问我遗漏了什么信息?
- 在尝试使用内部仓库的工作流时,出现了
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错误的方案
你的配置存在以下几处关键问题,调整后即可解决:
- 上下文变量错误:Gitea的上下文变量前缀是
gitea而非github,调用方工作流中需将${{ github.repository }}改为${{ gitea.repository }},${{ github.ref }}改为${{ gitea.ref }}。 - Token权限不足:确保
CHECKOUT_REPOSITORY_TOKEN具备**读取调用方仓库(aldwund/login-server)和被调用方仓库(aldwund/deploy-tools)**的权限,建议授予repo完整权限。 - 版本与路径验证:确认
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
相关产品推荐
相关产品推荐

