Add typed zara-github provider with verified merge semantics #509

Open
nsaspy wants to merge 16 commits from rage/50-github-red into main
Owner

Implements #50.

Adds a Zara service plugin with bounded GitHub PR/issue/check/review/repository/commit-status reads and explicit issue/comment/merge mutations. Merge is fail-closed: exact current head, conclusive current-head checks, blocking-review rejection, expected-head SHA on the provider mutation, provider acknowledgement, and post-merge state/head/merge-commit verification are all required.

Secrets remain outside Git/Nix output, tests use a fake provider and no network, and the registry entry makes the existing generated Zara compatibility/Nix gates cover this plugin.

Implements #50. Adds a Zara service plugin with bounded GitHub PR/issue/check/review/repository/commit-status reads and explicit issue/comment/merge mutations. Merge is fail-closed: exact current head, conclusive current-head checks, blocking-review rejection, expected-head SHA on the provider mutation, provider acknowledgement, and post-merge state/head/merge-commit verification are all required. Secrets remain outside Git/Nix output, tests use a fake provider and no network, and the registry entry makes the existing generated Zara compatibility/Nix gates cover this plugin.
Some checks failed
CI / test (pull_request) Failing after 20s
This pull request has changes conflicting with the target branch.
  • plugins.json
  • plugins/zara-github/lib/zara_github/client.py
  • plugins/zara-github/lib/zara_github/config.py
  • plugins/zara-github/lib/zara_github/plugin.py
  • plugins/zara-github/test/test_client.py
  • plugins/zara-github/test/test_config.py
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin rage/50-github-red:rage/50-github-red
git switch rage/50-github-red

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff rage/50-github-red
git switch rage/50-github-red
git rebase main
git switch main
git merge --ff-only rage/50-github-red
git switch rage/50-github-red
git rebase main
git switch main
git merge --no-ff rage/50-github-red
git switch main
git merge --squash rage/50-github-red
git switch main
git merge --ff-only rage/50-github-red
git switch main
git merge rage/50-github-red
git push origin main
Sign in to join this conversation.
No description provided.