You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
forgejo/services/migrations
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
8 months ago
..
codebase.go Replace `interface{}` with `any` (#25686) 1 year ago
codebase_test.go Implement FSFE REUSE for golang files (#21840) 2 years ago
common.go Replace `interface{}` with `any` (#25686) 1 year ago
dump.go Next round of `db.DefaultContext` refactor (#27089) 10 months ago
error.go Update github.com/google/go-github to v53 (#25157) 1 year ago
git.go Implement FSFE REUSE for golang files (#21840) 2 years ago
gitbucket.go Rewrite logger system (#24726) 1 year ago
gitea_downloader.go Rewrite logger system (#24726) 1 year ago
gitea_downloader_test.go Implement FSFE REUSE for golang files (#21840) 2 years ago
gitea_uploader.go Final round of `db.DefaultContext` refactor (#27587) 9 months ago
gitea_uploader_test.go Final round of `db.DefaultContext` refactor (#27587) 9 months ago
github.go Fix panic when migrating a repo from GitHub with issues (#25246) 1 year ago
github_test.go Implement FSFE REUSE for golang files (#21840) 2 years ago
gitlab.go Fix merge base commit for fast-forwarded GitLab PRs (#27825) 8 months ago
gitlab_test.go GitLab migration: Sanitize response for reaction list (#25054) 1 year ago
gogs.go Rewrite logger system (#24726) 1 year ago
gogs_test.go Implement FSFE REUSE for golang files (#21840) 2 years ago
http_client.go Implement FSFE REUSE for golang files (#21840) 2 years ago
main_test.go make writing main test easier (#27270) 10 months ago
migrate.go Next round of `db.DefaultContext` refactor (#27089) 10 months ago
migrate_test.go Implement FSFE REUSE for golang files (#21840) 2 years ago
onedev.go Replace `interface{}` with `any` (#25686) 1 year ago
onedev_test.go Implement FSFE REUSE for golang files (#21840) 2 years ago
restore.go Implement FSFE REUSE for golang files (#21840) 2 years ago
update.go Final round of `db.DefaultContext` refactor (#27587) 9 months ago