base

package
v1.14.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 11, 2021 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ReviewStatePending          = "PENDING"
	ReviewStateApproved         = "APPROVED"
	ReviewStateChangesRequested = "CHANGES_REQUESTED"
	ReviewStateCommented        = "COMMENTED"
)

enumerate all review states

Variables

This section is empty.

Functions

func IsErrNotSupported added in v1.14.0

func IsErrNotSupported(err error) bool

IsErrNotSupported checks if an error is an ErrNotSupported

Types

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(issueNumber int64) ([]*Comment, error)
	GetPullRequests(page, perPage int) ([]*PullRequest, bool, error)
	GetReviews(pullRequestNumber int64) ([]*Review, error)
	FormatCloneURL(opts MigrateOptions, remoteAddr string) (string, error)
}

Downloader downloads the site repo informations

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 added in v1.14.0

type ErrNotSupported struct {
	Entity string
}

ErrNotSupported represents status if a downloader do not supported something.

func (ErrNotSupported) Error added in v1.14.0

func (err ErrNotSupported) Error() string

Error return error message

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
}

Issue is a standard issue information

type Label

type Label struct {
	Name        string
	Color       string
	Description string
}

Label defines a standard label informations

type MigrateOptions

type MigrateOptions struct {
	// required: true
	CloneAddr    string `json:"clone_addr" binding:"Required"`
	AuthUsername string `json:"auth_username"`
	AuthPassword string `json:"auth_password"`
	AuthToken    string `json:"auth_token"`
	// required: true
	UID int `json:"uid" binding:"Required"`
	// required: true
	RepoName        string `json:"repo_name" binding:"Required"`
	Mirror          bool   `json:"mirror"`
	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 added in v1.14.0

type NullDownloader struct {
}

NullDownloader implements a blank downloader

func (NullDownloader) FormatCloneURL added in v1.14.0

func (n NullDownloader) FormatCloneURL(opts MigrateOptions, remoteAddr string) (string, error)

FormatCloneURL add authentification into remote URLs

func (NullDownloader) GetComments added in v1.14.0

func (n NullDownloader) GetComments(issueNumber int64) ([]*Comment, error)

GetComments returns comments according issueNumber

func (NullDownloader) GetIssues added in v1.14.0

func (n NullDownloader) GetIssues(page, perPage int) ([]*Issue, bool, error)

GetIssues returns issues according start and limit

func (NullDownloader) GetLabels added in v1.14.0

func (n NullDownloader) GetLabels() ([]*Label, error)

GetLabels returns labels

func (NullDownloader) GetMilestones added in v1.14.0

func (n NullDownloader) GetMilestones() ([]*Milestone, error)

GetMilestones returns milestones

func (NullDownloader) GetPullRequests added in v1.14.0

func (n NullDownloader) GetPullRequests(page, perPage int) ([]*PullRequest, bool, error)

GetPullRequests returns pull requests according page and perPage

func (NullDownloader) GetReleases added in v1.14.0

func (n NullDownloader) GetReleases() ([]*Release, error)

GetReleases returns releases

func (NullDownloader) GetRepoInfo added in v1.14.0

func (n NullDownloader) GetRepoInfo() (*Repository, error)

GetRepoInfo returns a repository information

func (NullDownloader) GetReviews added in v1.14.0

func (n NullDownloader) GetReviews(pullRequestNumber int64) ([]*Review, error)

GetReviews returns pull requests review

func (NullDownloader) GetTopics added in v1.14.0

func (n NullDownloader) GetTopics() ([]string, error)

GetTopics return repository topics

func (NullDownloader) SetContext added in v1.14.0

func (n NullDownloader) SetContext(_ context.Context)

SetContext set context

type PullRequest

type PullRequest struct {
	Number         int64
	OriginalNumber int64 `yaml:"original_number"`
	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
}

PullRequest defines a standard pull request information

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 added in v1.12.0

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 added in v1.11.0

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 added in v1.11.0

func NewRetryDownloader(ctx context.Context, downloader Downloader, retryTimes, retryDelay int) *RetryDownloader

NewRetryDownloader creates a retry downloader

func (*RetryDownloader) GetComments added in v1.11.0

func (d *RetryDownloader) GetComments(issueNumber int64) ([]*Comment, error)

GetComments returns a repository's comments with retry

func (*RetryDownloader) GetIssues added in v1.11.0

func (d *RetryDownloader) GetIssues(page, perPage int) ([]*Issue, bool, error)

GetIssues returns a repository's issues with retry

func (*RetryDownloader) GetLabels added in v1.11.0

func (d *RetryDownloader) GetLabels() ([]*Label, error)

GetLabels returns a repository's labels with retry

func (*RetryDownloader) GetMilestones added in v1.11.0

func (d *RetryDownloader) GetMilestones() ([]*Milestone, error)

GetMilestones returns a repository's milestones with retry

func (*RetryDownloader) GetPullRequests added in v1.11.0

func (d *RetryDownloader) GetPullRequests(page, perPage int) ([]*PullRequest, bool, error)

GetPullRequests returns a repository's pull requests with retry

func (*RetryDownloader) GetReleases added in v1.11.0

func (d *RetryDownloader) GetReleases() ([]*Release, error)

GetReleases returns a repository's releases with retry

func (*RetryDownloader) GetRepoInfo added in v1.11.0

func (d *RetryDownloader) GetRepoInfo() (*Repository, error)

GetRepoInfo returns a repository information with retry

func (*RetryDownloader) GetReviews added in v1.12.0

func (d *RetryDownloader) GetReviews(pullRequestNumber int64) ([]*Review, error)

GetReviews returns pull requests reviews

func (*RetryDownloader) GetTopics added in v1.11.0

func (d *RetryDownloader) GetTopics() ([]string, error)

GetTopics returns a repository's topics with retry

func (*RetryDownloader) SetContext added in v1.11.0

func (d *RetryDownloader) SetContext(ctx context.Context)

SetContext set context

type Review added in v1.12.0

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 added in v1.12.0

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 informations of one repository

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL