forgejo/services
Sebastian Brückner 02dae3f84b
Fix merge base commit for fast-forwarded GitLab PRs (#27825)
Due to a bug in the GitLab API, the diff_refs field is populated in the
response when fetching an individual merge request, but not when
fetching a list of them. That field is used to populate the merge base
commit SHA.
While there is detection for the merge base even when not populated by
the downloader, that detection is not flawless. Specifically, when a
GitLab merge request has a single commit, and gets merged with the
squash strategy, the base branch will be fast-forwarded instead of a
separate squash or merge commit being created. The merge base detection
attempts to find the last commit on the base branch that is also on the
PR branch, but in the fast-forward case that is the PR's only commit.
Assuming the head commit is also the merge base results in the import of
a PR with 0 commits and no diff.

This PR uses the individual merge request endpoint to fetch merge
request data with the diff_refs field. With its data, the base merge
commit can be properly set, which—by not relying on the detection
mentioned above—correctly imports PRs that were "merged" by
fast-forwarding the base branch.

ref: https://gitlab.com/gitlab-org/gitlab/-/issues/29620
2023-10-29 21:29:33 +08:00
..
actions Always delete existing scheduled action tasks (#27662) 2023-10-18 10:34:39 +00:00
agit Penultimate round of db.DefaultContext refactor (#27414) 2023-10-11 04:24:07 +00:00
asymkey Penultimate round of db.DefaultContext refactor (#27414) 2023-10-11 04:24:07 +00:00
attachment Even more db.DefaultContext refactor (#27352) 2023-10-03 10:30:41 +00:00
auth Replace more db.DefaultContext (#27628) 2023-10-15 17:46:06 +02:00
automerge Improve queue and logger context (#24924) 2023-05-26 07:31:55 +00:00
context Another round of db.DefaultContext refactor (#27103) 2023-09-25 13:17:37 +00:00
convert Final round of db.DefaultContext refactor (#27587) 2023-10-14 08:37:24 +00:00
cron Improve retrying index issues (#27554) 2023-10-15 18:56:57 +00:00
externalaccount Final round of db.DefaultContext refactor (#27587) 2023-10-14 08:37:24 +00:00
feed More db.DefaultContext refactor (#27265) 2023-09-29 12:12:54 +00:00
forms Add support for forking single branch (#25821) 2023-09-29 09:48:39 +08:00
gitdiff Even more db.DefaultContext refactor (#27352) 2023-10-03 10:30:41 +00:00
indexer Improve retrying index issues (#27554) 2023-10-15 18:56:57 +00:00
issue Penultimate round of db.DefaultContext refactor (#27414) 2023-10-11 04:24:07 +00:00
lfs Bump github.com/golang-jwt/jwt to v5 (#25975) 2023-07-19 09:57:10 +00:00
mailer Upgrade to golangci-lint@v1.55.0 (#27756) 2023-10-24 02:54:59 +00:00
markup make writing main test easier (#27270) 2023-09-28 01:38:53 +00:00
migrations Fix merge base commit for fast-forwarded GitLab PRs (#27825) 2023-10-29 21:29:33 +08:00
mirror Even more db.DefaultContext refactor (#27352) 2023-10-03 10:30:41 +00:00
notify Update status and code index after changing the default branch (#27018) 2023-09-13 04:43:31 +00:00
org Delete repos of org when purge delete user (#27273) 2023-10-19 13:16:11 +00:00
packages Close all hashed buffers (#27787) 2023-10-25 21:24:24 +02:00
pull Fix poster is not loaded in get default merge message (#27657) 2023-10-17 15:07:23 +00:00
release Even more db.DefaultContext refactor (#27352) 2023-10-03 10:30:41 +00:00
repository Upgrade to golangci-lint@v1.55.0 (#27756) 2023-10-24 02:54:59 +00:00
secrets Refactor secrets modification logic (#26873) 2023-09-05 15:21:02 +00:00
task Fix incorrect ctx usage in defer function (#27740) 2023-10-22 14:12:27 +00:00
uinotification Penultimate round of db.DefaultContext refactor (#27414) 2023-10-11 04:24:07 +00:00
user Delete repos of org when purge delete user (#27273) 2023-10-19 13:16:11 +00:00
webhook Support allowed hosts for webhook to work with proxy (#27655) 2023-10-18 09:44:36 +00:00
wiki Even more db.DefaultContext refactor (#27352) 2023-10-03 10:30:41 +00:00