[GITEA] Enable mocked HTTP responses for GitLab migration test
Fix gitlab migration unit test Closes #1837. The differences in dates can be explained by commite19b9653ea
, which changed the order in which "created_date" and "updated_date" are considered. (cherry picked from commitb0bba20aa4
) Mock HTTP requests in GitLab migration test This introduces a new utility which can be added to other tests making HTTP calls to a live service, to cache the responses of this service in the repository. (cherry picked from commit52053b1389
) Enable mocked HTTP responses for GitLab migration test (cherry picked from commit19cefc4de2
) Simplify HTTP mocking utility in unit tests Follow-up to https://codeberg.org/forgejo/forgejo/pulls/1841 (cherry picked from commitca517c8bb4
) (cherry picked from commitb227e0dd6b
)
This commit is contained in:
parent
9fe856a29a
commit
6cc9d06556
24 changed files with 708 additions and 22 deletions
|
@ -118,6 +118,8 @@ package "code.gitea.io/gitea/models/unittest"
|
||||||
func LoadFixtures
|
func LoadFixtures
|
||||||
func Copy
|
func Copy
|
||||||
func CopyDir
|
func CopyDir
|
||||||
|
func NewMockWebServer
|
||||||
|
func NormalizedFullPath
|
||||||
func FixturesDir
|
func FixturesDir
|
||||||
func fatalTestError
|
func fatalTestError
|
||||||
func InitSettings
|
func InitSettings
|
||||||
|
|
113
models/unittest/mock_http.go
Normal file
113
models/unittest/mock_http.go
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
// Copyright 2017 The Forgejo Authors. All rights reserved.
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
package unittest
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"net/http"
|
||||||
|
"net/http/httptest"
|
||||||
|
"net/url"
|
||||||
|
"os"
|
||||||
|
"slices"
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"code.gitea.io/gitea/modules/log"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Mocks HTTP responses of a third-party service (such as GitHub, GitLab…)
|
||||||
|
// This has two modes:
|
||||||
|
// - live mode: the requests made to the mock HTTP server are transmitted to the live
|
||||||
|
// service, and responses are saved as test data files
|
||||||
|
// - test mode: the responses to requests to the mock HTTP server are read from the
|
||||||
|
// test data files
|
||||||
|
func NewMockWebServer(t *testing.T, liveServerBaseURL, testDataDir string, liveMode bool) *httptest.Server {
|
||||||
|
mockServerBaseURL := ""
|
||||||
|
ignoredHeaders := []string{"cf-ray", "server", "date", "report-to", "nel", "x-request-id"}
|
||||||
|
|
||||||
|
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
path := NormalizedFullPath(r.URL)
|
||||||
|
log.Info("Mock HTTP Server: got request for path %s", r.URL.Path)
|
||||||
|
// TODO check request method (support POST?)
|
||||||
|
fixturePath := fmt.Sprintf("%s/%s", testDataDir, strings.ReplaceAll(path, "/", "_"))
|
||||||
|
if liveMode {
|
||||||
|
liveURL := fmt.Sprintf("%s%s", liveServerBaseURL, path)
|
||||||
|
|
||||||
|
request, err := http.NewRequest(r.Method, liveURL, nil)
|
||||||
|
assert.NoError(t, err, "constructing an HTTP request to %s failed", liveURL)
|
||||||
|
for headerName, headerValues := range r.Header {
|
||||||
|
// do not pass on the encoding: let the Transport of the HTTP client handle that for us
|
||||||
|
if strings.ToLower(headerName) != "accept-encoding" {
|
||||||
|
for _, headerValue := range headerValues {
|
||||||
|
request.Header.Add(headerName, headerValue)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
response, err := http.DefaultClient.Do(request)
|
||||||
|
assert.NoError(t, err, "HTTP request to %s failed: %s", liveURL)
|
||||||
|
|
||||||
|
fixture, err := os.Create(fixturePath)
|
||||||
|
assert.NoError(t, err, "failed to open the fixture file %s for writing", fixturePath)
|
||||||
|
defer fixture.Close()
|
||||||
|
fixtureWriter := bufio.NewWriter(fixture)
|
||||||
|
|
||||||
|
for headerName, headerValues := range response.Header {
|
||||||
|
for _, headerValue := range headerValues {
|
||||||
|
if !slices.Contains(ignoredHeaders, strings.ToLower(headerName)) {
|
||||||
|
_, err := fixtureWriter.WriteString(fmt.Sprintf("%s: %s\n", headerName, headerValue))
|
||||||
|
assert.NoError(t, err, "writing the header of the HTTP response to the fixture file failed")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_, err = fixtureWriter.WriteString("\n")
|
||||||
|
assert.NoError(t, err, "writing the header of the HTTP response to the fixture file failed")
|
||||||
|
fixtureWriter.Flush()
|
||||||
|
|
||||||
|
log.Info("Mock HTTP Server: writing response to %s", fixturePath)
|
||||||
|
_, err = io.Copy(fixture, response.Body)
|
||||||
|
assert.NoError(t, err, "writing the body of the HTTP response to %s failed", liveURL)
|
||||||
|
|
||||||
|
err = fixture.Sync()
|
||||||
|
assert.NoError(t, err, "writing the body of the HTTP response to the fixture file failed")
|
||||||
|
}
|
||||||
|
|
||||||
|
fixture, err := os.ReadFile(fixturePath)
|
||||||
|
assert.NoError(t, err, "missing mock HTTP response: "+fixturePath)
|
||||||
|
|
||||||
|
w.WriteHeader(http.StatusOK)
|
||||||
|
|
||||||
|
// replace any mention of the live HTTP service by the mocked host
|
||||||
|
stringFixture := strings.ReplaceAll(string(fixture), liveServerBaseURL, mockServerBaseURL)
|
||||||
|
// parse back the fixture file into a series of HTTP headers followed by response body
|
||||||
|
lines := strings.Split(stringFixture, "\n")
|
||||||
|
for idx, line := range lines {
|
||||||
|
colonIndex := strings.Index(line, ": ")
|
||||||
|
if colonIndex != -1 {
|
||||||
|
w.Header().Set(line[0:colonIndex], line[colonIndex+2:])
|
||||||
|
} else {
|
||||||
|
// we reached the end of the headers (empty line), so what follows is the body
|
||||||
|
responseBody := strings.Join(lines[idx+1:], "\n")
|
||||||
|
_, err := w.Write([]byte(responseBody))
|
||||||
|
assert.NoError(t, err, "writing the body of the HTTP response failed")
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
mockServerBaseURL = server.URL
|
||||||
|
return server
|
||||||
|
}
|
||||||
|
|
||||||
|
func NormalizedFullPath(url *url.URL) string {
|
||||||
|
// TODO normalize path (remove trailing slash?)
|
||||||
|
// TODO normalize RawQuery (order query parameters?)
|
||||||
|
if len(url.Query()) == 0 {
|
||||||
|
return url.EscapedPath()
|
||||||
|
}
|
||||||
|
return fmt.Sprintf("%s?%s", url.EscapedPath(), url.RawQuery)
|
||||||
|
}
|
|
@ -13,6 +13,7 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"code.gitea.io/gitea/models/unittest"
|
||||||
"code.gitea.io/gitea/modules/json"
|
"code.gitea.io/gitea/modules/json"
|
||||||
base "code.gitea.io/gitea/modules/migration"
|
base "code.gitea.io/gitea/modules/migration"
|
||||||
|
|
||||||
|
@ -21,18 +22,15 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestGitlabDownloadRepo(t *testing.T) {
|
func TestGitlabDownloadRepo(t *testing.T) {
|
||||||
// Skip tests if Gitlab token is not found
|
// 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")
|
gitlabPersonalAccessToken := os.Getenv("GITLAB_READ_TOKEN")
|
||||||
if gitlabPersonalAccessToken == "" {
|
fixturePath := "./testdata/gitlab/full_download"
|
||||||
t.Skip("skipped test because GITLAB_READ_TOKEN was not in the environment")
|
server := unittest.NewMockWebServer(t, "https://gitlab.com", fixturePath, gitlabPersonalAccessToken != "")
|
||||||
}
|
defer server.Close()
|
||||||
|
|
||||||
resp, err := http.Get("https://gitlab.com/gitea/test_repo")
|
downloader, err := NewGitlabDownloader(context.Background(), server.URL, "gitea/test_repo", "", "", gitlabPersonalAccessToken)
|
||||||
if err != nil || resp.StatusCode != http.StatusOK {
|
|
||||||
t.Skipf("Can't access test repo, skipping %s", t.Name())
|
|
||||||
}
|
|
||||||
|
|
||||||
downloader, err := NewGitlabDownloader(context.Background(), "https://gitlab.com", "gitea/test_repo", "", "", gitlabPersonalAccessToken)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("NewGitlabDownloader is nil: %v", err)
|
t.Fatalf("NewGitlabDownloader is nil: %v", err)
|
||||||
}
|
}
|
||||||
|
@ -43,8 +41,8 @@ func TestGitlabDownloadRepo(t *testing.T) {
|
||||||
Name: "test_repo",
|
Name: "test_repo",
|
||||||
Owner: "",
|
Owner: "",
|
||||||
Description: "Test repository for testing migration from gitlab to gitea",
|
Description: "Test repository for testing migration from gitlab to gitea",
|
||||||
CloneURL: "https://gitlab.com/gitea/test_repo.git",
|
CloneURL: server.URL + "/gitea/test_repo.git",
|
||||||
OriginalURL: "https://gitlab.com/gitea/test_repo",
|
OriginalURL: server.URL + "/gitea/test_repo",
|
||||||
DefaultBranch: "master",
|
DefaultBranch: "master",
|
||||||
}, repo)
|
}, repo)
|
||||||
|
|
||||||
|
@ -281,17 +279,17 @@ func TestGitlabDownloadRepo(t *testing.T) {
|
||||||
UserName: "real6543",
|
UserName: "real6543",
|
||||||
Content: "tada",
|
Content: "tada",
|
||||||
}},
|
}},
|
||||||
PatchURL: "https://gitlab.com/gitea/test_repo/-/merge_requests/2.patch",
|
PatchURL: server.URL + "/gitea/test_repo/-/merge_requests/2.patch",
|
||||||
Head: base.PullRequestBranch{
|
Head: base.PullRequestBranch{
|
||||||
Ref: "feat/test",
|
Ref: "feat/test",
|
||||||
CloneURL: "https://gitlab.com/gitea/test_repo/-/merge_requests/2",
|
CloneURL: server.URL + "/gitea/test_repo/-/merge_requests/2",
|
||||||
SHA: "9f733b96b98a4175276edf6a2e1231489c3bdd23",
|
SHA: "9f733b96b98a4175276edf6a2e1231489c3bdd23",
|
||||||
RepoName: "test_repo",
|
RepoName: "test_repo",
|
||||||
OwnerName: "lafriks",
|
OwnerName: "lafriks",
|
||||||
},
|
},
|
||||||
Base: base.PullRequestBranch{
|
Base: base.PullRequestBranch{
|
||||||
Ref: "master",
|
Ref: "master",
|
||||||
SHA: "",
|
SHA: "c59c9b451acca9d106cc19d61d87afe3fbbb8b83",
|
||||||
OwnerName: "lafriks",
|
OwnerName: "lafriks",
|
||||||
RepoName: "test_repo",
|
RepoName: "test_repo",
|
||||||
},
|
},
|
||||||
|
@ -309,16 +307,16 @@ func TestGitlabDownloadRepo(t *testing.T) {
|
||||||
assertReviewsEqual(t, []*base.Review{
|
assertReviewsEqual(t, []*base.Review{
|
||||||
{
|
{
|
||||||
IssueIndex: 1,
|
IssueIndex: 1,
|
||||||
ReviewerID: 4102996,
|
ReviewerID: 527793,
|
||||||
ReviewerName: "zeripath",
|
ReviewerName: "axifive",
|
||||||
CreatedAt: time.Date(2019, 11, 28, 16, 2, 8, 377000000, time.UTC),
|
CreatedAt: time.Date(2019, 11, 28, 8, 54, 41, 34000000, time.UTC),
|
||||||
State: "APPROVED",
|
State: "APPROVED",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
IssueIndex: 1,
|
IssueIndex: 1,
|
||||||
ReviewerID: 527793,
|
ReviewerID: 4102996,
|
||||||
ReviewerName: "axifive",
|
ReviewerName: "zeripath",
|
||||||
CreatedAt: time.Date(2019, 11, 28, 16, 2, 8, 377000000, time.UTC),
|
CreatedAt: time.Date(2019, 11, 28, 8, 54, 41, 34000000, time.UTC),
|
||||||
State: "APPROVED",
|
State: "APPROVED",
|
||||||
},
|
},
|
||||||
}, rvs)
|
}, rvs)
|
||||||
|
@ -330,7 +328,7 @@ func TestGitlabDownloadRepo(t *testing.T) {
|
||||||
IssueIndex: 2,
|
IssueIndex: 2,
|
||||||
ReviewerID: 4575606,
|
ReviewerID: 4575606,
|
||||||
ReviewerName: "real6543",
|
ReviewerName: "real6543",
|
||||||
CreatedAt: time.Date(2020, 4, 19, 19, 24, 21, 108000000, time.UTC),
|
CreatedAt: time.Date(2019, 11, 28, 15, 56, 54, 108000000, time.UTC),
|
||||||
State: "APPROVED",
|
State: "APPROVED",
|
||||||
},
|
},
|
||||||
}, rvs)
|
}, rvs)
|
||||||
|
|
22
services/migrations/testdata/gitlab/full_download/_api_v4_projects_15578026
vendored
Normal file
22
services/migrations/testdata/gitlab/full_download/_api_v4_projects_15578026
vendored
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:45:46 GMT
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
Set-Cookie: _cfuvid=TkY5Br2q4C67LJ2jZWlgdQaosj3Z4aI81Qb27PNKXfo-1701333886606-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
Etag: W/"3cacfe29f44a69e84a577337eac55d89"
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
Ratelimit-Remaining: 1996
|
||||||
|
Gitlab-Lb: haproxy-main-29-lb-gprd
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"291f87cd975a51a7b756806ce7b53e2e","version":"1"}
|
||||||
|
Ratelimit-Observed: 4
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
Ratelimit-Reset: 1701333946
|
||||||
|
Content-Type: application/json
|
||||||
|
X-Runtime: 0.101081
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
|
||||||
|
{"id":15578026,"description":"Test repository for testing migration from gitlab to gitea","name":"test_repo","name_with_namespace":"gitea / test_repo","path":"test_repo","path_with_namespace":"gitea/test_repo","created_at":"2019-11-28T08:20:33.019Z","default_branch":"master","tag_list":["migration","test"],"topics":["migration","test"],"ssh_url_to_repo":"git@gitlab.com:gitea/test_repo.git","http_url_to_repo":"https://gitlab.com/gitea/test_repo.git","web_url":"https://gitlab.com/gitea/test_repo","readme_url":"https://gitlab.com/gitea/test_repo/-/blob/master/README.md","forks_count":1,"avatar_url":null,"star_count":0,"last_activity_at":"2020-04-19T19:46:04.527Z","namespace":{"id":3181312,"name":"gitea","path":"gitea","kind":"group","full_path":"gitea","parent_id":null,"avatar_url":"/uploads/-/system/group/avatar/3181312/gitea.png","web_url":"https://gitlab.com/groups/gitea"},"container_registry_image_prefix":"registry.gitlab.com/gitea/test_repo","_links":{"self":"https://gitlab.com/api/v4/projects/15578026","issues":"https://gitlab.com/api/v4/projects/15578026/issues","merge_requests":"https://gitlab.com/api/v4/projects/15578026/merge_requests","repo_branches":"https://gitlab.com/api/v4/projects/15578026/repository/branches","labels":"https://gitlab.com/api/v4/projects/15578026/labels","events":"https://gitlab.com/api/v4/projects/15578026/events","members":"https://gitlab.com/api/v4/projects/15578026/members","cluster_agents":"https://gitlab.com/api/v4/projects/15578026/cluster_agents"},"packages_enabled":true,"empty_repo":false,"archived":false,"visibility":"public","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":true,"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":true,"creator_id":1241334,"import_status":"none","open_issues_count":0,"description_html":"\u003cp data-sourcepos=\"1:1-1:58\" dir=\"auto\"\u003eTest repository for testing migration from gitlab to gitea\u003c/p\u003e","updated_at":"2022-08-26T19:41:46.691Z","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":true,"only_allow_merge_if_all_discussions_are_resolved":false,"remove_source_branch_after_merge":true,"printing_merge_request_link_enabled":true,"merge_method":"ff","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 @@
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
Gitlab-Lb: haproxy-main-24-lb-gprd
|
||||||
|
Content-Type: application/json
|
||||||
|
X-Per-Page: 2
|
||||||
|
X-Prev-Page:
|
||||||
|
Set-Cookie: _cfuvid=N.nfy5eIdFH5lXhsnMyEbeBkoxabcl1SVeyyP0_NrdE-1701333887790-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
X-Next-Page:
|
||||||
|
X-Total-Pages: 1
|
||||||
|
Etag: W/"4c0531a3595f741f229f5a105e013b95"
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"b2eca136986f016d946685fb99287f1c","version":"1"}
|
||||||
|
Ratelimit-Observed: 8
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:45:47 GMT
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Ratelimit-Remaining: 1992
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
X-Total: 2
|
||||||
|
X-Page: 1
|
||||||
|
X-Runtime: 0.178587
|
||||||
|
Ratelimit-Reset: 1701333947
|
||||||
|
Link: <https://gitlab.com/api/v4/projects/15578026/issues?id=15578026&order_by=created_at&page=1&per_page=2&sort=asc&state=all&with_labels_details=false>; rel="first", <https://gitlab.com/api/v4/projects/15578026/issues?id=15578026&order_by=created_at&page=1&per_page=2&sort=asc&state=all&with_labels_details=false>; rel="last"
|
||||||
|
|
||||||
|
[{"id":27687675,"iid":1,"project_id":15578026,"title":"Please add an animated gif icon to the merge button","description":"I just want the merge button to hurt my eyes a little. :stuck_out_tongue_closed_eyes:","state":"closed","created_at":"2019-11-28T08:43:35.459Z","updated_at":"2019-11-28T08:46:23.304Z","closed_at":"2019-11-28T08:46:23.275Z","closed_by":{"id":1241334,"username":"lafriks","name":"Lauris BH","state":"active","locked":false,"avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1241334/avatar.png","web_url":"https://gitlab.com/lafriks"},"labels":["bug","discussion"],"milestone":{"id":1082926,"iid":1,"project_id":15578026,"title":"1.0.0","description":"","state":"closed","created_at":"2019-11-28T08:42:30.301Z","updated_at":"2019-11-28T15:57:52.401Z","due_date":null,"start_date":null,"expired":false,"web_url":"https://gitlab.com/gitea/test_repo/-/milestones/1"},"assignees":[],"author":{"id":1241334,"username":"lafriks","name":"Lauris BH","state":"active","locked":false,"avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1241334/avatar.png","web_url":"https://gitlab.com/lafriks"},"type":"ISSUE","assignee":null,"user_notes_count":0,"merge_requests_count":0,"upvotes":1,"downvotes":0,"due_date":null,"confidential":false,"discussion_locked":null,"issue_type":"issue","web_url":"https://gitlab.com/gitea/test_repo/-/issues/1","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/15578026/issues/1","notes":"https://gitlab.com/api/v4/projects/15578026/issues/1/notes","award_emoji":"https://gitlab.com/api/v4/projects/15578026/issues/1/award_emoji","project":"https://gitlab.com/api/v4/projects/15578026","closed_as_duplicate_of":null},"references":{"short":"#1","relative":"#1","full":"gitea/test_repo#1"},"severity":"UNKNOWN","moved_to_id":null,"service_desk_reply_to":null},{"id":27687706,"iid":2,"project_id":15578026,"title":"Test issue","description":"This is test issue 2, do not touch!","state":"closed","created_at":"2019-11-28T08:44:46.277Z","updated_at":"2019-11-28T08:45:44.987Z","closed_at":"2019-11-28T08:45:44.959Z","closed_by":{"id":1241334,"username":"lafriks","name":"Lauris BH","state":"active","locked":false,"avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1241334/avatar.png","web_url":"https://gitlab.com/lafriks"},"labels":["duplicate"],"milestone":{"id":1082927,"iid":2,"project_id":15578026,"title":"1.1.0","description":"","state":"active","created_at":"2019-11-28T08:42:44.575Z","updated_at":"2019-11-28T08:42:44.575Z","due_date":null,"start_date":null,"expired":false,"web_url":"https://gitlab.com/gitea/test_repo/-/milestones/2"},"assignees":[],"author":{"id":1241334,"username":"lafriks","name":"Lauris BH","state":"active","locked":false,"avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1241334/avatar.png","web_url":"https://gitlab.com/lafriks"},"type":"ISSUE","assignee":null,"user_notes_count":2,"merge_requests_count":0,"upvotes":1,"downvotes":1,"due_date":null,"confidential":false,"discussion_locked":null,"issue_type":"issue","web_url":"https://gitlab.com/gitea/test_repo/-/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/15578026/issues/2","notes":"https://gitlab.com/api/v4/projects/15578026/issues/2/notes","award_emoji":"https://gitlab.com/api/v4/projects/15578026/issues/2/award_emoji","project":"https://gitlab.com/api/v4/projects/15578026","closed_as_duplicate_of":null},"references":{"short":"#2","relative":"#2","full":"gitea/test_repo#2"},"severity":"UNKNOWN","moved_to_id":null,"service_desk_reply_to":null}]
|
|
@ -0,0 +1,29 @@
|
||||||
|
X-Total-Pages: 1
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
X-Runtime: 0.052748
|
||||||
|
X-Total: 2
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
Link: <https://gitlab.com/api/v4/projects/15578026/issues/1/award_emoji?id=15578026&issue_iid=1&page=1&per_page=2>; rel="first", <https://gitlab.com/api/v4/projects/15578026/issues/1/award_emoji?id=15578026&issue_iid=1&page=1&per_page=2>; rel="last"
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"22fc215ac386644c9cb8736b652cf702","version":"1"}
|
||||||
|
X-Per-Page: 2
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Ratelimit-Reset: 1701333947
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
Ratelimit-Remaining: 1991
|
||||||
|
Ratelimit-Observed: 9
|
||||||
|
X-Next-Page:
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:45:47 GMT
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
Gitlab-Lb: haproxy-main-43-lb-gprd
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
Etag: W/"69c922434ed11248c864d157eb8eabfc"
|
||||||
|
Content-Type: application/json
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
X-Page: 1
|
||||||
|
X-Prev-Page:
|
||||||
|
Set-Cookie: _cfuvid=POpffkskz4lvLcv2Fhjp7lF3MsmIOugWDzFGtb3ZUig-1701333887995-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
|
||||||
|
[{"id":3009580,"name":"thumbsup","user":{"id":1241334,"username":"lafriks","name":"Lauris BH","state":"active","locked":false,"avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1241334/avatar.png","web_url":"https://gitlab.com/lafriks"},"created_at":"2019-11-28T08:43:40.322Z","updated_at":"2019-11-28T08:43:40.322Z","awardable_id":27687675,"awardable_type":"Issue","url":null},{"id":3009585,"name":"open_mouth","user":{"id":1241334,"username":"lafriks","name":"Lauris BH","state":"active","locked":false,"avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1241334/avatar.png","web_url":"https://gitlab.com/lafriks"},"created_at":"2019-11-28T08:44:01.902Z","updated_at":"2019-11-28T08:44:01.902Z","awardable_id":27687675,"awardable_type":"Issue","url":null}]
|
|
@ -0,0 +1,31 @@
|
||||||
|
Content-Type: application/json
|
||||||
|
Content-Length: 2
|
||||||
|
X-Next-Page:
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"6b9bc368e2cdc69a1b8e7d2dff7546c5","version":"1"}
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Ratelimit-Reset: 1701333948
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
X-Per-Page: 2
|
||||||
|
X-Total: 2
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
Etag: W/"4f53cda18c2baa0c0354bb5f9a3ecbe5"
|
||||||
|
Link: <https://gitlab.com/api/v4/projects/15578026/issues/1/award_emoji?id=15578026&issue_iid=1&page=1&per_page=2>; rel="first", <https://gitlab.com/api/v4/projects/15578026/issues/1/award_emoji?id=15578026&issue_iid=1&page=1&per_page=2>; rel="last"
|
||||||
|
X-Runtime: 0.069944
|
||||||
|
Ratelimit-Remaining: 1990
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:45:48 GMT
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
X-Prev-Page:
|
||||||
|
X-Total-Pages: 1
|
||||||
|
Ratelimit-Observed: 10
|
||||||
|
Gitlab-Lb: haproxy-main-17-lb-gprd
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
Accept-Ranges: bytes
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
X-Page: 2
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
Set-Cookie: _cfuvid=vcfsxezcg_2Kdh8xD5coOU_uxQIH1in.6BsRttrSIYg-1701333888217-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
|
||||||
|
[]
|
|
@ -0,0 +1,29 @@
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
Etag: W/"5fdbcbf64f34ba0e74ce9dd8d6e0efe3"
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
X-Per-Page: 2
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
Set-Cookie: _cfuvid=NLtUZdQlWvWiXr4L8Zfc555FowZOCxJlA0pAOAEkNvg-1701333888445-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
X-Runtime: 0.075612
|
||||||
|
Ratelimit-Reset: 1701333948
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:45:48 GMT
|
||||||
|
X-Page: 1
|
||||||
|
X-Prev-Page:
|
||||||
|
X-Total-Pages: 3
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
Ratelimit-Observed: 11
|
||||||
|
Gitlab-Lb: haproxy-main-09-lb-gprd
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
Ratelimit-Remaining: 1989
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
Link: <https://gitlab.com/api/v4/projects/15578026/issues/2/award_emoji?id=15578026&issue_iid=2&page=2&per_page=2>; rel="next", <https://gitlab.com/api/v4/projects/15578026/issues/2/award_emoji?id=15578026&issue_iid=2&page=1&per_page=2>; rel="first", <https://gitlab.com/api/v4/projects/15578026/issues/2/award_emoji?id=15578026&issue_iid=2&page=3&per_page=2>; rel="last"
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"a69709cf552479bc5f5f3e4e1f808790","version":"1"}
|
||||||
|
X-Next-Page: 2
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Content-Type: application/json
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
X-Total: 6
|
||||||
|
|
||||||
|
[{"id":3009627,"name":"thumbsup","user":{"id":1241334,"username":"lafriks","name":"Lauris BH","state":"active","locked":false,"avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1241334/avatar.png","web_url":"https://gitlab.com/lafriks"},"created_at":"2019-11-28T08:46:42.657Z","updated_at":"2019-11-28T08:46:42.657Z","awardable_id":27687706,"awardable_type":"Issue","url":null},{"id":3009628,"name":"thumbsdown","user":{"id":1241334,"username":"lafriks","name":"Lauris BH","state":"active","locked":false,"avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1241334/avatar.png","web_url":"https://gitlab.com/lafriks"},"created_at":"2019-11-28T08:46:43.471Z","updated_at":"2019-11-28T08:46:43.471Z","awardable_id":27687706,"awardable_type":"Issue","url":null}]
|
|
@ -0,0 +1,29 @@
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:45:48 GMT
|
||||||
|
X-Total: 6
|
||||||
|
Set-Cookie: _cfuvid=E5GyZy0rB2zrRH0ewMyrJd1wBrt7A2sGNmOHTiWwbYk-1701333888703-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
X-Next-Page: 3
|
||||||
|
X-Page: 2
|
||||||
|
Link: <https://gitlab.com/api/v4/projects/15578026/issues/2/award_emoji?id=15578026&issue_iid=2&page=1&per_page=2>; rel="prev", <https://gitlab.com/api/v4/projects/15578026/issues/2/award_emoji?id=15578026&issue_iid=2&page=3&per_page=2>; rel="next", <https://gitlab.com/api/v4/projects/15578026/issues/2/award_emoji?id=15578026&issue_iid=2&page=1&per_page=2>; rel="first", <https://gitlab.com/api/v4/projects/15578026/issues/2/award_emoji?id=15578026&issue_iid=2&page=3&per_page=2>; rel="last"
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"41e59fb2e78f5e68518b81bd4ff3bb1b","version":"1"}
|
||||||
|
X-Prev-Page: 1
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Gitlab-Lb: haproxy-main-26-lb-gprd
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
Etag: W/"d16c513b32212d9286fce6f53340c1cf"
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
X-Per-Page: 2
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Ratelimit-Reset: 1701333948
|
||||||
|
Content-Type: application/json
|
||||||
|
X-Runtime: 0.105758
|
||||||
|
Ratelimit-Remaining: 1988
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
X-Total-Pages: 3
|
||||||
|
Ratelimit-Observed: 12
|
||||||
|
|
||||||
|
[{"id":3009632,"name":"laughing","user":{"id":1241334,"username":"lafriks","name":"Lauris BH","state":"active","locked":false,"avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1241334/avatar.png","web_url":"https://gitlab.com/lafriks"},"created_at":"2019-11-28T08:47:14.381Z","updated_at":"2019-11-28T08:47:14.381Z","awardable_id":27687706,"awardable_type":"Issue","url":null},{"id":3009634,"name":"tada","user":{"id":1241334,"username":"lafriks","name":"Lauris BH","state":"active","locked":false,"avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1241334/avatar.png","web_url":"https://gitlab.com/lafriks"},"created_at":"2019-11-28T08:47:18.254Z","updated_at":"2019-11-28T08:47:18.254Z","awardable_id":27687706,"awardable_type":"Issue","url":null}]
|
|
@ -0,0 +1,29 @@
|
||||||
|
Content-Type: application/json
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Link: <https://gitlab.com/api/v4/projects/15578026/issues/2/award_emoji?id=15578026&issue_iid=2&page=2&per_page=2>; rel="prev", <https://gitlab.com/api/v4/projects/15578026/issues/2/award_emoji?id=15578026&issue_iid=2&page=1&per_page=2>; rel="first", <https://gitlab.com/api/v4/projects/15578026/issues/2/award_emoji?id=15578026&issue_iid=2&page=3&per_page=2>; rel="last"
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
Etag: W/"165d37bf09a54bb31f4619cca8722cb4"
|
||||||
|
Ratelimit-Observed: 13
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
Set-Cookie: _cfuvid=W6F2uJSFkB3Iyl27_xtklVvP4Z_nSsjPqytClHPW9H8-1701333888913-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
X-Page: 3
|
||||||
|
X-Total-Pages: 3
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:45:48 GMT
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"b805751aeb6f562dff684cec34dfdc0b","version":"1"}
|
||||||
|
X-Per-Page: 2
|
||||||
|
X-Prev-Page: 2
|
||||||
|
X-Runtime: 0.061943
|
||||||
|
Gitlab-Lb: haproxy-main-11-lb-gprd
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
X-Total: 6
|
||||||
|
Ratelimit-Remaining: 1987
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
X-Next-Page:
|
||||||
|
Ratelimit-Reset: 1701333948
|
||||||
|
|
||||||
|
[{"id":3009636,"name":"confused","user":{"id":1241334,"username":"lafriks","name":"Lauris BH","state":"active","locked":false,"avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1241334/avatar.png","web_url":"https://gitlab.com/lafriks"},"created_at":"2019-11-28T08:47:27.248Z","updated_at":"2019-11-28T08:47:27.248Z","awardable_id":27687706,"awardable_type":"Issue","url":null},{"id":3009640,"name":"hearts","user":{"id":1241334,"username":"lafriks","name":"Lauris BH","state":"active","locked":false,"avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1241334/avatar.png","web_url":"https://gitlab.com/lafriks"},"created_at":"2019-11-28T08:47:33.059Z","updated_at":"2019-11-28T08:47:33.059Z","awardable_id":27687706,"awardable_type":"Issue","url":null}]
|
|
@ -0,0 +1,31 @@
|
||||||
|
Ratelimit-Remaining: 1986
|
||||||
|
Accept-Ranges: bytes
|
||||||
|
Set-Cookie: _cfuvid=DZQIMINjFohqKKjkWnojkq2xuUaqb42YEQg3BZXe68w-1701333889148-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
X-Prev-Page:
|
||||||
|
Ratelimit-Reset: 1701333949
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
Etag: W/"4f53cda18c2baa0c0354bb5f9a3ecbe5"
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
X-Next-Page:
|
||||||
|
X-Page: 4
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
Content-Type: application/json
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
Link: <https://gitlab.com/api/v4/projects/15578026/issues/2/award_emoji?id=15578026&issue_iid=2&page=1&per_page=2>; rel="first", <https://gitlab.com/api/v4/projects/15578026/issues/2/award_emoji?id=15578026&issue_iid=2&page=3&per_page=2>; rel="last"
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
X-Runtime: 0.081728
|
||||||
|
X-Total: 6
|
||||||
|
Content-Length: 2
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"588184d2d9ad2c4a7e7c00a51575091c","version":"1"}
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
X-Total-Pages: 3
|
||||||
|
Ratelimit-Observed: 14
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:45:49 GMT
|
||||||
|
Gitlab-Lb: haproxy-main-34-lb-gprd
|
||||||
|
X-Per-Page: 2
|
||||||
|
|
||||||
|
[]
|
|
@ -0,0 +1,29 @@
|
||||||
|
X-Runtime: 0.173849
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
X-Per-Page: 100
|
||||||
|
X-Prev-Page:
|
||||||
|
X-Total: 4
|
||||||
|
Ratelimit-Observed: 15
|
||||||
|
X-Page: 1
|
||||||
|
Ratelimit-Remaining: 1985
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"1d2b49b1b17e0c2d58c800a1b6c7eca3","version":"1"}
|
||||||
|
X-Next-Page:
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
Content-Type: application/json
|
||||||
|
Etag: W/"bcc91e8a7b2eac98b4d96ae791e0649d"
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Ratelimit-Reset: 1701333949
|
||||||
|
Gitlab-Lb: haproxy-main-08-lb-gprd
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
Link: <https://gitlab.com/api/v4/projects/15578026/issues/2/discussions?id=15578026¬eable_id=2&page=1&per_page=100>; rel="first", <https://gitlab.com/api/v4/projects/15578026/issues/2/discussions?id=15578026¬eable_id=2&page=1&per_page=100>; rel="last"
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
X-Total-Pages: 1
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
Set-Cookie: _cfuvid=yj.PGr9ftsz1kNpgtsmQhAcGpdMnklLE.NQ9h71hm5Q-1701333889475-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:45:49 GMT
|
||||||
|
|
||||||
|
[{"id":"617967369d98d8b73b6105a40318fe839f931a24","individual_note":true,"notes":[{"id":251637434,"type":null,"body":"This is a comment","attachment":null,"author":{"id":1241334,"username":"lafriks","name":"Lauris BH","state":"active","locked":false,"avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1241334/avatar.png","web_url":"https://gitlab.com/lafriks"},"created_at":"2019-11-28T08:44:52.501Z","updated_at":"2019-11-28T08:44:52.501Z","system":false,"noteable_id":27687706,"noteable_type":"Issue","project_id":15578026,"resolvable":false,"confidential":false,"internal":false,"noteable_iid":2,"commands_changes":{}}]},{"id":"b92d74daee411a17d844041bcd3c267ade58f680","individual_note":true,"notes":[{"id":251637528,"type":null,"body":"changed milestone to %2","attachment":null,"author":{"id":1241334,"username":"lafriks","name":"Lauris BH","state":"active","locked":false,"avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1241334/avatar.png","web_url":"https://gitlab.com/lafriks"},"created_at":"2019-11-28T08:45:02.329Z","updated_at":"2019-11-28T08:45:02.335Z","system":true,"noteable_id":27687706,"noteable_type":"Issue","project_id":15578026,"resolvable":false,"confidential":false,"internal":false,"noteable_iid":2,"commands_changes":{}}]},{"id":"6010f567d2b58758ef618070372c97891ac75349","individual_note":true,"notes":[{"id":251637892,"type":null,"body":"closed","attachment":null,"author":{"id":1241334,"username":"lafriks","name":"Lauris BH","state":"active","locked":false,"avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1241334/avatar.png","web_url":"https://gitlab.com/lafriks"},"created_at":"2019-11-28T08:45:45.007Z","updated_at":"2019-11-28T08:45:45.010Z","system":true,"noteable_id":27687706,"noteable_type":"Issue","project_id":15578026,"resolvable":false,"confidential":false,"internal":false,"noteable_iid":2,"commands_changes":{}}]},{"id":"632d0cbfd6a1a08f38aaf9ef7715116f4b188ebb","individual_note":true,"notes":[{"id":251637999,"type":null,"body":"A second comment","attachment":null,"author":{"id":1241334,"username":"lafriks","name":"Lauris BH","state":"active","locked":false,"avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1241334/avatar.png","web_url":"https://gitlab.com/lafriks"},"created_at":"2019-11-28T08:45:53.501Z","updated_at":"2019-11-28T08:45:53.501Z","system":false,"noteable_id":27687706,"noteable_type":"Issue","project_id":15578026,"resolvable":false,"confidential":false,"internal":false,"noteable_iid":2,"commands_changes":{}}]}]
|
|
@ -0,0 +1,29 @@
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Gitlab-Lb: haproxy-main-28-lb-gprd
|
||||||
|
Link: <https://gitlab.com/api/v4/projects/15578026/labels?id=15578026&include_ancestor_groups=true&page=1&per_page=100&with_counts=false>; rel="first", <https://gitlab.com/api/v4/projects/15578026/labels?id=15578026&include_ancestor_groups=true&page=1&per_page=100&with_counts=false>; rel="last"
|
||||||
|
X-Per-Page: 100
|
||||||
|
X-Runtime: 0.149464
|
||||||
|
X-Total: 9
|
||||||
|
Ratelimit-Observed: 6
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"2ccddf20767704a98ed6b582db3b103e","version":"1"}
|
||||||
|
X-Next-Page:
|
||||||
|
X-Prev-Page:
|
||||||
|
X-Total-Pages: 1
|
||||||
|
Ratelimit-Remaining: 1994
|
||||||
|
Etag: W/"5a3fb9bc7b1018070943f4aa1353f8b6"
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
X-Page: 1
|
||||||
|
Content-Type: application/json
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
Set-Cookie: _cfuvid=geNpLvH8Cv5XeYfUVwtpaazw43v9lCcqHE.vyXGk3kU-1701333887126-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
Ratelimit-Reset: 1701333947
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:45:47 GMT
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
|
||||||
|
[{"id":12959095,"name":"bug","description":null,"description_html":"","text_color":"#FFFFFF","color":"#d9534f","subscribed":false,"priority":null,"is_project_label":true},{"id":12959097,"name":"confirmed","description":null,"description_html":"","text_color":"#FFFFFF","color":"#d9534f","subscribed":false,"priority":null,"is_project_label":true},{"id":12959096,"name":"critical","description":null,"description_html":"","text_color":"#FFFFFF","color":"#d9534f","subscribed":false,"priority":null,"is_project_label":true},{"id":12959100,"name":"discussion","description":null,"description_html":"","text_color":"#FFFFFF","color":"#428bca","subscribed":false,"priority":null,"is_project_label":true},{"id":12959098,"name":"documentation","description":null,"description_html":"","text_color":"#1F1E24","color":"#f0ad4e","subscribed":false,"priority":null,"is_project_label":true},{"id":12959554,"name":"duplicate","description":null,"description_html":"","text_color":"#FFFFFF","color":"#7F8C8D","subscribed":false,"priority":null,"is_project_label":true},{"id":12959102,"name":"enhancement","description":null,"description_html":"","text_color":"#FFFFFF","color":"#5cb85c","subscribed":false,"priority":null,"is_project_label":true},{"id":12959101,"name":"suggestion","description":null,"description_html":"","text_color":"#FFFFFF","color":"#428bca","subscribed":false,"priority":null,"is_project_label":true},{"id":12959099,"name":"support","description":null,"description_html":"","text_color":"#1F1E24","color":"#f0ad4e","subscribed":false,"priority":null,"is_project_label":true}]
|
|
@ -0,0 +1,29 @@
|
||||||
|
Content-Type: application/json
|
||||||
|
X-Page: 1
|
||||||
|
Link: <https://gitlab.com/api/v4/projects/15578026/merge_requests?id=15578026&order_by=created_at&page=2&per_page=1&sort=desc&state=all&view=simple&with_labels_details=false&with_merge_status_recheck=false>; rel="next", <https://gitlab.com/api/v4/projects/15578026/merge_requests?id=15578026&order_by=created_at&page=1&per_page=1&sort=desc&state=all&view=simple&with_labels_details=false&with_merge_status_recheck=false>; rel="first", <https://gitlab.com/api/v4/projects/15578026/merge_requests?id=15578026&order_by=created_at&page=2&per_page=1&sort=desc&state=all&view=simple&with_labels_details=false&with_merge_status_recheck=false>; rel="last"
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
X-Runtime: 0.139912
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"002c20b78ace441f5585931fed7093ed","version":"1"}
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
X-Total: 2
|
||||||
|
X-Total-Pages: 2
|
||||||
|
Ratelimit-Observed: 16
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
Ratelimit-Remaining: 1984
|
||||||
|
Set-Cookie: _cfuvid=6nsOEFMJm7NgrvYZAMGwiJBdm5A5CU71S33zOdN8Kyo-1701333889768-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
X-Per-Page: 1
|
||||||
|
X-Prev-Page:
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Ratelimit-Reset: 1701333949
|
||||||
|
Gitlab-Lb: haproxy-main-09-lb-gprd
|
||||||
|
X-Next-Page: 2
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
Etag: W/"14f72c1f555b0e6348d338190e9e4839"
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:45:49 GMT
|
||||||
|
|
||||||
|
[{"id":43524600,"iid":2,"project_id":15578026,"title":"Test branch","description":"do not merge this PR","state":"opened","created_at":"2019-11-28T15:56:54.104Z","updated_at":"2020-04-19T19:24:21.108Z","web_url":"https://gitlab.com/gitea/test_repo/-/merge_requests/2"}]
|
|
@ -0,0 +1,22 @@
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:45:51 GMT
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"0a1a7339f3527e175a537afe058a6ac7","version":"1"}
|
||||||
|
Ratelimit-Observed: 21
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
Gitlab-Lb: haproxy-main-38-lb-gprd
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
Content-Type: application/json
|
||||||
|
Etag: W/"19aa54b7d4531bd5ab98282e0b772f20"
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
Set-Cookie: _cfuvid=J2edW64FLja6v0MZCh5tVbLYO42.VvIsTqQ.uj1Gr_k-1701333891171-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
Ratelimit-Reset: 1701333951
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
Ratelimit-Remaining: 1979
|
||||||
|
X-Runtime: 0.155712
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
|
||||||
|
{"id":43486906,"iid":1,"project_id":15578026,"title":"Update README.md","description":"add warning to readme","state":"merged","created_at":"2019-11-28T08:54:41.034Z","updated_at":"2019-11-28T16:02:08.377Z","merge_status":"can_be_merged","approved":true,"approvals_required":0,"approvals_left":0,"require_password_to_approve":false,"approved_by":[{"user":{"id":527793,"username":"axifive","name":"Alexey Terentyev","state":"active","locked":false,"avatar_url":"https://secure.gravatar.com/avatar/06683cd6b2e2c2ce0ab00fb80cc0729f?s=80\u0026d=identicon","web_url":"https://gitlab.com/axifive"}},{"user":{"id":4102996,"username":"zeripath","name":"zeripath","state":"active","locked":false,"avatar_url":"https://secure.gravatar.com/avatar/1ae18535c2b1aed798da090448997248?s=80\u0026d=identicon","web_url":"https://gitlab.com/zeripath"}}],"suggested_approvers":[],"approvers":[],"approver_groups":[],"user_has_approved":false,"user_can_approve":false,"approval_rules_left":[],"has_approval_rules":true,"merge_request_approvers_available":false,"multiple_approval_rules_available":false,"invalid_approvers_rules":[]}
|
22
services/migrations/testdata/gitlab/full_download/_api_v4_projects_15578026_merge_requests_2
vendored
Normal file
22
services/migrations/testdata/gitlab/full_download/_api_v4_projects_15578026_merge_requests_2
vendored
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
Etag: W/"914149155d75f8d8f7ed2e5351f0fadb"
|
||||||
|
X-Runtime: 0.234286
|
||||||
|
Ratelimit-Remaining: 1983
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
Set-Cookie: _cfuvid=aYLZ68TRL8gsnraUk.zZIxRvuv981nIhZNIO9vVpgbU-1701333890175-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
Ratelimit-Observed: 17
|
||||||
|
Content-Type: application/json
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:45:50 GMT
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
Gitlab-Lb: haproxy-main-33-lb-gprd
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
Ratelimit-Reset: 1701333950
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"10d576ab8e82b745b7202a6daec3c5e1","version":"1"}
|
||||||
|
|
||||||
|
{"id":43524600,"iid":2,"project_id":15578026,"title":"Test branch","description":"do not merge this PR","state":"opened","created_at":"2019-11-28T15:56:54.104Z","updated_at":"2020-04-19T19:24:21.108Z","merged_by":null,"merge_user":null,"merged_at":null,"closed_by":null,"closed_at":null,"target_branch":"master","source_branch":"feat/test","user_notes_count":0,"upvotes":1,"downvotes":0,"author":{"id":1241334,"username":"lafriks","name":"Lauris BH","state":"active","locked":false,"avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1241334/avatar.png","web_url":"https://gitlab.com/lafriks"},"assignees":[],"assignee":null,"reviewers":[],"source_project_id":15578026,"target_project_id":15578026,"labels":["bug"],"draft":false,"work_in_progress":false,"milestone":{"id":1082926,"iid":1,"project_id":15578026,"title":"1.0.0","description":"","state":"closed","created_at":"2019-11-28T08:42:30.301Z","updated_at":"2019-11-28T15:57:52.401Z","due_date":null,"start_date":null,"expired":false,"web_url":"https://gitlab.com/gitea/test_repo/-/milestones/1"},"merge_when_pipeline_succeeds":false,"merge_status":"can_be_merged","detailed_merge_status":"mergeable","sha":"9f733b96b98a4175276edf6a2e1231489c3bdd23","merge_commit_sha":null,"squash_commit_sha":null,"discussion_locked":null,"should_remove_source_branch":null,"force_remove_source_branch":true,"prepared_at":"2019-11-28T15:56:54.104Z","reference":"!2","references":{"short":"!2","relative":"!2","full":"gitea/test_repo!2"},"web_url":"https://gitlab.com/gitea/test_repo/-/merge_requests/2","time_stats":{"time_estimate":0,"total_time_spent":0,"human_time_estimate":null,"human_total_time_spent":null},"squash":true,"squash_on_merge":true,"task_completion_status":{"count":0,"completed_count":0},"has_conflicts":false,"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":"c59c9b451acca9d106cc19d61d87afe3fbbb8b83","head_sha":"9f733b96b98a4175276edf6a2e1231489c3bdd23","start_sha":"c59c9b451acca9d106cc19d61d87afe3fbbb8b83"},"merge_error":null,"first_contribution":false,"user":{"can_merge":false}}
|
|
@ -0,0 +1,22 @@
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
Ratelimit-Remaining: 1978
|
||||||
|
Gitlab-Lb: haproxy-main-04-lb-gprd
|
||||||
|
Set-Cookie: _cfuvid=cKUtcpJODQwk9SDRn91k1DY8CY5Tg238DXGgT0a2go0-1701333891493-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
Content-Type: application/json
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
Etag: W/"ce2f774c1b05c5c8a14ec9274444cba3"
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"98ee1da556bdb3d764679ebab9ab5312","version":"1"}
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
X-Runtime: 0.165471
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Ratelimit-Observed: 22
|
||||||
|
Ratelimit-Reset: 1701333951
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:45:51 GMT
|
||||||
|
|
||||||
|
{"id":43524600,"iid":2,"project_id":15578026,"title":"Test branch","description":"do not merge this PR","state":"opened","created_at":"2019-11-28T15:56:54.104Z","updated_at":"2020-04-19T19:24:21.108Z","merge_status":"can_be_merged","approved":true,"approvals_required":0,"approvals_left":0,"require_password_to_approve":false,"approved_by":[{"user":{"id":4575606,"username":"real6543","name":"6543","state":"active","locked":false,"avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png","web_url":"https://gitlab.com/real6543"}}],"suggested_approvers":[],"approvers":[],"approver_groups":[{"group":{"id":3181312,"web_url":"https://gitlab.com/groups/gitea","name":"gitea","path":"gitea","description":"Mirror of Gitea source code repositories","visibility":"public","share_with_group_lock":false,"require_two_factor_authentication":false,"two_factor_grace_period":48,"project_creation_level":"maintainer","auto_devops_enabled":null,"subgroup_creation_level":"owner","emails_disabled":false,"emails_enabled":true,"mentions_disabled":null,"lfs_enabled":true,"default_branch_protection":2,"default_branch_protection_defaults":{"allowed_to_push":[{"access_level":30}],"allow_force_push":true,"allowed_to_merge":[{"access_level":30}]},"avatar_url":"https://gitlab.com/uploads/-/system/group/avatar/3181312/gitea.png","request_access_enabled":true,"full_name":"gitea","full_path":"gitea","created_at":"2018-07-04T16:32:10.176Z","parent_id":null,"shared_runners_setting":"enabled","ldap_cn":null,"ldap_access":null,"wiki_access_level":"enabled"}}],"user_has_approved":false,"user_can_approve":false,"approval_rules_left":[],"has_approval_rules":true,"merge_request_approvers_available":false,"multiple_approval_rules_available":false,"invalid_approvers_rules":[]}
|
|
@ -0,0 +1,29 @@
|
||||||
|
X-Prev-Page:
|
||||||
|
X-Runtime: 0.066211
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
X-Per-Page: 1
|
||||||
|
X-Total: 2
|
||||||
|
Ratelimit-Reset: 1701333950
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"d0f8c843558e938161d7307b686f1cd9","version":"1"}
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
Set-Cookie: _cfuvid=WFMplweUX3zWl6uoteYRHeDcpElbTNYhWrIBbNEVC3A-1701333890399-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
Content-Type: application/json
|
||||||
|
X-Total-Pages: 2
|
||||||
|
Etag: W/"798718b23a2ec66b16cce20cb7155116"
|
||||||
|
X-Next-Page: 2
|
||||||
|
Link: <https://gitlab.com/api/v4/projects/15578026/merge_requests/2/award_emoji?id=15578026&merge_request_iid=2&page=2&per_page=1>; rel="next", <https://gitlab.com/api/v4/projects/15578026/merge_requests/2/award_emoji?id=15578026&merge_request_iid=2&page=1&per_page=1>; rel="first", <https://gitlab.com/api/v4/projects/15578026/merge_requests/2/award_emoji?id=15578026&merge_request_iid=2&page=2&per_page=1>; rel="last"
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
Ratelimit-Observed: 18
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:45:50 GMT
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Ratelimit-Remaining: 1982
|
||||||
|
Gitlab-Lb: haproxy-main-31-lb-gprd
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
X-Page: 1
|
||||||
|
|
||||||
|
[{"id":5541414,"name":"thumbsup","user":{"id":4575606,"username":"real6543","name":"6543","state":"active","locked":false,"avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png","web_url":"https://gitlab.com/real6543"},"created_at":"2020-09-02T23:42:34.310Z","updated_at":"2020-09-02T23:42:34.310Z","awardable_id":43524600,"awardable_type":"MergeRequest","url":null}]
|
|
@ -0,0 +1,29 @@
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
Etag: W/"e6776aaa57e6a81bf8a2d8823272cc70"
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"db01aae11b0cf7febcf051706159faae","version":"1"}
|
||||||
|
X-Total-Pages: 2
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Gitlab-Lb: haproxy-main-51-lb-gprd
|
||||||
|
X-Total: 2
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
X-Next-Page:
|
||||||
|
Set-Cookie: _cfuvid=X0n26HdiufQTXsshb4pvCyuf0jDSstPZ8GnIiyx57YU-1701333890628-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
Link: <https://gitlab.com/api/v4/projects/15578026/merge_requests/2/award_emoji?id=15578026&merge_request_iid=2&page=1&per_page=1>; rel="prev", <https://gitlab.com/api/v4/projects/15578026/merge_requests/2/award_emoji?id=15578026&merge_request_iid=2&page=1&per_page=1>; rel="first", <https://gitlab.com/api/v4/projects/15578026/merge_requests/2/award_emoji?id=15578026&merge_request_iid=2&page=2&per_page=1>; rel="last"
|
||||||
|
Ratelimit-Observed: 19
|
||||||
|
Ratelimit-Reset: 1701333950
|
||||||
|
Content-Type: application/json
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
X-Per-Page: 1
|
||||||
|
X-Runtime: 0.067511
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
X-Prev-Page: 1
|
||||||
|
Ratelimit-Remaining: 1981
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:45:50 GMT
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
X-Page: 2
|
||||||
|
|
||||||
|
[{"id":5541415,"name":"tada","user":{"id":4575606,"username":"real6543","name":"6543","state":"active","locked":false,"avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/4575606/avatar.png","web_url":"https://gitlab.com/real6543"},"created_at":"2020-09-02T23:42:59.060Z","updated_at":"2020-09-02T23:42:59.060Z","awardable_id":43524600,"awardable_type":"MergeRequest","url":null}]
|
|
@ -0,0 +1,31 @@
|
||||||
|
X-Page: 3
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Accept-Ranges: bytes
|
||||||
|
Set-Cookie: _cfuvid=CBSpRhUuajZbJ9Mc_r7SkVmZawoSi5ofuts2TGyHgRk-1701333890842-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
X-Prev-Page:
|
||||||
|
X-Total-Pages: 2
|
||||||
|
Ratelimit-Reset: 1701333950
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:45:50 GMT
|
||||||
|
Gitlab-Lb: haproxy-main-05-lb-gprd
|
||||||
|
Etag: W/"4f53cda18c2baa0c0354bb5f9a3ecbe5"
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"36817edd7cae21d5d6b875faf173ce80","version":"1"}
|
||||||
|
X-Per-Page: 1
|
||||||
|
X-Total: 2
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
Link: <https://gitlab.com/api/v4/projects/15578026/merge_requests/2/award_emoji?id=15578026&merge_request_iid=2&page=1&per_page=1>; rel="first", <https://gitlab.com/api/v4/projects/15578026/merge_requests/2/award_emoji?id=15578026&merge_request_iid=2&page=2&per_page=1>; rel="last"
|
||||||
|
X-Next-Page:
|
||||||
|
X-Runtime: 0.061075
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
Ratelimit-Observed: 20
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
Content-Type: application/json
|
||||||
|
Content-Length: 2
|
||||||
|
Ratelimit-Remaining: 1980
|
||||||
|
|
||||||
|
[]
|
|
@ -0,0 +1,29 @@
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
X-Next-Page:
|
||||||
|
Ratelimit-Observed: 5
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
X-Per-Page: 100
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:45:46 GMT
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
Link: <https://gitlab.com/api/v4/projects/15578026/milestones?id=15578026&include_parent_milestones=false&page=1&per_page=100&state=all>; rel="first", <https://gitlab.com/api/v4/projects/15578026/milestones?id=15578026&include_parent_milestones=false&page=1&per_page=100&state=all>; rel="last"
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"4f72373995f8681ce127c62d384745a3","version":"1"}
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
X-Runtime: 0.073691
|
||||||
|
Ratelimit-Remaining: 1995
|
||||||
|
Ratelimit-Reset: 1701333946
|
||||||
|
Content-Type: application/json
|
||||||
|
Etag: W/"c8e2d3a5f05ee29c58b665c86684f9f9"
|
||||||
|
X-Page: 1
|
||||||
|
Gitlab-Lb: haproxy-main-47-lb-gprd
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
X-Prev-Page:
|
||||||
|
X-Total: 2
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
X-Total-Pages: 1
|
||||||
|
Set-Cookie: _cfuvid=ZfjvK5rh2nTUjEDt1Guwzd8zrl6uCDplfE8NBPbdJ7c-1701333886832-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
|
||||||
|
[{"id":1082927,"iid":2,"project_id":15578026,"title":"1.1.0","description":"","state":"active","created_at":"2019-11-28T08:42:44.575Z","updated_at":"2019-11-28T08:42:44.575Z","due_date":null,"start_date":null,"expired":false,"web_url":"https://gitlab.com/gitea/test_repo/-/milestones/2"},{"id":1082926,"iid":1,"project_id":15578026,"title":"1.0.0","description":"","state":"closed","created_at":"2019-11-28T08:42:30.301Z","updated_at":"2019-11-28T15:57:52.401Z","due_date":null,"start_date":null,"expired":false,"web_url":"https://gitlab.com/gitea/test_repo/-/milestones/1"}]
|
|
@ -0,0 +1,29 @@
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Ratelimit-Reset: 1701333947
|
||||||
|
X-Total: 1
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:45:47 GMT
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
X-Runtime: 0.178411
|
||||||
|
Gitlab-Lb: haproxy-main-15-lb-gprd
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
X-Page: 1
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
Ratelimit-Observed: 7
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
Etag: W/"dccc7159dc4b46989d13128a7d6ee859"
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
Ratelimit-Remaining: 1993
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"0044a3de3ede2f913cabe6e464dd73c2","version":"1"}
|
||||||
|
X-Total-Pages: 1
|
||||||
|
X-Next-Page:
|
||||||
|
X-Per-Page: 100
|
||||||
|
Content-Type: application/json
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
Set-Cookie: _cfuvid=h1ayMNs6W_kFPoFe28IpiaFUz1ZAPvY6npUWxARRx4I-1701333887452-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
Link: <https://gitlab.com/api/v4/projects/15578026/releases?id=15578026&order_by=released_at&page=1&per_page=100&sort=desc>; rel="first", <https://gitlab.com/api/v4/projects/15578026/releases?id=15578026&order_by=released_at&page=1&per_page=100&sort=desc>; rel="last"
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
X-Prev-Page:
|
||||||
|
|
||||||
|
[{"name":"First Release","tag_name":"v0.9.99","description":"A test release","created_at":"2019-11-28T09:09:48.840Z","released_at":"2019-11-28T09:09:48.836Z","upcoming_release":false,"author":{"id":1241334,"username":"lafriks","name":"Lauris BH","state":"active","locked":false,"avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1241334/avatar.png","web_url":"https://gitlab.com/lafriks"},"commit":{"id":"0720a3ec57c1f843568298117b874319e7deee75","short_id":"0720a3ec","created_at":"2019-11-28T08:49:16.000+00:00","parent_ids":["93ea21ce45d35690c35e80961d239645139e872c"],"title":"Add new file","message":"Add new file","author_name":"Lauris BH","author_email":"lauris@nix.lv","authored_date":"2019-11-28T08:49:16.000+00:00","committer_name":"Lauris BH","committer_email":"lauris@nix.lv","committed_date":"2019-11-28T08:49:16.000+00:00","trailers":{},"extended_trailers":{},"web_url":"https://gitlab.com/gitea/test_repo/-/commit/0720a3ec57c1f843568298117b874319e7deee75"},"commit_path":"/gitea/test_repo/-/commit/0720a3ec57c1f843568298117b874319e7deee75","tag_path":"/gitea/test_repo/-/tags/v0.9.99","assets":{"count":4,"sources":[{"format":"zip","url":"https://gitlab.com/gitea/test_repo/-/archive/v0.9.99/test_repo-v0.9.99.zip"},{"format":"tar.gz","url":"https://gitlab.com/gitea/test_repo/-/archive/v0.9.99/test_repo-v0.9.99.tar.gz"},{"format":"tar.bz2","url":"https://gitlab.com/gitea/test_repo/-/archive/v0.9.99/test_repo-v0.9.99.tar.bz2"},{"format":"tar","url":"https://gitlab.com/gitea/test_repo/-/archive/v0.9.99/test_repo-v0.9.99.tar"}],"links":[]},"evidences":[{"sha":"89f1223473ee01f192a83d0cb89f4d1eac1de74f01ad","filepath":"https://gitlab.com/gitea/test_repo/-/releases/v0.9.99/evidences/52147.json","collected_at":"2019-11-28T09:09:48.888Z"}],"_links":{"closed_issues_url":"https://gitlab.com/gitea/test_repo/-/issues?release_tag=v0.9.99\u0026scope=all\u0026state=closed","closed_merge_requests_url":"https://gitlab.com/gitea/test_repo/-/merge_requests?release_tag=v0.9.99\u0026scope=all\u0026state=closed","merged_merge_requests_url":"https://gitlab.com/gitea/test_repo/-/merge_requests?release_tag=v0.9.99\u0026scope=all\u0026state=merged","opened_issues_url":"https://gitlab.com/gitea/test_repo/-/issues?release_tag=v0.9.99\u0026scope=all\u0026state=opened","opened_merge_requests_url":"https://gitlab.com/gitea/test_repo/-/merge_requests?release_tag=v0.9.99\u0026scope=all\u0026state=opened","self":"https://gitlab.com/gitea/test_repo/-/releases/v0.9.99"}}]
|
22
services/migrations/testdata/gitlab/full_download/_api_v4_projects_gitea%2Ftest_repo
vendored
Normal file
22
services/migrations/testdata/gitlab/full_download/_api_v4_projects_gitea%2Ftest_repo
vendored
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
Ratelimit-Reset: 1701333946
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:45:46 GMT
|
||||||
|
X-Runtime: 0.144599
|
||||||
|
Content-Type: application/json
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"919887b868b11ed34c5917e98b4be40d","version":"1"}
|
||||||
|
Ratelimit-Observed: 2
|
||||||
|
Gitlab-Lb: haproxy-main-42-lb-gprd
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
Set-Cookie: _cfuvid=BENIrMVlxs_tt.JplEkDKbUrMpOF_kjRRLJOifNTLqY-1701333886061-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
Etag: W/"3cacfe29f44a69e84a577337eac55d89"
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
Ratelimit-Remaining: 1998
|
||||||
|
|
||||||
|
{"id":15578026,"description":"Test repository for testing migration from gitlab to gitea","name":"test_repo","name_with_namespace":"gitea / test_repo","path":"test_repo","path_with_namespace":"gitea/test_repo","created_at":"2019-11-28T08:20:33.019Z","default_branch":"master","tag_list":["migration","test"],"topics":["migration","test"],"ssh_url_to_repo":"git@gitlab.com:gitea/test_repo.git","http_url_to_repo":"https://gitlab.com/gitea/test_repo.git","web_url":"https://gitlab.com/gitea/test_repo","readme_url":"https://gitlab.com/gitea/test_repo/-/blob/master/README.md","forks_count":1,"avatar_url":null,"star_count":0,"last_activity_at":"2020-04-19T19:46:04.527Z","namespace":{"id":3181312,"name":"gitea","path":"gitea","kind":"group","full_path":"gitea","parent_id":null,"avatar_url":"/uploads/-/system/group/avatar/3181312/gitea.png","web_url":"https://gitlab.com/groups/gitea"},"container_registry_image_prefix":"registry.gitlab.com/gitea/test_repo","_links":{"self":"https://gitlab.com/api/v4/projects/15578026","issues":"https://gitlab.com/api/v4/projects/15578026/issues","merge_requests":"https://gitlab.com/api/v4/projects/15578026/merge_requests","repo_branches":"https://gitlab.com/api/v4/projects/15578026/repository/branches","labels":"https://gitlab.com/api/v4/projects/15578026/labels","events":"https://gitlab.com/api/v4/projects/15578026/events","members":"https://gitlab.com/api/v4/projects/15578026/members","cluster_agents":"https://gitlab.com/api/v4/projects/15578026/cluster_agents"},"packages_enabled":true,"empty_repo":false,"archived":false,"visibility":"public","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":true,"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":true,"creator_id":1241334,"import_status":"none","open_issues_count":0,"description_html":"\u003cp data-sourcepos=\"1:1-1:58\" dir=\"auto\"\u003eTest repository for testing migration from gitlab to gitea\u003c/p\u003e","updated_at":"2022-08-26T19:41:46.691Z","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":true,"only_allow_merge_if_all_discussions_are_resolved":false,"remove_source_branch_after_merge":true,"printing_merge_request_link_enabled":true,"merge_method":"ff","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/full_download/_api_v4_version
vendored
Normal file
22
services/migrations/testdata/gitlab/full_download/_api_v4_version
vendored
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
Etag: W/"4e5c0a031c3aacb6ba0a3c19e67d7592"
|
||||||
|
Ratelimit-Observed: 1
|
||||||
|
Content-Type: application/json
|
||||||
|
Ratelimit-Remaining: 1999
|
||||||
|
Set-Cookie: _cfuvid=qtYbzv8YeGg4q7XaV0aAE2.YqWIp_xrYPGilXrlecsk-1701333885742-0-604800000; path=/; domain=.gitlab.com; HttpOnly; Secure; SameSite=None
|
||||||
|
X-Gitlab-Meta: {"correlation_id":"c7c75f0406e1b1b9705a6d7e9bdb06a5","version":"1"}
|
||||||
|
X-Runtime: 0.039264
|
||||||
|
Cf-Cache-Status: MISS
|
||||||
|
Content-Security-Policy: default-src 'none'
|
||||||
|
Ratelimit-Reset: 1701333945
|
||||||
|
Gitlab-Sv: localhost
|
||||||
|
Strict-Transport-Security: max-age=31536000
|
||||||
|
Vary: Origin, Accept-Encoding
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
Referrer-Policy: strict-origin-when-cross-origin
|
||||||
|
Ratelimit-Resettime: Thu, 30 Nov 2023 08:45:45 GMT
|
||||||
|
Gitlab-Lb: haproxy-main-23-lb-gprd
|
||||||
|
Cache-Control: max-age=0, private, must-revalidate
|
||||||
|
X-Frame-Options: SAMEORIGIN
|
||||||
|
Ratelimit-Limit: 2000
|
||||||
|
|
||||||
|
{"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