Documentation
¶
Index ¶
- Constants
- func IsErrNotSupported(err error) bool
- func NilMessenger(string, ...interface{})
- type BasicIssueContext
- type Comment
- type Downloader
- type DownloaderFactory
- type ErrNotSupported
- type GetCommentOptions
- type Issue
- type IssueContext
- type Label
- type Messenger
- type MigrateOptions
- type Milestone
- type NullDownloader
- func (n NullDownloader) FormatCloneURL(opts MigrateOptions, remoteAddr string) (string, error)
- func (n NullDownloader) GetComments(GetCommentOptions) ([]*Comment, bool, error)
- func (n NullDownloader) GetIssues(page, perPage int) ([]*Issue, bool, error)
- func (n NullDownloader) GetLabels() ([]*Label, error)
- func (n NullDownloader) GetMilestones() ([]*Milestone, error)
- func (n NullDownloader) GetPullRequests(page, perPage int) ([]*PullRequest, bool, error)
- func (n NullDownloader) GetReleases() ([]*Release, error)
- func (n NullDownloader) GetRepoInfo() (*Repository, error)
- func (n NullDownloader) GetReviews(pullRequestContext IssueContext) ([]*Review, error)
- func (n NullDownloader) GetTopics() ([]string, error)
- func (n NullDownloader) SetContext(_ context.Context)
- func (n NullDownloader) SupportGetRepoComments() bool
- type PullRequest
- type PullRequestBranch
- type Reaction
- type Release
- type ReleaseAsset
- type Repository
- type RetryDownloader
- func (d *RetryDownloader) GetComments(opts GetCommentOptions) ([]*Comment, bool, error)
- func (d *RetryDownloader) GetIssues(page, perPage int) ([]*Issue, bool, error)
- func (d *RetryDownloader) GetLabels() ([]*Label, error)
- func (d *RetryDownloader) GetMilestones() ([]*Milestone, error)
- func (d *RetryDownloader) GetPullRequests(page, perPage int) ([]*PullRequest, bool, error)
- func (d *RetryDownloader) GetReleases() ([]*Release, error)
- func (d *RetryDownloader) GetRepoInfo() (*Repository, error)
- func (d *RetryDownloader) GetReviews(pullRequestContext IssueContext) ([]*Review, error)
- func (d *RetryDownloader) GetTopics() ([]string, error)
- func (d *RetryDownloader) SetContext(ctx context.Context)
- type Review
- type ReviewComment
- type Uploader
Constants ¶
const ( ReviewStatePending = "PENDING" ReviewStateApproved = "APPROVED" ReviewStateChangesRequested = "CHANGES_REQUESTED" ReviewStateCommented = "COMMENTED" )
enumerate all review states
Variables ¶
This section is empty.
Functions ¶
func IsErrNotSupported ¶
IsErrNotSupported checks if an error is an ErrNotSupported
func NilMessenger ¶
func NilMessenger(string, ...interface{})
NilMessenger represents an empty formatting function
Types ¶
type BasicIssueContext ¶
type BasicIssueContext int64
BasicIssueContext is a 1:1 mapping between local and foreign ids.
func (BasicIssueContext) ForeignID ¶
func (c BasicIssueContext) ForeignID() int64
ForeignID gets the foreign id.
func (BasicIssueContext) LocalID ¶
func (c BasicIssueContext) LocalID() int64
LocalID gets the local id.
type Comment ¶
type Comment struct {
IssueIndex int64 `yaml:"issue_index"`
PosterID int64 `yaml:"poster_id"`
PosterName string `yaml:"poster_name"`
PosterEmail string `yaml:"poster_email"`
Created time.Time
Updated time.Time
Content string
Reactions []*Reaction
}
Comment is a standard comment information
type Downloader ¶
type Downloader interface {
SetContext(context.Context)
GetRepoInfo() (*Repository, error)
GetTopics() ([]string, error)
GetMilestones() ([]*Milestone, error)
GetReleases() ([]*Release, error)
GetLabels() ([]*Label, error)
GetIssues(page, perPage int) ([]*Issue, bool, error)
GetComments(opts GetCommentOptions) ([]*Comment, bool, error)
SupportGetRepoComments() bool
GetPullRequests(page, perPage int) ([]*PullRequest, bool, error)
GetReviews(pullRequestContext IssueContext) ([]*Review, error)
FormatCloneURL(opts MigrateOptions, remoteAddr string) (string, error)
}
Downloader downloads the site repo information
type DownloaderFactory ¶
type DownloaderFactory interface {
New(ctx context.Context, opts MigrateOptions) (Downloader, error)
GitServiceType() structs.GitServiceType
}
DownloaderFactory defines an interface to match a downloader implementation and create a downloader
type ErrNotSupported ¶
type ErrNotSupported struct {
Entity string
}
ErrNotSupported represents status if a downloader do not supported something.
type GetCommentOptions ¶
type GetCommentOptions struct {
Context IssueContext
Page int
PageSize int
}
GetCommentOptions represents an options for get comment
type Issue ¶
type Issue struct {
Number int64
PosterID int64 `yaml:"poster_id"`
PosterName string `yaml:"poster_name"`
PosterEmail string `yaml:"poster_email"`
Title string
Content string
Ref string
Milestone string
State string // closed, open
IsLocked bool `yaml:"is_locked"`
Created time.Time
Updated time.Time
Closed *time.Time
Labels []*Label
Reactions []*Reaction
Assignees []string
Context IssueContext `yaml:"-"`
}
Issue is a standard issue information
type IssueContext ¶
IssueContext is used to map between local and foreign issue/PR ids.
type Messenger ¶
type Messenger func(key string, args ...interface{})
Messenger is a formatting function similar to i18n.Tr
type MigrateOptions ¶
type MigrateOptions struct {
// required: true
CloneAddr string `json:"clone_addr" binding:"Required"`
CloneAddrEncrypted string `json:"clone_addr_encrypted,omitempty"`
AuthUsername string `json:"auth_username"`
AuthPassword string `json:"-"`
AuthPasswordEncrypted string `json:"auth_password_encrypted,omitempty"`
AuthToken string `json:"-"`
AuthTokenEncrypted string `json:"auth_token_encrypted,omitempty"`
// required: true
UID int `json:"uid" binding:"Required"`
// required: true
RepoName string `json:"repo_name" binding:"Required"`
Mirror bool `json:"mirror"`
LFS bool `json:"lfs"`
LFSEndpoint string `json:"lfs_endpoint"`
Private bool `json:"private"`
Description string `json:"description"`
OriginalURL string
GitServiceType structs.GitServiceType
Wiki bool
Issues bool
Milestones bool
Labels bool
Releases bool
Comments bool
PullRequests bool
ReleaseAssets bool
MigrateToRepoID int64
MirrorInterval string `json:"mirror_interval"`
}
MigrateOptions defines the way a repository gets migrated this is for internal usage by migrations module and func who interact with it
type Milestone ¶
type Milestone struct {
Title string
Description string
Deadline *time.Time
Created time.Time
Updated *time.Time
Closed *time.Time
State string // open, closed
}
Milestone defines a standard milestone
type NullDownloader ¶
type NullDownloader struct {
}
NullDownloader implements a blank downloader
func (NullDownloader) FormatCloneURL ¶
func (n NullDownloader) FormatCloneURL(opts MigrateOptions, remoteAddr string) (string, error)
FormatCloneURL add authentication into remote URLs
func (NullDownloader) GetComments ¶
func (n NullDownloader) GetComments(GetCommentOptions) ([]*Comment, bool, error)
GetComments returns comments according the options
func (NullDownloader) GetIssues ¶
func (n NullDownloader) GetIssues(page, perPage int) ([]*Issue, bool, error)
GetIssues returns issues according start and limit
func (NullDownloader) GetLabels ¶
func (n NullDownloader) GetLabels() ([]*Label, error)
GetLabels returns labels
func (NullDownloader) GetMilestones ¶
func (n NullDownloader) GetMilestones() ([]*Milestone, error)
GetMilestones returns milestones
func (NullDownloader) GetPullRequests ¶
func (n NullDownloader) GetPullRequests(page, perPage int) ([]*PullRequest, bool, error)
GetPullRequests returns pull requests according page and perPage
func (NullDownloader) GetReleases ¶
func (n NullDownloader) GetReleases() ([]*Release, error)
GetReleases returns releases
func (NullDownloader) GetRepoInfo ¶
func (n NullDownloader) GetRepoInfo() (*Repository, error)
GetRepoInfo returns a repository information
func (NullDownloader) GetReviews ¶
func (n NullDownloader) GetReviews(pullRequestContext IssueContext) ([]*Review, error)
GetReviews returns pull requests review
func (NullDownloader) GetTopics ¶
func (n NullDownloader) GetTopics() ([]string, error)
GetTopics return repository topics
func (NullDownloader) SetContext ¶
func (n NullDownloader) SetContext(_ context.Context)
SetContext set context
func (NullDownloader) SupportGetRepoComments ¶
func (n NullDownloader) SupportGetRepoComments() bool
SupportGetRepoComments return true if it supports get repo comments
type PullRequest ¶
type PullRequest struct {
Number int64
Title string
PosterName string `yaml:"poster_name"`
PosterID int64 `yaml:"poster_id"`
PosterEmail string `yaml:"poster_email"`
Content string
Milestone string
State string
Created time.Time
Updated time.Time
Closed *time.Time
Labels []*Label
PatchURL string `yaml:"patch_url"`
Merged bool
MergedTime *time.Time `yaml:"merged_time"`
MergeCommitSHA string `yaml:"merge_commit_sha"`
Head PullRequestBranch
Base PullRequestBranch
Assignees []string
IsLocked bool `yaml:"is_locked"`
Reactions []*Reaction
Context IssueContext `yaml:"-"`
}
PullRequest defines a standard pull request information
func (PullRequest) GetGitRefName ¶
func (p PullRequest) GetGitRefName() string
GetGitRefName returns pull request relative path to head
func (*PullRequest) IsForkPullRequest ¶
func (p *PullRequest) IsForkPullRequest() bool
IsForkPullRequest returns true if the pull request from a forked repository but not the same repository
type PullRequestBranch ¶
type PullRequestBranch struct {
CloneURL string `yaml:"clone_url"`
Ref string
SHA string
RepoName string `yaml:"repo_name"`
OwnerName string `yaml:"owner_name"`
}
PullRequestBranch represents a pull request branch
func (PullRequestBranch) RepoPath ¶
func (p PullRequestBranch) RepoPath() string
RepoPath returns pull request repo path
type Reaction ¶
type Reaction struct {
UserID int64 `yaml:"user_id"`
UserName string `yaml:"user_name"`
Content string
}
Reaction represents a reaction to an issue/pr/comment.
type Release ¶
type Release struct {
TagName string `yaml:"tag_name"`
TargetCommitish string `yaml:"target_commitish"`
Name string
Body string
Draft bool
Prerelease bool
PublisherID int64 `yaml:"publisher_id"`
PublisherName string `yaml:"publisher_name"`
PublisherEmail string `yaml:"publisher_email"`
Assets []*ReleaseAsset
Created time.Time
Published time.Time
}
Release represents a release
type ReleaseAsset ¶
type ReleaseAsset struct {
ID int64
Name string
ContentType *string `yaml:"content_type"`
Size *int
DownloadCount *int `yaml:"download_count"`
Created time.Time
Updated time.Time
DownloadURL *string `yaml:"download_url"`
// if DownloadURL is nil, the function should be invoked
DownloadFunc func() (io.ReadCloser, error) `yaml:"-"`
}
ReleaseAsset represents a release asset
type Repository ¶
type Repository struct {
Name string
Owner string
IsPrivate bool `yaml:"is_private"`
IsMirror bool `yaml:"is_mirror"`
Description string
CloneURL string `yaml:"clone_url"`
OriginalURL string `yaml:"original_url"`
DefaultBranch string
}
Repository defines a standard repository information
type RetryDownloader ¶
type RetryDownloader struct {
Downloader
RetryTimes int // the total execute times
RetryDelay int // time to delay seconds
// contains filtered or unexported fields
}
RetryDownloader retry the downloads
func NewRetryDownloader ¶
func NewRetryDownloader(ctx context.Context, downloader Downloader, retryTimes, retryDelay int) *RetryDownloader
NewRetryDownloader creates a retry downloader
func (*RetryDownloader) GetComments ¶
func (d *RetryDownloader) GetComments(opts GetCommentOptions) ([]*Comment, bool, error)
GetComments returns a repository's comments with retry
func (*RetryDownloader) GetIssues ¶
func (d *RetryDownloader) GetIssues(page, perPage int) ([]*Issue, bool, error)
GetIssues returns a repository's issues with retry
func (*RetryDownloader) GetLabels ¶
func (d *RetryDownloader) GetLabels() ([]*Label, error)
GetLabels returns a repository's labels with retry
func (*RetryDownloader) GetMilestones ¶
func (d *RetryDownloader) GetMilestones() ([]*Milestone, error)
GetMilestones returns a repository's milestones with retry
func (*RetryDownloader) GetPullRequests ¶
func (d *RetryDownloader) GetPullRequests(page, perPage int) ([]*PullRequest, bool, error)
GetPullRequests returns a repository's pull requests with retry
func (*RetryDownloader) GetReleases ¶
func (d *RetryDownloader) GetReleases() ([]*Release, error)
GetReleases returns a repository's releases with retry
func (*RetryDownloader) GetRepoInfo ¶
func (d *RetryDownloader) GetRepoInfo() (*Repository, error)
GetRepoInfo returns a repository information with retry
func (*RetryDownloader) GetReviews ¶
func (d *RetryDownloader) GetReviews(pullRequestContext IssueContext) ([]*Review, error)
GetReviews returns pull requests reviews
func (*RetryDownloader) GetTopics ¶
func (d *RetryDownloader) GetTopics() ([]string, error)
GetTopics returns a repository's topics with retry
func (*RetryDownloader) SetContext ¶
func (d *RetryDownloader) SetContext(ctx context.Context)
SetContext set context
type Review ¶
type Review struct {
ID int64
IssueIndex int64 `yaml:"issue_index"`
ReviewerID int64 `yaml:"reviewer_id"`
ReviewerName string `yaml:"reviewer_name"`
Official bool
CommitID string `yaml:"commit_id"`
Content string
CreatedAt time.Time `yaml:"created_at"`
State string // PENDING, APPROVED, REQUEST_CHANGES, or COMMENT
Comments []*ReviewComment
}
Review is a standard review information
type ReviewComment ¶
type ReviewComment struct {
ID int64
InReplyTo int64 `yaml:"in_reply_to"`
Content string
TreePath string `yaml:"tree_path"`
DiffHunk string `yaml:"diff_hunk"`
Position int
Line int
CommitID string `yaml:"commit_id"`
PosterID int64 `yaml:"poster_id"`
Reactions []*Reaction
CreatedAt time.Time `yaml:"created_at"`
UpdatedAt time.Time `yaml:"updated_at"`
}
ReviewComment represents a review comment
type Uploader ¶
type Uploader interface {
MaxBatchInsertSize(tp string) int
CreateRepo(repo *Repository, opts MigrateOptions) error
CreateTopics(topic ...string) error
CreateMilestones(milestones ...*Milestone) error
CreateReleases(releases ...*Release) error
SyncTags() error
CreateLabels(labels ...*Label) error
CreateIssues(issues ...*Issue) error
CreateComments(comments ...*Comment) error
CreatePullRequests(prs ...*PullRequest) error
CreateReviews(reviews ...*Review) error
Rollback() error
Finish() error
Close()
}
Uploader uploads all the information of one repository