🏷 拉取请求大小标签器
可视化并可选择限制拉取请求的大小
🚀 使用方法
在 .github/workflows
目录下创建一个名为 labeler.yml
的文件,并粘贴以下配置。
[!注意] 请注意,PR 大小标签器默认将任何行的添加、删除或修改视为更改,但你可以使用可选参数进行配置,如
files_to_ignore
、ignore_file_deletions
或甚至ignore_line_deletions
。
name: labeler
on: [pull_request]
jobs:
labeler:
permissions:
pull-requests: write
contents: read
issues: write
runs-on: ubuntu-latest
name: 标记 PR 大小
steps:
- uses: codelytv/pr-size-labeler@v1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
xs_label: 'size/xs'
xs_max_size: '10'
s_label: 'size/s'
s_max_size: '100'
m_label: 'size/m'
m_max_size: '500'
l_label: 'size/l'
l_max_size: '1000'
xl_label: 'size/xl'
fail_if_xl: 'false'
message_if_xl: >
此 PR 超过了建议的 1000 行大小。
请确保你没有在一个 PR 中处理多个问题。
请注意,此 PR 可能因其大小而被拒绝。
github_api_url: 'https://api.github.com'
files_to_ignore: ''
[!提示] 当使用 fork 并且不希望任何 PR 能够执行代码时,将
on: [pull_request]
替换为on: [pull_request_target]
(更多信息:GitHub 文档)。
🎛️ 参数
名称 | 必需 | 默认值 | 描述 |
---|---|---|---|
GITHUB_TOKEN | 是 | 自动提供 | 与仓库交互所需的 GitHub 令牌。 |
xs_label | 否 | 'size/xs' | 超小型 PR 的标签。 |
xs_max_size | 否 | '10' | XS 大小 PR 允许的最大更改数。 |
s_label | 否 | 'size/s' | 小型 PR 的标签。 |
s_max_size | 否 | '100' | S 大小 PR 允许的最大更改数。 |
m_label | 否 | 'size/m' | 中型 PR 的标签。 |
m_max_size | 否 | '500' | M 大小 PR 允许的最大更改数。 |
l_label | 否 | 'size/l' | 大型 PR 的标签。 |
l_max_size | 否 | '1000' | L 大小 PR 允许的最大更改数。 |
xl_label | 否 | 'size/xl' | 超大型 PR 的标签。如果 PR 超过了 l_max_size 中定义的更改数量,它将被标记为 'xl' |
fail_if_xl | 否 | 'false' | 如果 PR 大小为 'XL',是否使 GitHub 工作流失败(阻止合并)。 |
message_if_xl | 否 | 自定义消息 | 当 PR 超过 'XL' 大小限制时显示的消息。 |
github_api_url | 否 | 'https://api.github.com' | GitHub API 的 URL,可以为 GitHub Enterprise Servers 更改。 |
files_to_ignore | 否 | '' | 计算 PR 大小时要忽略的文件。支持换行或空格分隔的列表。 |
ignore_line_deletions | 否 | 'false' | 计算 PR 大小时是否忽略被删除的行。如果设置为 'true',将忽略删除的行。 |
ignore_file_deletions | 否 | 'false' | 计算 PR 大小时是否完全忽略被删除的文件。如果设置为 'true',将忽略完全删除的文件。与 ignore_line_deletions 不同,它只忽略完全删除的文件。如果使用了 ignore_line_deletions ,那么使用 ignore_file_deletions 就是多余的。 |
files_to_ignore
示例
files_to_ignore: 'package-lock.json *.lock'
# 或
files_to_ignore: |
"package-lock.json"
"*.lock"
"docs/*"
贡献
如果你想帮助改进这个项目,请阅读贡献指南。