From 89d09f032f1ac9bfff36575f08ed316739347f14 Mon Sep 17 00:00:00 2001 From: sanasol Date: Fri, 20 Feb 2026 01:16:50 +0100 Subject: [PATCH] fix: bypass Cloudflare 100MB upload limit for release assets Use direct server IP for Forgejo API calls to avoid Cloudflare proxy rejecting large file uploads (413 Payload Too Large). macOS DMG/ZIP artifacts are ~350MB each. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/release.yml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bbfcffe..e78941a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,6 +6,10 @@ on: - 'v*' workflow_dispatch: +env: + # Upload via direct IP to bypass Cloudflare 100MB upload limit + FORGEJO_API: https://208.69.78.130/api/v1 + jobs: create-release: runs-on: ubuntu-latest @@ -13,7 +17,7 @@ jobs: - uses: actions/checkout@v4 - name: Create Draft Release run: | - curl -s -X POST "https://git.sanhost.net/api/v1/repos/${GITHUB_REPOSITORY}/releases" \ + curl -sk -X POST "${FORGEJO_API}/repos/${GITHUB_REPOSITORY}/releases" \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -H "Content-Type: application/json" \ -d "{\"tag_name\":\"${{ github.ref_name }}\",\"name\":\"${{ github.ref_name }}\",\"body\":\"Release ${{ github.ref_name }}\",\"draft\":true,\"prerelease\":false}" \ @@ -48,12 +52,12 @@ jobs: - name: Upload to Release run: | - RELEASE_ID=$(curl -s "https://git.sanhost.net/api/v1/repos/${GITHUB_REPOSITORY}/releases/tags/${{ github.ref_name }}" \ + RELEASE_ID=$(curl -sk "${FORGEJO_API}/repos/${GITHUB_REPOSITORY}/releases/tags/${{ github.ref_name }}" \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" | python3 -c 'import sys,json; print(json.load(sys.stdin)["id"])') for file in dist/*.exe dist/*.exe.blockmap dist/latest.yml; do [ -f "$file" ] || continue echo "Uploading $file..." - curl -s -X POST "https://git.sanhost.net/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=$(basename $file)" \ + curl -sk -X POST "${FORGEJO_API}/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=$(basename $file)" \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -F "attachment=@${file}" || echo "Failed to upload $file" done @@ -79,12 +83,12 @@ jobs: - name: Upload to Release run: | - RELEASE_ID=$(curl -s "https://git.sanhost.net/api/v1/repos/${GITHUB_REPOSITORY}/releases/tags/${{ github.ref_name }}" \ + RELEASE_ID=$(curl -sk "${FORGEJO_API}/repos/${GITHUB_REPOSITORY}/releases/tags/${{ github.ref_name }}" \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" | python3 -c 'import sys,json; print(json.load(sys.stdin)["id"])') for file in dist/*.dmg dist/*.zip dist/*.blockmap dist/latest-mac.yml; do [ -f "$file" ] || continue echo "Uploading $file..." - curl -s -X POST "https://git.sanhost.net/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=$(basename $file)" \ + curl -sk -X POST "${FORGEJO_API}/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=$(basename $file)" \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -F "attachment=@${file}" || echo "Failed to upload $file" done @@ -109,12 +113,12 @@ jobs: - name: Upload to Release run: | - RELEASE_ID=$(curl -s "https://git.sanhost.net/api/v1/repos/${GITHUB_REPOSITORY}/releases/tags/${{ github.ref_name }}" \ + RELEASE_ID=$(curl -sk "${FORGEJO_API}/repos/${GITHUB_REPOSITORY}/releases/tags/${{ github.ref_name }}" \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" | python3 -c 'import sys,json; print(json.load(sys.stdin)["id"])') for file in dist/*.AppImage dist/*.AppImage.blockmap dist/*.deb dist/*.rpm dist/latest-linux.yml; do [ -f "$file" ] || continue echo "Uploading $file..." - curl -s -X POST "https://git.sanhost.net/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=$(basename $file)" \ + curl -sk -X POST "${FORGEJO_API}/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=$(basename $file)" \ -H "Authorization: token ${{ secrets.RELEASE_TOKEN }}" \ -F "attachment=@${file}" || echo "Failed to upload $file" done