294 lines
13 KiB
Go
294 lines
13 KiB
Go
package model
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/xanzy/go-gitlab"
|
|
)
|
|
|
|
// DatabaseErrorText ...
|
|
const (
|
|
DatabaseErrorText = "Incorrect string value"
|
|
DatabaseMaxLenthErrorText = "Data too long for column"
|
|
MessageMaxLen = 2048
|
|
JsonMarshalErrorText = "XXXXX"
|
|
)
|
|
|
|
// DataType ...
|
|
const (
|
|
DataTypePipeline = "pipeline"
|
|
DataTypeJob = "job"
|
|
DataTypeCommit = "commit"
|
|
DataTypeMR = "MR"
|
|
DataTypeBranch = "Branch"
|
|
)
|
|
|
|
// FailData ...
|
|
type FailData struct {
|
|
ChildID int
|
|
ChildIDStr string
|
|
SunID int
|
|
}
|
|
|
|
// SyncResult ...
|
|
type SyncResult struct {
|
|
TotalPage int
|
|
TotalNum int
|
|
FailData []*FailData
|
|
}
|
|
|
|
// StatisticsCommits ...
|
|
type StatisticsCommits struct {
|
|
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
|
|
CommitID string `json:"commit_id"`
|
|
ProjectID int `json:"project_id" gorm:"column:project_id"`
|
|
ProjectName string `json:"project_name"`
|
|
ShortID string `json:"short_id"`
|
|
Title string `json:"title"`
|
|
AuthorName string `json:"author_name"`
|
|
AuthoredDate *time.Time `json:"authored_date"`
|
|
CommitterName string `json:"committer_name"`
|
|
CommittedDate *time.Time `json:"committed_date"`
|
|
CreatedAt *time.Time `json:"created_at"`
|
|
Message string `json:"message"`
|
|
ParentIDs string `json:"parent_ids"`
|
|
StatsAdditions int `json:"stats_additions"`
|
|
StatsDeletions int `json:"stats_deletions"`
|
|
Status string `json:"status" default:""`
|
|
}
|
|
|
|
// StatisticsIssues ...
|
|
type StatisticsIssues struct {
|
|
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
|
|
ProjectID int `json:"project_id"`
|
|
IssueID int `json:"issue_id"`
|
|
IssueIID int `json:"issue_iid" gorm:"column:issue_iid"`
|
|
MilestoneID int `json:"milestone_id"`
|
|
AuthorID int `json:"author_id"`
|
|
AuthorName string `json:"author_name"`
|
|
Description string `json:"description"`
|
|
State string `json:"state"`
|
|
Assignees string `json:"assignees"`
|
|
AssigneeID int `json:"assignee_id"`
|
|
AssigneeName string `json:"assignee_name"`
|
|
Upvotes int `json:"upvotes"`
|
|
Downvotes int `json:"downvotes"`
|
|
Labels string `json:"labels"`
|
|
Title string `json:"title"`
|
|
UpdatedAt *time.Time `json:"updated_at"`
|
|
CreatedAt *time.Time `json:"created_at"`
|
|
ClosedAt *time.Time `json:"closed_at"`
|
|
Subscribed bool `json:"subscribed"`
|
|
UserNotesCount int `json:"user_notes_count"`
|
|
DueDate *gitlab.ISOTime `json:"due_date"`
|
|
WebURL string `json:"web_url"`
|
|
TimeStats string `json:"time_stats"`
|
|
Confidential bool `json:"confidential"`
|
|
Weight int `json:"weight"`
|
|
DiscussionLocked bool `json:"discussion_locked"`
|
|
IssueLinkID int `json:"issue_link_id"`
|
|
}
|
|
|
|
// StatisticsRunners ...
|
|
type StatisticsRunners struct {
|
|
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
|
|
ProjectID int `json:"project_id"`
|
|
ProjectName string `json:"project_name"`
|
|
RunnerID int `json:"runner_id"`
|
|
Description string `json:"description"`
|
|
Active bool `json:"active"`
|
|
IsShared bool `json:"is_shared"`
|
|
IPAddress string `json:"ip_address"`
|
|
Name string `json:"name"`
|
|
Online bool `json:"online"`
|
|
Status string `json:"status"`
|
|
Token string `json:"token"`
|
|
}
|
|
|
|
// StatisticsJobs ...
|
|
type StatisticsJobs struct {
|
|
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
|
|
ProjectID int `json:"project_id"`
|
|
ProjectName string `json:"project_name"`
|
|
CommitID string `json:"commit_id"`
|
|
CreatedAt *time.Time `json:"created_at"`
|
|
Coverage float64 `json:"coverage"`
|
|
ArtifactsFile string `json:"artifacts_file"`
|
|
FinishedAt *time.Time `json:"finished_at"`
|
|
JobID int `json:"job_id"`
|
|
Name string `json:"name"`
|
|
Ref string `json:"ref"`
|
|
RunnerID int `json:"runner_id"`
|
|
RunnerDescription string `json:"runner_description"`
|
|
Stage string `json:"stage"`
|
|
StartedAt *time.Time `json:"started_at"`
|
|
Status string `json:"status"`
|
|
Tag bool `json:"tag"`
|
|
UserID int `json:"user_id"`
|
|
UserName string `json:"user_name"`
|
|
WebURL string `json:"web_url"`
|
|
}
|
|
|
|
// StatisticsMrs ...
|
|
type StatisticsMrs struct {
|
|
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
|
|
MRID int `json:"mr_id"`
|
|
MRIID int `json:"mr_iid" gorm:"column:mr_iid"`
|
|
TargetBranch string `json:"target_branch"`
|
|
SourceBranch string `json:"source_branch"`
|
|
ProjectID int `json:"project_id"`
|
|
ProjectName string `json:"project_name"`
|
|
Title string `json:"title"`
|
|
State string `json:"state"`
|
|
CreatedAt *time.Time `json:"created_at"`
|
|
UpdatedAt *time.Time `json:"updated_at"`
|
|
Upvotes int `json:"upvotes"`
|
|
Downvotes int `json:"downvotes"`
|
|
AuthorID int `json:"author_id"`
|
|
AuthorName string `json:"author_name"`
|
|
AssigneeID int `json:"assignee_id"`
|
|
AssigneeName string `json:"assignee_name"`
|
|
SourceProjectID int `json:"source_project_id"`
|
|
TargetProjectID int `json:"target_project_id"`
|
|
Labels string `json:"labels"`
|
|
Description string `json:"description"`
|
|
WorkInProgress bool `json:"work_in_progress"`
|
|
MilestoneID int `json:"milestone_id"`
|
|
MergeWhenPipelineSucceeds bool `json:"merge_when_pipeline_succeeds"`
|
|
MergeStatus string `json:"merge_status"`
|
|
MergedByID int `json:"merged_by_id"`
|
|
MergedByName string `json:"merged_by_name"`
|
|
MergedAt *time.Time `json:"merged_at"`
|
|
ClosedByID int `json:"closed_by_id"`
|
|
ClosedAt *time.Time `json:"closed_at"`
|
|
Subscribed bool `json:"subscribed"`
|
|
SHA string `json:"sha"`
|
|
MergeCommitSHA string `json:"merge_commit_sha"`
|
|
UserNotesCount int `json:"user_notes_count"`
|
|
ChangesCount string `json:"changes_count"`
|
|
ShouldRemoveSourceBranch bool `json:"should_remove_source_branch"`
|
|
ForceRemoveSourceBranch bool `json:"force_remove_source_branch"`
|
|
WebURL string `json:"web_url"`
|
|
DiscussionLocked bool `json:"discussion_locked"`
|
|
Changes string `json:"changes"`
|
|
TimeStatsHumanTimeEstimate string `json:"time_stats_human_time_estimate"`
|
|
TimeStatsHumanTotalTimeSpent string `json:"time_stats_human_total_time_spent"`
|
|
TimeStatsTimeEstimate int `json:"time_stats_time_estimate"`
|
|
TimeStatsTotalTimeSpent int `json:"time_stats_total_time_spent"`
|
|
Squash bool `json:"squash"`
|
|
PipelineID int `json:"pipeline_id"`
|
|
ChangeAdd int `json:"change_add"`
|
|
ChangeDel int `json:"change_del"`
|
|
TotalDiscussion int `json:"total_discussion"`
|
|
SolvedDiscussion int `json:"solved_discussion"`
|
|
}
|
|
|
|
// AggregateMrReviewer ...
|
|
type AggregateMrReviewer struct {
|
|
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
|
|
ProjectID int `json:"project_id"`
|
|
ProjectName string `json:"project_name"`
|
|
MrIID int `json:"mr_iid" gorm:"column:mr_iid"`
|
|
Title string `json:"title"`
|
|
WebUrl string `json:"web_url"`
|
|
AuthorName string `json:"author_name"`
|
|
ReviewerID int `json:"reviewer_id"`
|
|
ReviewerName string `json:"reviewer_name"`
|
|
ReviewType string `json:"review_type"`
|
|
ReviewID int `json:"review_id"`
|
|
ReviewCommand string `json:"review_command"`
|
|
CreatedAt *time.Time `json:"created_at"`
|
|
UserType string `json:"type"`
|
|
ApproveTime int `json:"approve_time"` // SpentTime 其实是反应时间+review时间
|
|
MergeTime int `json:"merge_time"`
|
|
}
|
|
|
|
// StatisticsPipeline ...
|
|
type StatisticsPipeline struct {
|
|
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
|
|
PipelineID int `json:"pipeline_id" gorm:"column:pipeline_id"`
|
|
ProjectName string `json:"project_name"`
|
|
ProjectID int `json:"project_id" gorm:"column:project_id"`
|
|
Status string `json:"status" gorm:"column:status" default:""`
|
|
Ref string `json:"ref" gorm:"column:ref"`
|
|
Tag bool `json:"tag" gorm:"column:tag"`
|
|
User string `json:"user" gorm:"column:user"`
|
|
UpdatedAt *time.Time `json:"updated_at" gorm:"column:updated_at"`
|
|
CreatedAt *time.Time `json:"created_at" gorm:"column:created_at"`
|
|
StartedAt *time.Time `json:"started_at" gorm:"column:started_at"`
|
|
FinishedAt *time.Time `json:"finished_at" gorm:"column:finished_at"`
|
|
CommittedAt *time.Time `json:"committed_at" gorm:"column:committed_at"`
|
|
Duration int `json:"duration" gorm:"column:duration"`
|
|
Coverage string `json:"coverage" gorm:"column:coverage"`
|
|
DurationTime int `json:"duration_time"`
|
|
}
|
|
|
|
// StatisticsNotes ...
|
|
type StatisticsNotes struct {
|
|
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
|
|
ProjectID int `json:"project_id"`
|
|
ProjectName string `json:"project_name"`
|
|
MrIID int `json:"mr_iid" gorm:"column:mr_iid"`
|
|
IssueIID int `json:"issue_iid" gorm:"column:issue_iid"`
|
|
NoteID int `json:"note_id"`
|
|
Body string `json:"body"`
|
|
Attachment string `json:"attachment"`
|
|
Title string `json:"title"`
|
|
FileName string `json:"file_name"`
|
|
AuthorID int `json:"author_id"`
|
|
AuthorName string `json:"author_name"`
|
|
System bool `json:"system"`
|
|
ExpiresAt *time.Time `json:"expires_at"`
|
|
UpdatedAt *time.Time `json:"updated_at"`
|
|
CreatedAt *time.Time `json:"created_at"`
|
|
NoteableID int `json:"noteable_id"`
|
|
NoteableType string `json:"noteable_type"`
|
|
Position string `json:"position"`
|
|
Resolvable bool `json:"resolvable"`
|
|
Resolved bool `json:"resolved"`
|
|
ResolvedByID int `json:"resolved_by_id"`
|
|
ResolvedByName string `json:"resolved_by_name"`
|
|
NoteableIID int `json:"noteable_iid" gorm:"column:noteable_iid"`
|
|
}
|
|
|
|
// StatisticsMembers ...
|
|
type StatisticsMembers struct {
|
|
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
|
|
ProjectID int `json:"project_id"`
|
|
ProjectName string `json:"project_name"`
|
|
MemberID int `json:"member_id"`
|
|
Username string `json:"username"`
|
|
Email string `json:"email"`
|
|
Name string `json:"name"`
|
|
State string `json:"state"`
|
|
CreatedAt *time.Time `json:"created_at"`
|
|
AccessLevel int `json:"access_level"`
|
|
}
|
|
|
|
// StatisticsMRAwardEmojis ...
|
|
type StatisticsMRAwardEmojis struct {
|
|
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
|
|
ProjectID int `json:"project_id"`
|
|
ProjectName string `json:"project_name"`
|
|
MrIID int `json:"mr_iid" gorm:"column:mr_iid"`
|
|
AwardEmojiID int `json:"award_emoji_id"`
|
|
Name string `json:"name"`
|
|
UserID int `json:"user_id"`
|
|
UserName string `json:"user_name"`
|
|
CreatedAt *time.Time `json:"created_at"`
|
|
UpdatedAt *time.Time `json:"updated_at"`
|
|
AwardableID int `json:"awardable_id"`
|
|
AwardableType string `json:"awardable_type"`
|
|
}
|
|
|
|
// StatisticsDiscussions ...
|
|
type StatisticsDiscussions struct {
|
|
ID int `json:"id" gorm:"AUTO_INCREMENT;primary_key;" form:"id"`
|
|
ProjectID int `json:"project_id"`
|
|
ProjectName string `json:"project_name"`
|
|
MrIID int `json:"mr_iid" gorm:"column:mr_iid"`
|
|
DiscussionID string `json:"discussion_id"`
|
|
IndividualNote bool `json:"individual_note"`
|
|
Notes string `json:"notes"`
|
|
}
|