on: schedule: - cron: "7 23 * * *" workflow_dispatch: jobs: update: runs-on: nix-latest steps: - name: Checkout uses: actions/checkout@v6 - name: Update flake.lock run: nix flake update - name: Create PR if changed env: GITEA_TOKEN: ${{ secrets.KLAATU_TOKEN }} GITEA_URL: https://src.thehellings.com REPO: greg/mingw-sword-build run: | if git diff --quiet flake.lock; then echo "flake.lock unchanged, nothing to do" exit 0 fi BRANCH="auto/update-flake-lock-$(date +%Y%m%d)" git config user.email "klaatu@thehellings.com" git config user.name "klaatu" git checkout -b "$BRANCH" git add flake.lock git commit -m "chore: update flake.lock $(date +%Y-%m-%d)" # Push branch using token auth git remote set-url origin "https://klaatu:${GITEA_TOKEN}@${GITEA_URL#https://}/${REPO}.git" git push origin "$BRANCH" # Create PR via Gitea API curl -s -X POST \ -H "Authorization: token ${GITEA_TOKEN}" \ -H "Content-Type: application/json" \ "${GITEA_URL}/api/v1/repos/${REPO}/pulls" \ -d "{ \"title\": \"chore: update flake.lock $(date +%Y-%m-%d)\", \"head\": \"$BRANCH\", \"base\": \"main\", \"body\": \"Automated weekly flake.lock update.\\n\\nGenerated by Gitea Actions.\", \"assignees\": [\"greg\"] }"