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 概览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: pnpm
- name: 配置 PNPM uses: pnpm/action-setup@v3
- run: pnpm install
- name: 生成 Lunaria 概览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: yarn
- run: yarn install
- name: 生成 Lunaria 概览如果设置正确,该 Action 将会针对每一个新的或更新的拉取请求发表评论,前提是这些请求中包含被 Lunaria 跟踪的文件(未被跟踪的文件则不会收到评论)。
单体仓库的额外步骤
默认情况下,该 Action 会在仓库的根目录中查找 @lunariajs/core 包。
如果您正在使用单体仓库且该包未安装在根目录的 package.json 文件中,则需要将 working-directory 设置为正确的路径。
本示例假设 @lunariajs/core 包已安装在 docs/package.json 文件中,因此 working-directory 应设置为 docs:
- name: 生成 Lunaria 概览 with: working-directory: docs私有仓库的额外步骤
默认情况下,由于权限不足,该 Action 不会在私有仓库上运行。要解决此问题,您需要完成以下额外步骤:
-
在 GitHub 上创建一个新的个人访问令牌 (PAT),并将其添加到仓库的 Action 秘密中。
-
在工作流文件
.github/workflows/lunaria.yml中,将token输入添加到检出和 Lunaria 步骤中,并使用之前添加的秘密名称:- name: 检出uses: actions/checkout@v4with:# Lunaria 正常运行所需的必要配置# 使该操作克隆完整的 Git 历史记录fetch-depth: 0token: ${{ secrets.PAT }}- name: 生成 Lunaria 概览with:token: ${{ secrets.PAT }}
参考
输入项
-
token- 可选:用于运行该 Action 的 GitHub 个人访问令牌。- name: 生成 Lunaria 概览with:token: ${{ secrets.PAT }} -
working-directory- 可选:Action 运行的目标工作目录。应设置为@lunariajs/core包安装的子目录。- name: 生成 Lunaria 概览with:working-directory: docs