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