feat: adds Provider & GitLab support #2631
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I have added the majority of the code for adding new providers and GitLab support.
Adds a --provider flag. Defaults to github but allows gitlab.
Deprecates some github specific flags. github-release for example. This is now just release.
Adds a provider interface and makes GitHub and Gitlab derive from this.
Adds the abiltiy to set the hostUrl. This is important for being able to generate correct links. Also needed because I use GitLab enterprise so its not default.
Missing:
Backfill errors so it may not work for a mono repository.
Missing something about adding files.
Since none of my use cases needed these I am not sure what to fill in. For the most part it tries to reuse as much GitHub objects as possible since they are actually pretty generic. Lots of code could be consolidated.
To use it you can use the following in gitlab CI/CD. Dont forget to create your own GITLAB_TOKEN. I think you need the api and a couple of write permissions for issues and commits. This just pulls and builds from my branch and runs as normal:
`
build_job:
stage: build
image: node:latest
script: |
git clone -b feature/provider https://github.com/ZeroWiggliness/release-please.git release-please
cd release-please
npm install
npm run compile
rules:
- if: $CI_COMMIT_BRANCH == "main"
`
Fixes #1021 🦕