2019-05-07 04:12:51 +03:00
// Copyright 2019 The Gitea Authors. All rights reserved.
// Copyright 2018 Jonas Franz. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
2021-11-16 18:25:33 +03:00
package migration
2019-05-07 04:12:51 +03:00
import (
"fmt"
"time"
2021-12-02 10:28:08 +03:00
"code.gitea.io/gitea/modules/git"
2019-05-07 04:12:51 +03:00
)
// PullRequest defines a standard pull request information
type PullRequest struct {
Number int64
Title string
2020-12-27 06:34:19 +03:00
PosterName string ` yaml:"poster_name" `
PosterID int64 ` yaml:"poster_id" `
PosterEmail string ` yaml:"poster_email" `
2019-05-07 04:12:51 +03:00
Content string
Milestone string
State string
Created time . Time
2020-01-14 13:29:22 +03:00
Updated time . Time
2019-05-07 04:12:51 +03:00
Closed * time . Time
Labels [ ] * Label
2020-12-27 06:34:19 +03:00
PatchURL string ` yaml:"patch_url" `
2019-05-07 04:12:51 +03:00
Merged bool
2020-12-27 06:34:19 +03:00
MergedTime * time . Time ` yaml:"merged_time" `
MergeCommitSHA string ` yaml:"merge_commit_sha" `
2019-05-07 04:12:51 +03:00
Head PullRequestBranch
Base PullRequestBranch
Assignees [ ] string
2020-12-27 06:34:19 +03:00
IsLocked bool ` yaml:"is_locked" `
2020-01-15 14:14:07 +03:00
Reactions [ ] * Reaction
2021-08-22 01:47:45 +03:00
Context IssueContext ` yaml:"-" `
2019-05-07 04:12:51 +03:00
}
// IsForkPullRequest returns true if the pull request from a forked repository but not the same repository
func ( p * PullRequest ) IsForkPullRequest ( ) bool {
return p . Head . RepoPath ( ) != p . Base . RepoPath ( )
}
2021-10-08 12:59:35 +03:00
// GetGitRefName returns pull request relative path to head
func ( p PullRequest ) GetGitRefName ( ) string {
2021-12-02 22:36:50 +03:00
return fmt . Sprintf ( "%s%d/head" , git . PullPrefix , p . Number )
2021-10-08 12:59:35 +03:00
}
2019-05-07 04:12:51 +03:00
// PullRequestBranch represents a pull request branch
type PullRequestBranch struct {
2020-12-27 06:34:19 +03:00
CloneURL string ` yaml:"clone_url" `
2019-05-07 04:12:51 +03:00
Ref string
SHA string
2020-12-27 06:34:19 +03:00
RepoName string ` yaml:"repo_name" `
OwnerName string ` yaml:"owner_name" `
2019-05-07 04:12:51 +03:00
}
// RepoPath returns pull request repo path
func ( p PullRequestBranch ) RepoPath ( ) string {
return fmt . Sprintf ( "%s/%s" , p . OwnerName , p . RepoName )
}
2022-02-01 21:20:28 +03:00
// GetExternalName ExternalUserMigrated interface
func ( p * PullRequest ) GetExternalName ( ) string { return p . PosterName }
// ExternalID ExternalUserMigrated interface
func ( p * PullRequest ) GetExternalID ( ) int64 { return p . PosterID }