ci(forgejo): put asset name in URL query string, not as curl arg
Le run #102 (re-publication du tag 1.0.6 après le fix jq + bump image v2) a passé le PATCH /releases/10706 (jq a bien extrait l'id racine, plus de 404), mais l'upload d'asset a planté avec un 400 "Missing 'name' parameter". Cause : sur l'appel curl de l'upload d'asset, l'argument `?name=...` était passé en argument positionnel entre `--data-binary @file` et l'URL. curl l'interprète comme un second fichier d'input (un fichier nommé '?name=...'), pas comme un query param, et l'API Forgejo ne voit jamais le name. Fix : concaténer `?name=PostIt.Android.apk` à l'URL directement. L'API Forgejo accepte le name en query string sur POST /releases/{id}/assets.
This commit is contained in:
parent
77fda10347
commit
a4792a7a83
1 changed files with 6 additions and 2 deletions
|
|
@ -306,6 +306,11 @@ jobs:
|
|||
echo "Release id=$RELEASE_ID"
|
||||
|
||||
# 3. Upload l'APK en asset.
|
||||
# Le nom du fichier passe en query string (?name=...), pas
|
||||
# en argument positionnel entre --data-binary et l'URL :
|
||||
# sinon curl l'interprète comme un second fichier d'input
|
||||
# (un fichier nommé '?name=PostIt.Android.apk') et l'API
|
||||
# Forgejo renvoie 400 "Missing 'name' parameter".
|
||||
echo "::group::Upload APK asset"
|
||||
HTTP=$(curl -sS -o /tmp/asset.json -w '%{http_code}' \
|
||||
-X POST \
|
||||
|
|
@ -313,8 +318,7 @@ jobs:
|
|||
-H "Content-Type: application/octet-stream" \
|
||||
-H "Accept: application/json" \
|
||||
--data-binary "@/src/_src/PostIt.Android.apk" \
|
||||
"?name=PostIt.Android.apk" \
|
||||
"$API_BASE/api/v1/repos/$GITHUB_REPOSITORY/releases/$RELEASE_ID/assets")
|
||||
"$API_BASE/api/v1/repos/$GITHUB_REPOSITORY/releases/$RELEASE_ID/assets?name=PostIt.Android.apk")
|
||||
echo "POST asset -> HTTP $HTTP"
|
||||
echo "::endgroup::"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue