跳转到内容

GitHub Action

Lunaria GitHub Action 会在拉取请求中添加评论,概述合并后这些更改将如何影响本地化状态,并提供有关潜在问题的洞察以及 Lunaria 的工作原理。

先决条件

  • Node.js - v20.0.0 或更高版本。
  • @lunariajs/core - v0.1.0 或更高版本。

设置该 Action

根据所使用的包管理器,在项目中创建一个新文件 .github/workflows/lunaria.yml,内容如下:

name: Lunaria
on:
# 每次在目标 `main` 分支上打开或同步拉取请求时触发工作流
# 如果使用了不同的分支名称?请将 `main` 替换为您的分支名称
pull_request_target:
types: [opened, synchronize]
branches: [main]
# 允许此作业克隆仓库并在拉取请求上发表评论
permissions:
contents: read
pull-requests: write
jobs:
lunaria-overview:
name: 生成 Lunaria 概览
runs-on: ubuntu-latest
steps:
- name: 检出
uses: actions/checkout@v4
with:
# Lunaria 正常运行所需的必要配置
# 使该操作克隆完整的 Git 历史记录
fetch-depth: 0
- name: 配置 Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- run: npm install
- name: 生成 Lunaria 概览
uses: yanthomasdev/[email protected]

如果设置正确,该 Action 将会针对每一个新的或更新的拉取请求发表评论,前提是这些请求中包含被 Lunaria 跟踪的文件(未被跟踪的文件则不会收到评论)。

单体仓库的额外步骤

默认情况下,该 Action 会在仓库的根目录中查找 @lunariajs/core 包。

如果您正在使用单体仓库且该包未安装在根目录的 package.json 文件中,则需要将 working-directory 设置为正确的路径。

本示例假设 @lunariajs/core 包已安装在 docs/package.json 文件中,因此 working-directory 应设置为 docs

- name: 生成 Lunaria 概览
uses: yanthomasdev/[email protected]
with:
working-directory: docs

私有仓库的额外步骤

默认情况下,由于权限不足,该 Action 不会在私有仓库上运行。要解决此问题,您需要完成以下额外步骤:

  1. 在 GitHub 上创建一个新的个人访问令牌 (PAT),并将其添加到仓库的 Action 秘密中

  2. 在工作流文件 .github/workflows/lunaria.yml 中,将 token 输入添加到检出和 Lunaria 步骤中,并使用之前添加的秘密名称:

    - name: 检出
    uses: actions/checkout@v4
    with:
    # Lunaria 正常运行所需的必要配置
    # 使该操作克隆完整的 Git 历史记录
    fetch-depth: 0
    token: ${{ secrets.PAT }}
    - name: 生成 Lunaria 概览
    uses: yanthomasdev/[email protected]
    with:
    token: ${{ secrets.PAT }}

参考

输入项

  • token - 可选:用于运行该 Action 的 GitHub 个人访问令牌

    - name: 生成 Lunaria 概览
    uses: yanthomasdev/[email protected]
    with:
    token: ${{ secrets.PAT }}
  • working-directory - 可选:Action 运行的目标工作目录。应设置为 @lunariajs/core 包安装的子目录。

    - name: 生成 Lunaria 概览
    uses: yanthomasdev/[email protected]
    with:
    working-directory: docs