glab release upload [TAG] build/myfile-1+2 in path fails with 400 due to +
### Checklist <!-- Please test the latest versions, that will remove the possibility that you see a bug that is fixed in a newer version. --> - [x] I'm using the latest version of the extension (Run `glab --version`) - Extension version: 1.58.0 - [x] Operating system and version: image: gitlab/glab:latest and local ubuntu 22.10 - [x] Gitlab.com or self-managed instance? _gitlab.com - [x] I have performed `glab auth status` to check for authentication issues - [x] Run the command in debug mode (like `DEBUG=true glab mr list`) and attach any useful output ``` DEBUG=true glab release upload RELEASE_25.5.2 "build/plotle-25.5.2+db57.deb#Electron Linux .deb Package2#package" [git remote -v] [git config --get-regexp ^remote\..*\.glab-resolved$] [git remote -v] [git config --get-regexp ^remote\..*\.glab-resolved$] [git remote -v] [git config --get-regexp ^remote\..*\.glab-resolved$] [git remote -v] [git config --get-regexp ^remote\..*\.glab-resolved$] • Validating tag repo=plotle/plotle tag=RELEASE_25.5.2 • Uploading release assets repo=plotle/plotle tag=RELEASE_25.5.2 • Uploading to release file=build/plotle-25.5.2+db57.deb name=plotle-25.5.2+db57.deb x creating release assets failed. error=POST https://gitlab.com/api/v4/projects/plotle%2Fplotle/releases/RELEASE_25%2E5%2E2/assets/links: 400 {message: [Filepath is in an invalid format]} ``` ### Summary If the path contains a "+" the URL filepath will not accept it. Replacing it with "-" works. IMO the tool needs to encode it ('+' in some package version schematics is quite common as far I know, here I used it to denote the database version a release needs) ### Environment The issue is really also in the pipeline: ``` release: stage: release image: gitlab/glab:latest needs: - job: build artifacts: true script: - echo "Uploading artifacts to GitLab Package Registry..." - glab auth login --job-token $CI_JOB_TOKEN - glab release create "${CI_COMMIT_TAG}" - glab release upload "${CI_COMMIT_TAG}" "build/plotle-${FULL_VERSION}.deb#Electron Linux .deb Package#package" - glab release upload "${CI_COMMIT_TAG}" "build/plotle-${FULL_VERSION}.AppImage#other" - glab release upload "${CI_COMMIT_TAG}" "build/plotle-${FULL_VERSION}-installer.exe#Electron Windows Portable#other" - glab release upload "${CI_COMMIT_TAG}" "build/plotle-${FULL_VERSION}-portable.exe#Electron Windows Installer" rules: - if: $CI_COMMIT_TAG =~ /^RELEASE_.*/ ``` ### Steps to reproduce Run the command as given by debug (upload a file with a "+" in it) ### What is the current _bug_ behavior? 400 {message: [Filepath is in an invalid format]} ### What is the expected _correct_ behavior? ✓ Upload succeeded after 37.93s If replacing the + with - it works.. but I really would like a + there ### Relevant logs and/or screenshots See debug run. ### Possible fixes IMHO the URL needs to be encoded I guess.
issue