MarcoIeni / release-plz

Publish Rust crates from CI with a Release PR.
https://release-plz.ieni.dev
Apache License 2.0
768 stars 70 forks source link

Add GitLab support #587

Open MarcoIeni opened 1 year ago

MarcoIeni commented 1 year ago

Motivations

release-plz supports GitHub and Gitea. I'm not familiar GitLab, so I haven't add support for it. However if you want to use release-plz with GitLab, tell me how the integration should work.

Here are the API calls we use for GitHub and Gitea. What's the equivalent in GitLab? Should we create the equivalent of the GitHub action for the GitLab CI?

We need to add support for these commands:

D-J-Harris commented 1 year ago

What is the status of release-pr command not being ready? I see there is some support in core for it

MarcoIeni commented 1 year ago

The support in core is for the release-plz release command. Regarding the release-pr I don't even know how release-plz should work on GitLab, as I'm not familiar with the platform (how PRs look on GitLab?). I also don't plan to work on this, since I don't have a use case for it (see the priority:low tag). Of course, I'm happy to help someone who wants to work on this.

magikmw commented 4 months ago

I'll carve out some time to take a look, at least to provide some gitlab usage knowledge and feedback on what needs to be done for their API.

I do have a specific question - how likely are we to use a dependency specific to gitlab API (if one exists in rust, so far I only used a python implementation)?

MarcoIeni commented 4 months ago

Thanks for that! I would like to avoid using a gitlab library to keep the number of release-plz dependencies low (we don't use libraries for github or gitea as well).

If you want to raise a PR and you want to use a gitlab library for fast-prototyping, feel free. We can remove the dependency later. 👍

mbodmer commented 2 months ago

Suggestion: I think it would make sense for release-plz to embrace API Client libraries like: https://crates.io/crates/gitlab, https://crates.io/crates/github and https://crates.io/crates/gitea for backend support. release-plz does a great job integrating tools and manage the process, but supporting different APIs which can be moving targets shouldn't really be it's job. Also it can only support a subset of eg. auth tokens: https://gitlab.kitware.com/utils/rust-gitlab/-/blob/master/src/auth.rs?ref_type=heads#L50 as it wouldn't make sense to re-implement everything. Alas it would be handy to have it all, as provided by these libraries.

MarcoIeni commented 2 months ago

Reasons why I don't use third party http git clients:

Sorry for the brain dump! I hope it's more clear why I don't use third-party git hosting libraries. I should document this properly in contributing.md 😁 Thank you for the suggestion anyway. I understand it's a controversial topic and there's no right answer

mbodmer commented 2 days ago

1651