Skip to content

Commit b599665

Browse files
committed
working GetReviews on gitlab side
1 parent c39e274 commit b599665

File tree

3 files changed

+41
-2
lines changed

3 files changed

+41
-2
lines changed

modules/migrations/base/pullrequest.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
// PullRequest defines a standard pull request information
1414
type PullRequest struct {
1515
Number int64
16+
OriginalNumber int64
1617
Title string
1718
PosterName string
1819
PosterID int64

modules/migrations/gitlab.go

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -497,6 +497,7 @@ func (g *GitlabDownloader) GetPullRequests(page, perPage int) ([]*base.PullReque
497497
allPRs = append(allPRs, &base.PullRequest{
498498
Title: pr.Title,
499499
Number: newPRNumber,
500+
OriginalNumber: int64(pr.IID),
500501
PosterName: pr.Author.Username,
501502
PosterID: int64(pr.Author.ID),
502503
Content: pr.Description,
@@ -532,5 +533,30 @@ func (g *GitlabDownloader) GetPullRequests(page, perPage int) ([]*base.PullReque
532533
// GetReviews returns pull requests review
533534
func (g *GitlabDownloader) GetReviews(pullRequestNumber int64) ([]*base.Review, error) {
534535

535-
return nil, nil
536+
state, _, err := g.client.MergeRequestApprovals.GetApprovalState(g.repoID, int(pullRequestNumber))
537+
if err != nil {
538+
return nil, err
539+
}
540+
541+
//GitLab only has Approvals witch similar to gitea's approve review's
542+
approvers := make(map[int]*gitlab.BasicUser)
543+
for i := range state.Rules {
544+
for _, u := range state.Rules[i].ApprovedBy {
545+
approvers[u.ID] = u
546+
}
547+
}
548+
549+
var reviews = make([]*base.Review, 0, len(approvers))
550+
for k, v := range approvers {
551+
reviews = append(reviews, &base.Review{
552+
ReviewerID: int64(k),
553+
ReviewerName: v.Username,
554+
// GitLab API dont return creation date
555+
CreatedAt: time.Now(),
556+
// All we get are approvals
557+
State: base.ReviewStateApproved,
558+
})
559+
}
560+
561+
return reviews, nil
536562
}

modules/migrations/migrate.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,19 @@ func migrateRepository(downloader base.Downloader, uploader base.Uploader, opts
277277
// migrate reviews
278278
var allReviews = make([]*base.Review, 0, reviewBatchSize)
279279
for _, pr := range prs {
280-
reviews, err := downloader.GetReviews(pr.Number)
280+
number := pr.Number
281+
282+
// on gitlab migrations pull number change
283+
if pr.OriginalNumber > 0 {
284+
number = pr.OriginalNumber
285+
}
286+
287+
reviews, err := downloader.GetReviews(number)
288+
if pr.OriginalNumber > 0 {
289+
for i := range reviews {
290+
reviews[i].IssueIndex = pr.Number
291+
}
292+
}
281293
if err != nil {
282294
return err
283295
}

0 commit comments

Comments
 (0)