[GITEA] Avoid conflicts of issue and PR numbers in GitLab migration (#1790)
Closes #1789. The bug was due to the fact that GitLab does not guarantee that issue numbers are created sequentially: some identifiers can be skipped. Therefore, the new pull requests numbers should not be offset by the number of issues, but by the maximum issue number. See for instance https://gitlab.com/troyengel/archbuild/-/issues/?sort=created_date&state=all&first_page_size=20, where there is only a singe issue with number "2". Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/1790 Co-authored-by: Antonin Delpeuch <antonin@delpeuch.eu> Co-committed-by: Antonin Delpeuch <antonin@delpeuch.eu> (cherry picked from commit 2c185c39fe600041701d5f59cb1076a788815cb4) (cherry picked from commit 8f68dc4c9c2f0acab55d59a496b0f141befad969) (cherry picked from commit 7e932b7fca1b119e7cc646183c383ba51a5f1d14) (cherry picked from commit 6bbe75ecf8ac502bd42ff5765e6e7733f290a54e) (cherry picked from commit b18c2e8d658c3311e0a299696bd1b6612c52ef13) Conflicts: services/migrations/gitlab.go https://codeberg.org/forgejo/forgejo/pulls/2075 (cherry picked from commit abc129c762b3c1a992ad5c67adf62d8336eadbbe) (cherry picked from commit 28884fac10c455a9f40bebd961fca40afd4a749e) (cherry picked from commit 5f528dd85fa6705c60d15bce616a46f00df1b85b) (cherry picked from commit cb9b8a31b25b27fa5e386b20f02e532bbf3462a2) (cherry picked from commit 97f02df163e2b4e23b82e23e5ef57a586b17f021) (cherry picked from commit 4611e10e6acef9185e1f8c84e63d1fe95fcf6436)
This commit is contained in:
parent
01b0ead664
commit
51fab30187
9 changed files with 251 additions and 0 deletions
|
@ -334,6 +334,49 @@ func TestGitlabDownloadRepo(t *testing.T) {
|
||||||
}, rvs)
|
}, rvs)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGitlabSkippedIssueNumber(t *testing.T) {
|
||||||
|
// If a GitLab access token is provided, this test will make HTTP requests to the live gitlab.com instance.
|
||||||
|
// When doing so, the responses from gitlab.com will be saved as test data files.
|
||||||
|
// If no access token is available, those cached responses will be used instead.
|
||||||
|
gitlabPersonalAccessToken := os.Getenv("GITLAB_READ_TOKEN")
|
||||||
|
fixturePath := "./testdata/gitlab/skipped_issue_number"
|
||||||
|
server := unittest.NewMockWebServer(t, "https://gitlab.com", fixturePath, gitlabPersonalAccessToken != "")
|
||||||
|
defer server.Close()
|
||||||
|
|
||||||
|
downloader, err := NewGitlabDownloader(context.Background(), server.URL, "troyengel/archbuild", "", "", gitlabPersonalAccessToken)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("NewGitlabDownloader is nil: %v", err)
|
||||||
|
}
|
||||||
|
repo, err := downloader.GetRepoInfo()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assertRepositoryEqual(t, &base.Repository{
|
||||||
|
Name: "archbuild",
|
||||||
|
Owner: "troyengel",
|
||||||
|
Description: "Arch packaging and build files",
|
||||||
|
CloneURL: server.URL + "/troyengel/archbuild.git",
|
||||||
|
OriginalURL: server.URL + "/troyengel/archbuild",
|
||||||
|
DefaultBranch: "master",
|
||||||
|
}, repo)
|
||||||
|
|
||||||
|
issues, isEnd, err := downloader.GetIssues(1, 10)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.True(t, isEnd)
|
||||||
|
|
||||||
|
// the only issue in this repository has number 2
|
||||||
|
assert.EqualValues(t, 1, len(issues))
|
||||||
|
assert.EqualValues(t, 2, issues[0].Number)
|
||||||
|
assert.EqualValues(t, "vpn unlimited errors", issues[0].Title)
|
||||||
|
|
||||||
|
prs, _, err := downloader.GetPullRequests(1, 10)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
// the only merge request in this repository has number 1,
|
||||||
|
// but we offset it by the maximum issue number so it becomes
|
||||||
|
// pull request 3 in Forgejo
|
||||||
|
assert.EqualValues(t, 1, len(prs))
|
||||||
|
assert.EqualValues(t, 3, prs[0].Number)
|
||||||
|
assert.EqualValues(t, "Review", prs[0].Title)
|
||||||
|
}
|
||||||
|
|
||||||
func gitlabClientMockSetup(t *testing.T) (*http.ServeMux, *httptest.Server, *gitlab.Client) {
|
func gitlabClientMockSetup(t *testing.T) (*http.ServeMux, *httptest.Server, *gitlab.Client) {
|
||||||
// mux is the HTTP request multiplexer used with the test server.
|
// mux is the HTTP request multiplexer used with the test server.
|
||||||
mux := http.NewServeMux()
|
mux := http.NewServeMux()
|
||||||
|
|
22
services/migrations/testdata/gitlab/skipped_issue_number/_api_v4_projects_6590996
vendored
Normal file
22
services/migrations/testdata/gitlab/skipped_issue_number/_api_v4_projects_6590996
vendored
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
X-Runtime: 0.088022
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Ratelimit-Observed: 3
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
Etag: W/"03ce4f6ce1c1e8c5a31df8a44cf2fbdd"
|
||||||
|
Gitlab-Lb: haproxy-main-11-lb-gprd
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"b57b226f741f9140a1fea54f65cb5cfd","version":"1"}
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Ratelimit-Remaining: 1997
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:24:53 GMT
|
||||||
|
Set-Cookie: _cfuvid=V0ToiOTUW0XbtWq7BirwVNfL1_YP1POMrLBnDSEWS0M-1701332633965-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
Content-Type: application/json
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
Ratelimit-Reset: 1701332693
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
|
||||||
|
{"id":6590996,"description":"Arch packaging and build files","name":"archbuild","name_with_namespace":"Troy Engel / archbuild","path":"archbuild","path_with_namespace":"troyengel/archbuild","created_at":"2018-06-03T22:53:17.388Z","default_branch":"master","tag_list":[],"topics":[],"ssh_url_to_repo":"git@gitlab.com:troyengel/archbuild.git","http_url_to_repo":"https://gitlab.com/troyengel/archbuild.git","web_url":"https://gitlab.com/troyengel/archbuild","readme_url":"https://gitlab.com/troyengel/archbuild/-/blob/master/README.md","forks_count":0,"avatar_url":null,"star_count":0,"last_activity_at":"2020-12-13T18:09:32.071Z","namespace":{"id":1452515,"name":"Troy Engel","path":"troyengel","kind":"user","full_path":"troyengel","parent_id":null,"avatar_url":"https://secure.gravatar.com/avatar/b226c267929f1bcfcc446e75a025591c?s=80\u0026d=identicon","web_url":"https://gitlab.com/troyengel"},"container_registry_image_prefix":"registry.gitlab.com/troyengel/archbuild","_links":{"self":"https://gitlab.com/api/v4/projects/6590996","issues":"https://gitlab.com/api/v4/projects/6590996/issues","merge_requests":"https://gitlab.com/api/v4/projects/6590996/merge_requests","repo_branches":"https://gitlab.com/api/v4/projects/6590996/repository/branches","labels":"https://gitlab.com/api/v4/projects/6590996/labels","events":"https://gitlab.com/api/v4/projects/6590996/events","members":"https://gitlab.com/api/v4/projects/6590996/members","cluster_agents":"https://gitlab.com/api/v4/projects/6590996/cluster_agents"},"packages_enabled":null,"empty_repo":false,"archived":true,"visibility":"public","owner":{"id":1215848,"username":"troyengel","name":"Troy Engel","state":"active","locked":false,"avatar_url":"https://secure.gravatar.com/avatar/b226c267929f1bcfcc446e75a025591c?s=80\u0026d=identicon","web_url":"https://gitlab.com/troyengel"},"resolve_outdated_diff_discussions":false,"issues_enabled":true,"merge_requests_enabled":true,"wiki_enabled":true,"jobs_enabled":true,"snippets_enabled":true,"container_registry_enabled":true,"service_desk_enabled":true,"can_create_merge_request_in":false,"issues_access_level":"enabled","repository_access_level":"enabled","merge_requests_access_level":"enabled","forking_access_level":"enabled","wiki_access_level":"enabled","builds_access_level":"enabled","snippets_access_level":"enabled","pages_access_level":"enabled","analytics_access_level":"enabled","container_registry_access_level":"enabled","security_and_compliance_access_level":"private","releases_access_level":"enabled","environments_access_level":"enabled","feature_flags_access_level":"enabled","infrastructure_access_level":"enabled","monitor_access_level":"enabled","model_experiments_access_level":"enabled","emails_disabled":false,"emails_enabled":true,"shared_runners_enabled":true,"lfs_enabled":false,"creator_id":1215848,"import_status":"finished","open_issues_count":0,"description_html":"\u003cp data-sourcepos=\"1:1-1:30\" dir=\"auto\"\u003eArch packaging and build files\u003c/p\u003e","updated_at":"2022-07-13T21:32:12.624Z","ci_config_path":null,"public_jobs":true,"shared_with_groups":[],"only_allow_merge_if_pipeline_succeeds":false,"allow_merge_on_skipped_pipeline":null,"request_access_enabled":false,"only_allow_merge_if_all_discussions_are_resolved":false,"remove_source_branch_after_merge":null,"printing_merge_request_link_enabled":true,"merge_method":"merge","squash_option":"default_off","enforce_auth_checks_on_uploads":true,"suggestion_commit_message":null,"merge_commit_template":null,"squash_commit_template":null,"issue_branch_template":null,"autoclose_referenced_issues":true,"external_authorization_classification_label":"","requirements_enabled":false,"requirements_access_level":"enabled","security_and_compliance_enabled":false,"compliance_frameworks":[],"permissions":{"project_access":null,"group_access":null}}
|
|
@ -0,0 +1,29 @@
|
||||||
|
Link: <https://gitlab.com/api/v4/projects/6590996/issues?id=6590996&order_by=created_at&page=1&per_page=10&sort=asc&state=all&with_labels_details=false>; rel="first", <https://gitlab.com/api/v4/projects/6590996/issues?id=6590996&order_by=created_at&page=1&per_page=10&sort=asc&state=all&with_labels_details=false>; rel="last"
|
||||||
|
Ratelimit-Observed: 4
|
||||||
|
Ratelimit-Remaining: 1996
|
||||||
|
Gitlab-Lb: haproxy-main-04-lb-gprd
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
X-Next-Page:
|
||||||
|
Ratelimit-Reset: 1701332694
|
||||||
|
Etag: W/"f50a70d0fc1465a289d231f80806ced7"
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"47afd74254dd7946d2b2bded87448c60","version":"1"}
|
||||||
|
X-Page: 1
|
||||||
|
X-Prev-Page:
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:24:54 GMT
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
X-Total: 1
|
||||||
|
X-Total-Pages: 1
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Content-Type: application/json
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
Set-Cookie: _cfuvid=YDWTZ5VoSuLBDZgKsBnXMyYxz.0rHJ9TBYXv5zBj24Q-1701332634294-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
X-Per-Page: 10
|
||||||
|
X-Runtime: 0.179458
|
||||||
|
|
||||||
|
[{"id":11201348,"iid":2,"project_id":6590996,"title":"vpn unlimited errors","description":"updated version to 2.8.0, build and tried running `vpnu-arch`:\n\n```\nvpn-unlimited: /usr/lib/libcurl.so.3: no version information available (required by /usr/lib/libvpnu_rpc.so.1)\nvpn-unlimited: /usr/lib/libssl.so.1.0.0: no version information available (required by /usr/lib/libvpnu_enc.so.1)\nvpn-unlimited: symbol lookup error: /usr/lib/libvpnu_rpc.so.1: undefined symbol: _ZNK4Json5Value8asStringEv\n```\n","state":"closed","created_at":"2016-03-26T16:41:12.000Z","updated_at":"2016-03-27T12:19:27.000Z","closed_at":null,"closed_by":null,"labels":[],"milestone":null,"assignees":[],"author":{"id":10273,"username":"brauliobo","name":"Bráulio Bhavamitra","state":"active","locked":false,"avatar_url":"https://secure.gravatar.com/avatar/cd3fcb7a417c8acb989fc320b604a2a8?s=80\u0026d=identicon","web_url":"https://gitlab.com/brauliobo"},"type":"ISSUE","assignee":null,"user_notes_count":1,"merge_requests_count":0,"upvotes":0,"downvotes":0,"due_date":null,"confidential":false,"discussion_locked":null,"issue_type":"issue","web_url":"https://gitlab.com/troyengel/archbuild/-/issues/2","time_stats":{"time_estimate":0,"total_time_spent":0,"human_time_estimate":null,"human_total_time_spent":null},"task_completion_status":{"count":0,"completed_count":0},"blocking_issues_count":0,"has_tasks":true,"task_status":"0 of 0 checklist items completed","_links":{"self":"https://gitlab.com/api/v4/projects/6590996/issues/2","notes":"https://gitlab.com/api/v4/projects/6590996/issues/2/notes","award_emoji":"https://gitlab.com/api/v4/projects/6590996/issues/2/award_emoji","project":"https://gitlab.com/api/v4/projects/6590996","closed_as_duplicate_of":null},"references":{"short":"#2","relative":"#2","full":"troyengel/archbuild#2"},"severity":"UNKNOWN","moved_to_id":null,"service_desk_reply_to":null}]
|
|
@ -0,0 +1,31 @@
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
Gitlab-Lb: haproxy-main-25-lb-gprd
|
||||||
|
X-Total-Pages: 1
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Ratelimit-Observed: 5
|
||||||
|
Ratelimit-Remaining: 1995
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"eeab46d836341bd4cb18e3d2e82abf97","version":"1"}
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
Accept-Ranges: bytes
|
||||||
|
Content-Type: application/json
|
||||||
|
X-Page: 1
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
X-Prev-Page:
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
X-Total: 0
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:24:54 GMT
|
||||||
|
Link: <https://gitlab.com/api/v4/projects/6590996/issues/2/award_emoji?id=6590996&issue_iid=2&page=1&per_page=10>; rel="first", <https://gitlab.com/api/v4/projects/6590996/issues/2/award_emoji?id=6590996&issue_iid=2&page=1&per_page=10>; rel="last"
|
||||||
|
X-Per-Page: 10
|
||||||
|
Set-Cookie: _cfuvid=c5HuTPxOuSXdHSuVrXQALS.uV7WvAYfc5Mc_143EAB8-1701332634513-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
Content-Length: 2
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
Etag: W/"4f53cda18c2baa0c0354bb5f9a3ecbe5"
|
||||||
|
X-Runtime: 0.069269
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Ratelimit-Reset: 1701332694
|
||||||
|
X-Next-Page:
|
||||||
|
|
||||||
|
[]
|
|
@ -0,0 +1,29 @@
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
X-Prev-Page:
|
||||||
|
Ratelimit-Reset: 1701332694
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Ratelimit-Observed: 6
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:24:54 GMT
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
Content-Type: application/json
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
Etag: W/"1a50811aa3cccb2e6a404a976422a83a"
|
||||||
|
X-Total: 1
|
||||||
|
Ratelimit-Remaining: 1994
|
||||||
|
Set-Cookie: _cfuvid=u.zumTkG1ayCnh_OwrT9Q1Fl3MXV9Gh98W.ma4WN2Xs-1701332634745-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
Link: <https://gitlab.com/api/v4/projects/6590996/merge_requests?id=6590996&order_by=created_at&page=1&per_page=10&sort=desc&state=all&view=simple&with_labels_details=false&with_merge_status_recheck=false>; rel="first", <https://gitlab.com/api/v4/projects/6590996/merge_requests?id=6590996&order_by=created_at&page=1&per_page=10&sort=desc&state=all&view=simple&with_labels_details=false&with_merge_status_recheck=false>; rel="last"
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
X-Page: 1
|
||||||
|
X-Total-Pages: 1
|
||||||
|
Gitlab-Lb: haproxy-main-05-lb-gprd
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"907f9e1f94131ea7a6d1405100a8cc4b","version":"1"}
|
||||||
|
X-Next-Page:
|
||||||
|
X-Per-Page: 10
|
||||||
|
X-Runtime: 0.078413
|
||||||
|
|
||||||
|
[{"id":10518914,"iid":1,"project_id":6590996,"title":"Review","description":"*Created by: cgtx*\n\n### remove patch from makedepends\n- patch is in base-devel\n- The group base-devel is assumed to be already installed when building with makepkg. Members of \"base-devel\" should not be included in makedepends arrays.\n- https://wiki.archlinux.org/index.php/Pkgbuild#makedepends\n### remove python2 from makedepends\n- python2 is a dependency of python2-setuptools. It is redundant to list it again.\n- You do not need to list packages that your software depends on if other packages your software depends on already have those packages listed in their dependency.\n- https://wiki.archlinux.org/index.php/Pkgbuild#depends\n### more simple find/delete command\n- just because\n","state":"merged","created_at":"2014-12-12T15:01:32.000Z","updated_at":"2014-12-12T15:28:38.000Z","web_url":"https://gitlab.com/troyengel/archbuild/-/merge_requests/1"}]
|
|
@ -0,0 +1,22 @@
|
||||||
|
Ratelimit-Observed: 7
|
||||||
|
Set-Cookie: _cfuvid=_b9GQEo3CBPMs9QmGE89dBdOmbSTfnYjZlzValULQPs-1701332635000-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:24:54 GMT
|
||||||
|
Gitlab-Lb: haproxy-main-50-lb-gprd
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"da44cd0303a4e62cc52ed8de3b2adf14","version":"1"}
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Ratelimit-Remaining: 1993
|
||||||
|
Etag: W/"f6299e7e884cb8df8109256c086eb4e7"
|
||||||
|
X-Runtime: 0.107573
|
||||||
|
Content-Type: application/json
|
||||||
|
Ratelimit-Reset: 1701332694
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
|
||||||
|
{"id":10518914,"iid":1,"project_id":6590996,"title":"Review","description":"*Created by: cgtx*\n\n### remove patch from makedepends\n- patch is in base-devel\n- The group base-devel is assumed to be already installed when building with makepkg. Members of \"base-devel\" should not be included in makedepends arrays.\n- https://wiki.archlinux.org/index.php/Pkgbuild#makedepends\n### remove python2 from makedepends\n- python2 is a dependency of python2-setuptools. It is redundant to list it again.\n- You do not need to list packages that your software depends on if other packages your software depends on already have those packages listed in their dependency.\n- https://wiki.archlinux.org/index.php/Pkgbuild#depends\n### more simple find/delete command\n- just because\n","state":"merged","created_at":"2014-12-12T15:01:32.000Z","updated_at":"2014-12-12T15:28:38.000Z","merged_by":null,"merge_user":null,"merged_at":null,"closed_by":null,"closed_at":null,"target_branch":"master","source_branch":"cgtx:review","user_notes_count":1,"upvotes":0,"downvotes":0,"author":{"id":1215848,"username":"troyengel","name":"Troy Engel","state":"active","locked":false,"avatar_url":"https://secure.gravatar.com/avatar/b226c267929f1bcfcc446e75a025591c?s=80\u0026d=identicon","web_url":"https://gitlab.com/troyengel"},"assignees":[],"assignee":null,"reviewers":[],"source_project_id":6590996,"target_project_id":6590996,"labels":[],"draft":false,"work_in_progress":false,"milestone":null,"merge_when_pipeline_succeeds":false,"merge_status":"cannot_be_merged","detailed_merge_status":"not_open","sha":"9006fee398299beed8f5d5086f8e6008ffc02280","merge_commit_sha":null,"squash_commit_sha":null,"discussion_locked":null,"should_remove_source_branch":null,"force_remove_source_branch":null,"prepared_at":"2014-12-12T15:01:32.000Z","reference":"!1","references":{"short":"!1","relative":"!1","full":"troyengel/archbuild!1"},"web_url":"https://gitlab.com/troyengel/archbuild/-/merge_requests/1","time_stats":{"time_estimate":0,"total_time_spent":0,"human_time_estimate":null,"human_total_time_spent":null},"squash":false,"squash_on_merge":false,"task_completion_status":{"count":0,"completed_count":0},"has_conflicts":true,"blocking_discussions_resolved":true,"approvals_before_merge":null,"subscribed":false,"changes_count":"1","latest_build_started_at":null,"latest_build_finished_at":null,"first_deployed_to_production_at":null,"pipeline":null,"head_pipeline":null,"diff_refs":{"base_sha":"6edcf8fc09f6c44213c892f5108d34a5255a47e1","head_sha":"9006fee398299beed8f5d5086f8e6008ffc02280","start_sha":"6edcf8fc09f6c44213c892f5108d34a5255a47e1"},"merge_error":null,"first_contribution":false,"user":{"can_merge":false}}
|
|
@ -0,0 +1,31 @@
|
||||||
|
Link: <https://gitlab.com/api/v4/projects/6590996/merge_requests/1/award_emoji?id=6590996&merge_request_iid=1&page=1&per_page=10>; rel="first", <https://gitlab.com/api/v4/projects/6590996/merge_requests/1/award_emoji?id=6590996&merge_request_iid=1&page=1&per_page=10>; rel="last"
|
||||||
|
Set-Cookie: _cfuvid=qK29tijoyp0AdVoHf9Lqjc8Y28h4jplJDW9hOFLfq28-1701332635229-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
Etag: W/"4f53cda18c2baa0c0354bb5f9a3ecbe5"
|
||||||
|
Ratelimit-Observed: 8
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
Content-Length: 2
|
||||||
|
Gitlab-Lb: haproxy-main-16-lb-gprd
|
||||||
|
X-Total: 0
|
||||||
|
Ratelimit-Remaining: 1992
|
||||||
|
Ratelimit-Reset: 1701332695
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
Content-Type: application/json
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
X-Next-Page:
|
||||||
|
X-Page: 1
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Accept-Ranges: bytes
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
X-Per-Page: 10
|
||||||
|
X-Total-Pages: 1
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:24:55 GMT
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"eb59d63fed23cdbec69308570cc49c3e","version":"1"}
|
||||||
|
X-Runtime: 0.065972
|
||||||
|
X-Prev-Page:
|
||||||
|
|
||||||
|
[]
|
22
services/migrations/testdata/gitlab/skipped_issue_number/_api_v4_projects_troyengel%2Farchbuild
vendored
Normal file
22
services/migrations/testdata/gitlab/skipped_issue_number/_api_v4_projects_troyengel%2Farchbuild
vendored
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:24:53 GMT
|
||||||
|
Gitlab-Lb: haproxy-main-41-lb-gprd
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
Set-Cookie: _cfuvid=r78xThY2IPR6QvHnea1t_L7DbvuQp4.HWOiG1cKTWUg-1701332633720-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"4c3e0f8b5858454b6e138ecae9902a8d","version":"1"}
|
||||||
|
X-Runtime: 0.097047
|
||||||
|
Ratelimit-Observed: 2
|
||||||
|
Ratelimit-Remaining: 1998
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
Etag: W/"03ce4f6ce1c1e8c5a31df8a44cf2fbdd"
|
||||||
|
Content-Type: application/json
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
Ratelimit-Reset: 1701332693
|
||||||
|
|
||||||
|
{"id":6590996,"description":"Arch packaging and build files","name":"archbuild","name_with_namespace":"Troy Engel / archbuild","path":"archbuild","path_with_namespace":"troyengel/archbuild","created_at":"2018-06-03T22:53:17.388Z","default_branch":"master","tag_list":[],"topics":[],"ssh_url_to_repo":"git@gitlab.com:troyengel/archbuild.git","http_url_to_repo":"https://gitlab.com/troyengel/archbuild.git","web_url":"https://gitlab.com/troyengel/archbuild","readme_url":"https://gitlab.com/troyengel/archbuild/-/blob/master/README.md","forks_count":0,"avatar_url":null,"star_count":0,"last_activity_at":"2020-12-13T18:09:32.071Z","namespace":{"id":1452515,"name":"Troy Engel","path":"troyengel","kind":"user","full_path":"troyengel","parent_id":null,"avatar_url":"https://secure.gravatar.com/avatar/b226c267929f1bcfcc446e75a025591c?s=80\u0026d=identicon","web_url":"https://gitlab.com/troyengel"},"container_registry_image_prefix":"registry.gitlab.com/troyengel/archbuild","_links":{"self":"https://gitlab.com/api/v4/projects/6590996","issues":"https://gitlab.com/api/v4/projects/6590996/issues","merge_requests":"https://gitlab.com/api/v4/projects/6590996/merge_requests","repo_branches":"https://gitlab.com/api/v4/projects/6590996/repository/branches","labels":"https://gitlab.com/api/v4/projects/6590996/labels","events":"https://gitlab.com/api/v4/projects/6590996/events","members":"https://gitlab.com/api/v4/projects/6590996/members","cluster_agents":"https://gitlab.com/api/v4/projects/6590996/cluster_agents"},"packages_enabled":null,"empty_repo":false,"archived":true,"visibility":"public","owner":{"id":1215848,"username":"troyengel","name":"Troy Engel","state":"active","locked":false,"avatar_url":"https://secure.gravatar.com/avatar/b226c267929f1bcfcc446e75a025591c?s=80\u0026d=identicon","web_url":"https://gitlab.com/troyengel"},"resolve_outdated_diff_discussions":false,"issues_enabled":true,"merge_requests_enabled":true,"wiki_enabled":true,"jobs_enabled":true,"snippets_enabled":true,"container_registry_enabled":true,"service_desk_enabled":true,"can_create_merge_request_in":false,"issues_access_level":"enabled","repository_access_level":"enabled","merge_requests_access_level":"enabled","forking_access_level":"enabled","wiki_access_level":"enabled","builds_access_level":"enabled","snippets_access_level":"enabled","pages_access_level":"enabled","analytics_access_level":"enabled","container_registry_access_level":"enabled","security_and_compliance_access_level":"private","releases_access_level":"enabled","environments_access_level":"enabled","feature_flags_access_level":"enabled","infrastructure_access_level":"enabled","monitor_access_level":"enabled","model_experiments_access_level":"enabled","emails_disabled":false,"emails_enabled":true,"shared_runners_enabled":true,"lfs_enabled":false,"creator_id":1215848,"import_status":"finished","open_issues_count":0,"description_html":"\u003cp data-sourcepos=\"1:1-1:30\" dir=\"auto\"\u003eArch packaging and build files\u003c/p\u003e","updated_at":"2022-07-13T21:32:12.624Z","ci_config_path":null,"public_jobs":true,"shared_with_groups":[],"only_allow_merge_if_pipeline_succeeds":false,"allow_merge_on_skipped_pipeline":null,"request_access_enabled":false,"only_allow_merge_if_all_discussions_are_resolved":false,"remove_source_branch_after_merge":null,"printing_merge_request_link_enabled":true,"merge_method":"merge","squash_option":"default_off","enforce_auth_checks_on_uploads":true,"suggestion_commit_message":null,"merge_commit_template":null,"squash_commit_template":null,"issue_branch_template":null,"autoclose_referenced_issues":true,"external_authorization_classification_label":"","requirements_enabled":false,"requirements_access_level":"enabled","security_and_compliance_enabled":false,"compliance_frameworks":[],"permissions":{"project_access":null,"group_access":null}}
|
22
services/migrations/testdata/gitlab/skipped_issue_number/_api_v4_version
vendored
Normal file
22
services/migrations/testdata/gitlab/skipped_issue_number/_api_v4_version
vendored
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
Ratelimit-Observed: 1
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"aa75720bd9c597c7f2f886a4042d1f80","version":"1"}
|
||||||
|
Etag: W/"4e5c0a031c3aacb6ba0a3c19e67d7592"
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:24:53 GMT
|
||||||
|
X-Runtime: 0.039899
|
||||||
|
Ratelimit-Remaining: 1999
|
||||||
|
Set-Cookie: _cfuvid=7OAEitQ3J0BOxrXk2pMBApFg1KFnz5aBVqOY7mHwLRk-1701332633452-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Ratelimit-Reset: 1701332693
|
||||||
|
Gitlab-Lb: haproxy-main-39-lb-gprd
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{"version":"16.7.0-pre","revision":"acd848a9228","kas":{"enabled":true,"externalUrl":"wss://kas.gitlab.com","version":"v16.7.0-rc2"},"enterprise":true}
|
Loading…
Reference in a new issue