fix(gitea): document and explain HTTP 422 repo is empty on release create

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Docker Build
2026-05-10 14:37:02 -05:00
parent 5e18c2b766
commit 27d54f15a2
2 changed files with 8 additions and 1 deletions
+2 -1
View File
@@ -77,7 +77,7 @@ CI workflow **Sync release to Gitea** (`.github/workflows/gitea-release-sync.yml
| **`GITEA_BASE_URL`** | `https://git.yourdomain.com` (no trailing slash) |
| **`GITEA_TOKEN`** | Gitea personal access token with permission to manage releases and attachments on the target repo |
| **`GITEA_OWNER`** | Organization or username on Gitea |
| **`GITEA_REPO`** | Repository name (create an empty repo on Gitea first) |
| **`GITEA_REPO`** | Repository name — must already have **at least one commit** (Gitea returns HTTP 422 “repo is empty” for zero-commit repos; push e.g. a README on **`main`** or set **`GITEA_TARGET_REF`** to your default branch) |
**Optional variable** (Settings → Variables): **`GITEA_TARGET_REF`** — default branch/commitish used **only when the workflow must create a new Gitea release** and Gitea needs `target_commitish` (defaults to **`main`** in the upload script if unset).
@@ -103,6 +103,7 @@ CI workflow **Sync release to Gitea** (`.github/workflows/gitea-release-sync.yml
4. **Repo name guard** — Jobs use `if: github.repository == 'Dawnforger/Fractured'`. Forks or renames must change that line or runs are skipped.
5. **Secrets****`GITEA_BASE_URL`**, **`GITEA_TOKEN`**, **`GITEA_OWNER`**, **`GITEA_REPO`** must be set under **Settings → Secrets and variables → Actions**. A failed “Upload to Gitea” step usually prints which is missing.
6. **Actions tab** — Open the latest **Sync release to Gitea** run; a red **build-electron** (old tag without `package-lock.json`, etc.) or **Upload to Gitea** step shows the real error.
7. **HTTP 422 `repo is empty`** — The Gitea repo has **no commits** yet. Push any initial commit (e.g. **Add README** in the Gitea web UI, or `git push` to **`main`**). Optionally set **`GITEA_TARGET_REF`** to match your real default branch if it is not **`main`**.
### Private Gitea token for players
@@ -47,6 +47,12 @@ elif [ "$code" = "404" ]; then
if [ "$code" != "201" ] && [ "$code" != "200" ]; then
echo "Gitea create release failed HTTP $code:" >&2
cat "$REL_JSON" >&2
if [ "$code" = "422" ] && jq -e '.message == "repo is empty"' "$REL_JSON" >/dev/null 2>&1; then
echo >&2
echo "Gitea does not allow releases on a repo with zero commits. Fix: push at least one commit" >&2
echo "to ${GITEA_OWNER}/${GITEA_REPO} (e.g. add README.md on branch ${TARGET} via web UI or git push)," >&2
echo "or set Actions variable GITEA_TARGET_REF to an existing default branch name." >&2
fi
exit 1
fi
rel_id=$(jq -r '.id' "$REL_JSON")