/install github-safe-sync
GitHub Safe Sync
Use this skill for repositories that mirror an upstream GitHub repo and preserve local .github workflow files with a safe-sync.yml workflow.
Requirements
- Set
GITHUB_TOKENbefore running the script. - Pass repositories as
owner/repo. - Treat tokens as secrets. Do not write them into the skill or commit them into repo files.
Quick Start
Inspect a mirror repo:
export GITHUB_TOKEN=...
./scripts/github_safe_sync.py status \
--owner grey00758 \
--repo ai-code-board \
--upstream grey0758/ai-code-board
Trigger a manual sync:
export GITHUB_TOKEN=...
./scripts/github_safe_sync.py dispatch \
--owner grey00758 \
--repo ai-code-board
Clean false-positive artifacts after a workflow fix:
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
Workflow
- Inspect the mirror repository with
status. - If the workflow is inactive or the latest run failed, review the repo before dispatching anything.
- If the mirror should sync now, run
dispatch. - If a workflow fix stopped false-positive force-push alerts, run
close-force-push-issuesanddelete-backups. - Re-run
statusto verify the repo is clean.
Interpreting status
effective_state=exact: Mirror and upstream branch heads are identical.effective_state=metadata-ahead: Mirror is only ahead by local.github-only commits. This is normally healthy for safe-sync mirrors.effective_state=behind: Upstream has newer commits and the mirror has not caught up yet.effective_state=local-ahead: Mirror has non-metadata commits that do not exist upstream. Inspect before forcing anything.effective_state=metadata-diverged: Histories differ, but the mirror-only side is metadata-only. This often means the sync workflow logic still needs review.effective_state=diverged: Mirror and upstream both changed in incompatible ways. Treat this as a real sync problem until proven otherwise.
Commands
status
Use status first. It returns JSON with:
- workflow metadata
- latest workflow runs
- count of open force-push alert issues
- count of
backup/branches - optional upstream branch comparison
If the requested upstream branch does not exist, the script falls back to the upstream repo default branch.
dispatch
Use dispatch to trigger workflow_dispatch on the sync workflow. Add --force-sync only when you intentionally want the workflow to ignore the normal no-op path.
close-force-push-issues
Use this only after you have confirmed the force-push alerts were false positives. It closes open issues whose title contains 检测到上游强制推送.
delete-backups
Use this only after you have confirmed the backup branches are noise. Start with --dry-run if you want to preview what would be removed.
Safety Rules
- Do not close force-push alert issues until you have verified the alert was false.
- Do not delete
backup/branches until the mirror workflow is healthy and the backups are no longer needed. - Do not assume
main; pass--branchor--upstreamexplicitly when the repo uses a different upstream default branch. - Re-run
statusafter every write operation.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install github-safe-sync - 安装完成后,直接呼叫该 Skill 的名称或使用
/github-safe-sync触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
GitHub Safe Sync 是什么?
Inspect, trigger, and clean up GitHub mirror repositories that use a safe-sync GitHub Actions workflow. Use when Codex needs to work on repository mirroring... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 193 次。
如何安装 GitHub Safe Sync?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install github-safe-sync」即可一键安装,无需额外配置。
GitHub Safe Sync 是免费的吗?
是的,GitHub Safe Sync 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
GitHub Safe Sync 支持哪些平台?
GitHub Safe Sync 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 GitHub Safe Sync?
由 grey0758(@grey0758)开发并维护,当前版本 v1.0.0。