Skip to content

Sync unstable from upstream on a schedule - #67

Merged
madolson merged 1 commit into
unstablefrom
add-upstream-sync-job
Sep 16, 2026
Merged

madolson merged 1 commit into
unstablefrom
add-upstream-sync-job

Conversation

@madolson

Copy link
Copy Markdown
Owner

This fork is 66 commits behind valkey-io/valkey and was last synced on 2026-08-31, so the triage batch raised findings against code upstream had already fixed. #62 is one: half of it is a backport of valkey-io/valkey#4653, needed only because the base is stale. This adds a daily job that merges upstream/unstable and pushes it, with no pull request in the loop.

Details

Why a deploy key

The protect-unstable ruleset covers refs/heads/unstable with deletion, non_fast_forward, pull_request and required_status_checks, and had no bypass actors, so nothing could push without a PR.

GitHub Actions cannot be added as a bypass actor on a personal repository:

Actor GitHub Actions integration must be part of the ruleset source or owner organization

RepositoryRole admin is accepted but does not help, because github-actions[bot] holds no repository role. A deploy key is the only actor type that both this repository accepts and the job can authenticate as, so the ruleset now has one bypass actor of type DeployKey, and the job checks out via ssh-key using the UPSTREAM_SYNC_DEPLOY_KEY secret.

Note that GitHub normalises DeployKey bypass to actor_id: null, meaning all deploy keys bypass, not only this one. There is currently exactly one.

Merge, not fast-forward

596da45a0 ("Add AI-driven development workflow") exists only here and must survive: it carries claude-issue.yml, claude-pr.yml, CLAUDE.md and docs/ai-workflow.md. The job tries --ff-only first and falls back to a real merge, so that commit is preserved. All four files are additions, so git merge-tree currently reports no conflicts against upstream/unstable.

Failure behaviour

On conflict the job aborts the merge, fails, and opens or comments on a single Upstream sync needs a manual merge issue rather than opening one per run. Nothing is force-pushed and non_fast_forward is still enforced against everything else.

Consequence worth knowing

Pushing to unstable triggers this repository's copy of the full valkey CI, including ci.yml. A daily sync therefore means a daily CI run on a personal account.

Closes #14.

This was generated by AI but verified, with love, by a human.

Merges valkey-io/valkey unstable into this repo's unstable daily and pushes it
directly, so the fork does not drift and findings are not raised against code
upstream already fixed.

Pushes with a deploy key because the protect-unstable ruleset blocks direct
pushes and a deploy key is the only bypass actor a personal repository accepts.

Signed-off-by: Madelyn Olson <madelyneolson@gmail.com>
@madolson
madolson merged commit 264ccd9 into unstable Sep 16, 2026
32 of 35 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant