GitHub Safe Sync

Polar Sponsor
爱发电 赞助
.NET 9.0

检查、触发并清理使用安全同步 GitHub Actions 工作流的 GitHub 镜像仓库,用于 Codex 需要进行仓库镜像同步时。

GitHub 安全同步

功能概述

GitHub 安全同步是一项面向实际任务的技能,主要用于使用此技能来创建存储器, 以 security- sync. yml 工作流程 来映射上游 GitHub repo 并保存本地的 . github 工作流程文件;在运行 th 之前, 设置 GITHUB TOKEN。

核心要点

  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;

结果检查与注意事项

涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

GitHub Safe Sync

此技能适用于镜像上游 GitHub 仓库的仓库,且需保留本地 .github 工作流文件,并配置了 safe-sync.yml 工作流。

前提条件

  • 运行脚本前,请设置 GITHUB_TOKEN 环境变量。
  • 传入仓库时使用 owner/repo 格式。
  • 将 token 视为敏感信息。切勿将其硬编码到技能中,或提交至仓库文件中。

快速开始

检查一个镜像仓库:

export GITHUB_TOKEN=...
./scripts/github_safe_sync.py status 
  --owner grey00758 
  --repo ai-code-board 
  --upstream grey0758/ai-code-board

触发一次手动同步:

export GITHUB_TOKEN=...
./scripts/github_safe_sync.py dispatch 
  --owner grey00758 
  --repo ai-code-board

在工作流修复后清理误报产生的残留产物:

export GITHUB_TOKEN=...
./scripts/github_safe_sync.py close-force-push-issues 
  --owner grey00758 
  --repo ai-code-board

./scripts/github_safe_sync.py delete-backups 
  --owner grey00758 
  --repo ai-code-board

工作流程

  1. 使用 status 检查镜像仓库状态。
  2. 若工作流处于非活跃状态,或最近一次运行失败,请在触发任何操作前先人工审查该仓库。
  3. 若镜像仓库此时应执行同步,请运行 dispatch。
  4. 若工作流修复已消除误报的强制推送(force-push)告警,则运行 close-force-push-issues 和 delete-backups。
  5. 再次运行 status,确认仓库状态已恢复正常。

status 输出解读

  • effective_state=exact:镜像仓库与上游仓库对应分支的 HEAD 完全一致。
  • effective_state=metadata-ahead:镜像仓库仅在本地 .github 目录内有额外提交,其余内容与上游一致。此类状态在 safe-sync 镜像仓库中通常属于健康状态。
  • effective_state=behind:上游仓库已有更新提交,而镜像仓库尚未同步跟进。
  • effective_state=local-ahead:镜像仓库包含若干非元数据类提交(即修改了代码或文档等非 .github 内容),但这些提交在上游仓库中并不存在。请在执行任何强制操作前仔细审查。
  • effective_state=metadata-diverged:双方历史记录存在差异,但镜像仓库独有的变更仅限于元数据(如 .github 文件)。这通常意味着同步工作流逻辑仍需进一步审查。
  • effective_state=diverged:镜像仓库与上游仓库均发生了互不兼容的变更。除非另有明确证据,否则应视其为真实同步问题。

命令说明

status

请始终优先使用 status。它将返回包含以下字段的 JSON 结果:

  • 工作流元数据
  • 最近几次工作流运行记录
  • 当前打开的强制推送告警 Issue 数量
  • backup/ 分支数量
  • 可选的上游分支比对结果

若指定的上游分支不存在,脚本将自动回退至上游仓库的默认分支。

dispatch

使用 dispatch 可向同步工作流触发 workflow_dispatch 事件。仅当您明确希望跳过常规的“无操作(no-op)”路径时,才添加 --force-sync 参数。

close-force-push-issues

仅在您已确认相关强制推送告警确属误报后,方可使用该命令。它将关闭所有标题中包含 检测到上游强制推送 的已打开 Issue。

delete-backups

仅在您已确认 backup/ 分支确属冗余噪声后,方可使用该命令。如需预览将被删除的内容,建议先加上 --dry-run 参数执行。

安全准则

  • 在确认强制推送告警确属误报之前,不得关闭相关 Issue。
  • 在镜像工作流恢复健康、且备份分支已无必要之前,不得删除 backup/ 分支。
  • 不要假定默认分支为 main;若仓库使用了其他上游默认分支,请显式传入 --branch 或 --upstream 参数。
  • 每次执行写入操作后,均应重新运行 status 进行验证。

相关专题

更多
GitHub官网入口版本汇总
GitHub官网入口版本汇总

本专题整合了GitHub入口版本地址汇总,阅读专题下面的文章了解更多详细内容。

2026.04.02

558

19

github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

2026.01.21

7965

27

git怎么对比两个版本的文件内容
git怎么对比两个版本的文件内容

要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.09

2281

6

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.09

2517

7

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

2023.07.24

714

5

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

2023.07.06

1260

6

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

2023.07.05

3859

9

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

0

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

0

14

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
vscode手册
vscode手册

共0课时 | 0人学习

Git 教程
Git 教程

共21课时 | 7.9万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.8万人学习