Releases: staticwire/aurtomator
v0.1.1
Bug-fix release focused on reliability of the AUR push path. No schema or API changes — forks can pull without action.
What's fixed
Concurrent-push ref divergence. When the scheduled cron and a manual workflow_dispatch started within ~1 second of each other, both clones computed the same new version and both pushes succeeded from git's perspective, but AUR's git-daemon ended up with HEAD and refs/heads/master pointing at two different commits. Every subsequent clone landed in detached HEAD and update-pkg.sh died with fatal: You are not currently on a branch.
Two-layer fix:
- Prevention — the workflow now has a
concurrency: group: check-updatesblock withcancel-in-progress: false, so scheduled and manual triggers queue instead of racing. The running pipeline finishes its push; the next run waits its turn. - Self-heal —
update-pkg.shchecksgit symbolic-ref -q HEADafter every clone. If the working copy comes back detached (for any reason, including future causes we haven't hit yet), it re-anchors onorigin/masterbefore touching the PKGBUILD, so the final push is always a clean fast-forward.
What's new
Detailed packages/example.yml.sample. The previous sample only showed github-release. It now documents every strategy inline — required vs optional upstream.* fields, all four github-nightly patterns, and the auto-managed fields (current, last_updated) that users should not edit by hand. The file stays copy-paste ready: the only uncommented config at the top is still the minimal github-release example.
Under the hood
.simplecovadded sobashcovemits Cobertura XML for Codecov.- Two new BATS tests cover the detached-HEAD path (happy path + missing
origin/masteredge case). Suite is now 214 tests, all green.
Upgrading
Nothing required. git pull and you're done.
v0.1.0
Automated AUR package updates from a single GitHub repo. Fork it, drop in your packages, let CI handle the rest.
What it does
- Detects new upstream versions via 13 built-in strategies (GitHub, GitLab, Gitea, PyPI, npm, crates.io, and more)
- Clones your existing AUR package, bumps
pkgver, regenerates checksums and.SRCINFO - Pushes to AUR with optional GPG signing
- Creates GitHub Issues on failure
- Runs hourly via GitHub Actions
Safety features
- PKGBUILD audit blocks split packages,
pkgver()with incompatible strategies, and mixed SKIP/real checksums for remote sources - Source URL validation detects HTML error pages via Content-Type check before downloading
- namcap lint catches PKGBUILD errors before push
- Checksum verification via
makepkg --verifysourceafterupdpkgsums - SSH retry with 3 attempts and connection multiplexing for AUR reliability
Supported package types
- Binary packages (
-bin) with stable download URL patterns - VCS packages (
-git) viagit-lateststrategy - Nightly/prerelease builds (4 patterns) via
github-nightly - Arch-specific sources (
source_x86_64,source_aarch64) - Non-standard tag formats via
tag_version_regex
Limitations
aurtomator only updates pkgver, checksums, and .SRCINFO. It does not build packages or check dependencies. See docs/SUPPORTED-PACKAGES.md for the full breakdown.
Getting started
See README for quick start and docs/SETUP.md for detailed configuration.