Skip to content

Releases: matharts/sync-labels-action

v1.5.0

Choose a tag to compare

@lzm0x219 lzm0x219 released this 15 Jul 23:28
e26dd5e

仓库范围与离线校验

  • 新增可选的 repositories.exclude 策略;未配置时保持原有仓库选择行为。
  • 仓库范围按固定顺序应用:全部仓库或 repositories.include,然后是 repositories.exclude,最后是可选的 repository input。
  • 在访问 GitHub 前拒绝重叠、重复、空或无效的仓库选择。
  • 新增 validate_only Action input,无需 GitHub 凭据或网络访问即可校验标签和仓库策略文件。
  • 新增 pnpm validate:config,复用 Action 使用的 GovernanceConfig 规则。
  • 保持 v1.4 inputs、outputs、默认 dry-run 行为、删除安全、重试行为、部分失败计数和 Unicode 处理不变。
  • 明确 changed 在 dry-run 模式报告计划变更,在写入模式报告已完成的变更。
  • 通过全组织排除 dry-run、无凭据离线校验、非法策略一致性及现有 workflow 兼容性验证候选版本。
  • 将稳定错误分类、失败仓库输出、可归档计划文件、并发、缓存和批处理推迟到后续版本。
  • 建议审核发布提交并固定其完整 SHA,而不是可移动版本标签。

验证:pnpm check、Node.js 24 CI、可复现 dist/index.js bundle 比对、Actionlint、CodeQL、全组织排除 dry-run发布演练发布后测试发布后组织预览均通过。

v1.5.0-rc.1

v1.5.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@lzm0x219 lzm0x219 released this 15 Jul 23:12
efec2bf

仓库范围与离线校验候选版本

  • 新增可选的 repositories.exclude 策略用于生产演练;未配置时保持原有仓库选择行为。
  • 仓库范围按固定顺序应用:全部仓库或 repositories.include,然后是 repositories.exclude,最后是可选的 repository input。
  • 在访问 GitHub 前拒绝重叠、重复、空或无效的仓库选择。
  • 新增 validate_only Action input,无需 GitHub 凭据或网络访问即可校验标签和仓库策略文件。
  • 新增 pnpm validate:config,复用 Action 使用的 GovernanceConfig 规则。
  • 保持 v1.4 inputs、outputs、默认 dry-run 行为、删除安全、重试行为、部分失败计数和 Unicode 处理不变。
  • 明确 changed 在 dry-run 模式报告计划变更,在写入模式报告已完成的变更。
  • 将稳定错误分类、失败仓库输出、可归档计划文件、并发、缓存和批处理推迟到后续版本。
  • 建议审核候选提交并固定其完整 SHA,而不是可移动版本标签。
  • 正式发布 v1.5.0 前必须成功完成仓库范围、离线校验和现有 workflow 兼容性演练。

验证:pnpm check、Node.js 24 CI、可复现 dist/index.js bundle 比对、Actionlint、CodeQL 及现有 workflow 全组织 dry-run均通过。

v1.4.0

Choose a tag to compare

@lzm0x219 lzm0x219 released this 15 Jul 13:30
c2d4015

Node.js 24 与删除安全

  • 将 Action 运行时从 Ruby 迁移到 GitHub 原生 Node.js 24。
  • 保持 v1.3 inputs、outputs、默认 dry-run 行为、配置格式和未配置时的删除语义。
  • 在首次写入前规划每个目标仓库,并聚合不可变的 RunPlan
  • 新增 safety.deletionssafety.max_deletions_per_repositorysafety.max_deletions_total
  • 删除规则触发时停止全部写入,同时不阻止 dry-run,以便继续审查完整计划。
  • 读取请求保持可重试,写入请求不自动重试。
  • 对 6 个合格仓库完成零删除预览后,采用 MathArts 生产基线 allow / 1 / 6
  • 保持 GitHub App 凭据遮蔽,并在每个任务结束后撤销临时 token。
  • repositories.exclude、离线 validate_only、类型化错误和可归档计划输出推迟到后续版本。
  • 建议审核发布提交并固定其完整 SHA,而不是可移动版本标签。

验证:pnpm check、Node.js 24 CI、可复现 dist/index.js bundle 比对、Actionlint、CodeQL、全组织 dry-run单仓库写入零差异复查均通过。

v1.4.0-rc.1

v1.4.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@lzm0x219 lzm0x219 released this 15 Jul 13:14
25e9088

Node.js 24 与删除安全候选版本

  • 将 Action 运行时从 Ruby 迁移到 GitHub 原生 Node.js 24,以进行生产演练。
  • 保持 v1.3 inputs、outputs、默认 dry-run 行为、配置格式和未配置时的删除语义。
  • 在首次写入前规划每个目标仓库,并聚合不可变的 RunPlan
  • 新增 safety.deletionssafety.max_deletions_per_repositorysafety.max_deletions_total
  • 删除规则触发时停止全部写入,同时不阻止 dry-run,以便继续审查完整计划。
  • 读取请求保持可重试,写入请求不自动重试。
  • repositories.exclude、离线 validate_only、类型化错误和可归档计划输出推迟到后续版本。
  • 建议审核候选提交并固定其完整 SHA,而不是可移动版本标签。
  • 正式发布 v1.4.0 前必须成功完成 Node.js 24 写入演练。

验证:pnpm check、Node.js 24 CI、可复现 dist/index.js bundle 比对、Actionlint 及全组织 dry-run均通过。

v1.3.0

Choose a tag to compare

@lzm0x219 lzm0x219 released this 14 Jul 06:51
4611561

规划/执行同步

  • 在首次修改仓库前生成并校验不可变的 SyncPlan
  • 将规划与执行拆分为 SyncPlannerSyncExecutor,同时保持公开 Action 接口不变。
  • 确定性的仓库规划失败会在任何标签写入前停止;执行阶段失败时保留已完成的计数。
  • 支持已校验计划直接序列化为 JSON。
  • 围绕快速开始、常见任务、同步行为、参考表格和故障排除重构 README。

验证:38 项测试、184 个断言、所有受支持 Ruby 版本、workflow 质量、预览同步、安全扫描及不可变引用校验均通过。

v1.2.0

Choose a tag to compare

@lzm0x219 lzm0x219 released this 14 Jul 05:57
e5d735b

结构化输出

  • 提供 changedrepositoriescreatedupdatedrenameddeletedunchangedpreservedfailures 输出。
  • dry-run 模式报告计划变更,写入模式报告已完成的变更。
  • 单个仓库中途失败时保留已完成的变更计数,并继续处理其余仓库。
  • 集中处理运行时 input 解析,并在访问 GitHub 前拒绝不支持的 dry_run 值。
  • 保持 MathArts 生产自动化与全部合格组织仓库同步。

验证:33 项测试、159 个断言、所有受支持 Ruby 版本、workflow 质量、预览同步、安全扫描及不可变引用校验均通过。

v1.1.0

Choose a tag to compare

@lzm0x219 lzm0x219 released this 14 Jul 03:19
edc9a89

仓库范围

  • 省略 repositoriesrepositories.include 时,同步 token 可见的全部合格组织仓库。
  • 设置非空 repositories.include 列表时,继续使用显式允许列表。
  • 使用 repository input 将任一模式限定到单个仓库。
  • 默认全仓库模式跳过 archived、disabled 和 fork 仓库。
  • 显式的空 include 列表会安全失败,而不会扩大范围。

MathArts 生产自动化使用默认全仓库模式,目前预览全部 6 个合格组织仓库。

验证:26 项测试、101 个断言、所有受支持 Ruby 版本、workflow 质量、预览同步、安全扫描及独立的 Standards/Spec 复核均通过。

v1.0.2

Choose a tag to compare

@lzm0x219 lzm0x219 released this 14 Jul 02:43
fd09517

改进

  • 移除浅层转发层,深化 RepositorySynchronizer#sync
  • 在仓库同步过程中一致使用注入的实例状态。
  • 直接声明 Ruby set 依赖,并移除传递性的配置依赖。
  • 增加隔离进程回归测试,证明同步器可以独立加载。

验证:22 项测试、86 个断言、所有受支持 Ruby 版本、workflow 质量、预览同步、安全扫描,以及独立的 Standards/Spec 复核均通过且无发现。

v1.0.1

Choose a tag to compare

@lzm0x219 lzm0x219 released this 14 Jul 02:34
7c0a8fd

改进

  • 将实现从 lib/ 移至常规的 src/ 布局。
  • 将配置、同步、编排、摘要、标签标识和结果计数拆分为职责集中的模块。
  • 保持公开 Action 接口和同步行为不变。
  • 增加部分仓库失败、摘要转义、无效 YAML 和不支持的标签字段测试。

验证:所有受支持 Ruby 版本及 workflow 质量检查均通过。

v1.0.0

Choose a tag to compare

@lzm0x219 lzm0x219 released this 14 Jul 02:16
7b27e98

首个稳定版本

  • 同步组织管理的标签、迁移旧标签,并通过允许列表限定仓库范围。
  • 默认使用 dry-run,并保留仓库自行维护的扩展标签。
  • 强制 GitHub API 请求使用 HTTPS。
  • 对受速率限制、临时服务故障和网络故障的 GET 请求进行安全重试。
  • 使用短期 GitHub App token 和需要审批的生产环境。
  • 建议生产 workflow 固定到完整提交 SHA。

验证:Ruby 3.1、3.3 和 3.4 测试、Actionlint 及不可变引用校验均通过。