diff --git a/.forgejo/workflows/debug-api.yml b/.forgejo/workflows/debug-api.yml new file mode 100644 index 0000000..9ec4360 --- /dev/null +++ b/.forgejo/workflows/debug-api.yml @@ -0,0 +1,89 @@ +name: debug-api + +on: + push: + branches: ['*'] + workflow_dispatch: + +jobs: + test-api: + runs-on: ubuntu-latest + container: catthehacker/ubuntu:act-latest + + steps: + - name: System info + run: | + echo "=== curl version ===" + curl --version + echo "" + echo "=== wget version ===" + wget --version | head -3 + echo "" + echo "=== DNS check ===" + cat /etc/resolv.conf + echo "" + echo "=== route to git.dungeon.red ===" + getent hosts git.dungeon.red || echo "getent failed" + + - name: Test GET (no auth) + run: | + echo "=== Simple GET to API root ===" + curl -v https://git.dungeon.red/api/v1/version 2>&1 | head -50 + + - name: Test GET with auth + env: + FORGEJO_TOKEN: ${{ secrets.FORGEJO_TOKEN }} + run: | + echo "Token length: ${#FORGEJO_TOKEN}" + echo "" + echo "=== GET /user with auth ===" + curl -v -H "Authorization: token ${FORGEJO_TOKEN}" \ + https://git.dungeon.red/api/v1/user 2>&1 | head -60 + + - name: Test POST with file body + env: + FORGEJO_TOKEN: ${{ secrets.FORGEJO_TOKEN }} + run: | + echo '{"tag_name":"debug-test","name":"debug-test"}' > /tmp/body.json + cat /tmp/body.json + echo "" + echo "=== POST with --data-binary @file ===" + curl -v --http1.1 -X POST \ + -H "Authorization: token ${FORGEJO_TOKEN}" \ + -H "Content-Type: application/json" \ + --data-binary @/tmp/body.json \ + "https://git.dungeon.red/api/v1/repos/${{ github.repository }}/releases" 2>&1 | head -80 + + - name: Test POST with inline data + env: + FORGEJO_TOKEN: ${{ secrets.FORGEJO_TOKEN }} + run: | + echo "=== POST with -d inline ===" + curl -v --http1.1 -X POST \ + -H "Authorization: token ${FORGEJO_TOKEN}" \ + -H "Content-Type: application/json" \ + -d '{"tag_name":"debug-test2","name":"debug-test2"}' \ + "https://git.dungeon.red/api/v1/repos/${{ github.repository }}/releases" 2>&1 | head -80 + + - name: Test with --trace + env: + FORGEJO_TOKEN: ${{ secrets.FORGEJO_TOKEN }} + run: | + echo "=== curl --trace (raw bytes) ===" + curl --trace /tmp/trace.txt --http1.1 -X POST \ + -H "Authorization: token ${FORGEJO_TOKEN}" \ + -H "Content-Type: application/json" \ + -d '{"tag_name":"debug-test3","name":"debug-test3"}' \ + "https://git.dungeon.red/api/v1/repos/${{ github.repository }}/releases" 2>&1 || true + echo "=== trace output ===" + cat /tmp/trace.txt | head -100 + + - name: Test wget POST + env: + FORGEJO_TOKEN: ${{ secrets.FORGEJO_TOKEN }} + run: | + echo "=== wget POST ===" + wget -O- -S --header="Authorization: token ${FORGEJO_TOKEN}" \ + --header="Content-Type: application/json" \ + --post-data='{"tag_name":"debug-test4","name":"debug-test4"}' \ + "https://git.dungeon.red/api/v1/repos/${{ github.repository }}/releases" 2>&1 | head -60 || true diff --git a/.forgejo/workflows/release.yml b/.forgejo/workflows/release.yml.disabled similarity index 100% rename from .forgejo/workflows/release.yml rename to .forgejo/workflows/release.yml.disabled