Codeberg can return null as part of requested_reviewers (presumably
because that user has been deleted). Handle that case, and also for
assignees since we're at it.
The auto-no-squash option is added to:
* backport all the commits when the pull/merge request has been merged
* backport the squashed commit otherwise
It is equivalent to dynamically adjust the value of the no-squash
option, depending on the context.
The no-squash option is kept for backward compatibility for a single
use case: backporting the merged commit instead of backporting the
commits of the pull/merge request request.
Detecting if a pull/merge request was squashed or not depends on the
underlying forge:
* Forgejo / GitHub: use the API to count the number of parents
* GitLab: if the squash_commit_sha is set, the merge request was
squashed
If the pull/merge request is open, always backport all the commits it
contains.
Fixes: https://github.com/kiegroup/git-backporting/issues/113
Co-authored-by: Andrea Lamparelli <a.lamparelli95@gmail.com>
Due to off-by-one error in GitLabMapper, --no-squash was not effective
on an MR containing single commit. Fix by using the same condition as
GitHubMapper.