|
Some checks are pending
crdt_sync_dart tests / test (push) Waiting to run
crdt_sync_flutter tests / test (push) Waiting to run
crdt-sync pre-commit / pre-commit (push) Waiting to run
crdt-sync tests / test (push) Waiting to run
dependency freshness / dependencies on newest stable (push) Waiting to run
design_system tests / test (push) Waiting to run
file length / file-length (push) Waiting to run
freedays pre-commit / pre-commit (push) Waiting to run
freedays tests / test (push) Waiting to run
gatelock pre-commit / pre-commit (push) Waiting to run
gatelock tests / test (push) Waiting to run
github_device_auth tests / test (push) Waiting to run
md-naming / markdown naming convention (push) Waiting to run
music_theory tests / test (push) Waiting to run
palette drift / palette (push) Waiting to run
shared gate tests / gate unit tests (push) Waiting to run
sync_settings_ui tests / test (push) Waiting to run
web_ui tests / test (push) Waiting to run
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AwtowrowDXx6ccmWVPkCaF |
||
|---|---|---|
| .. | ||
| lib | ||
| anubis_gate.py | ||
| publish.sh | ||
| README.md | ||
aur-publish
Hands-off publishing of kuhy's Flutter apps to the AUR.
~/src/utils/aur-publish/publish.sh # wait for registration, then publish
~/src/utils/aur-publish/publish.sh --dry-run # everything except the push
~/src/utils/aur-publish/publish.sh --skip-wait # account already works
~/src/utils/aur-publish/publish.sh --only habit-stack
What it does
- Polls
/registeruntil AUR signup reopens, opens it in a browser and prints the SSH key to paste. Signup is the only manual step — it requires email confirmation. - Waits for
ssh aur@aur.archlinux.orgto authenticate. - Then, unattended, per package: resolve the newest
vX.Y.Ztag → setpkgver→updpkgsums→makepkg -C→namcap→ AUR rule check →pacman -U→ launch check →.SRCINFO→ commit → push.
Every package is built, installed and launched before it is pushed, so a broken package cannot reach the AUR. A package failing any gate is skipped and reported; the others still publish. Safe to re-run.
anubis_gate.py
The AUR sits behind Anubis, which answers HTML
requests with a proof-of-work challenge page carrying HTTP 200. A plain
curl therefore reports 200 for a page that is actually unreachable — which is
exactly how "is registration back?" gets answered wrong. This module solves the
challenge and reports the status of the real page behind it.
python3 anubis_gate.py /register # prints the true status code
AUR rules enforced before pushing
The AUR does not review uploads, but per the submission guidelines "packages
that violate the rules may be deleted without warning". check_aur_rules()
blocks a push on the mechanically checkable ones: # Maintainer: line,
x86_64 in arch, no replaces= (reserved for renames — use conflicts),
not already in an official repo, pkgdesc/url/license present, and
.SRCINFO matching the PKGBUILD.