Documentation ¶
Index ¶
- Constants
- Variables
- func AddToHookTaskQueue(task *WebHookTask)
- func Init(db *DBClient)
- func RegisterCodeReviewer(t AICodeReviewType, f CodeReviewerCreateFunc)
- func StartHookTaskConsumer(db *DBClient)
- type AICodeReviewNoteRequest
- type AICodeReviewRequestForCodeSnippet
- type AICodeReviewRequestForMR
- type AICodeReviewType
- type BaseModel
- type BatchSearchMrCondition
- type BatchSearchMrRequest
- type CheckRun
- type CheckRuns
- type CodeReviewer
- type CodeReviewerCreateFunc
- type DBClient
- type FileCodeReviewer
- type MergeCount
- type MergeOptions
- type MergeQueryCondition
- type MergeRequest
- type MergeRequestState
- type MergeRequestsStats
- type MrCheckRun
- type Note
- type NoteData
- type NoteRequest
- type NoteRole
- type PayloadCommit
- type PayloadPushEvent
- type Permission
- type QueryMergeRequestsResult
- type QueryMergeRequestsStatsResult
- type Repo
- type RepoCache
- type Repository
- func (r *Repository) CheckPath(file string) (string, error)
- func (r *Repository) FullName() string
- func (r *Repository) InfoPacksPath() string
- func (r *Repository) LooseObjectPath(prefix string, suffix string) string
- func (r *Repository) PackIdxPath(pack string) string
- func (r *Repository) Path() string
- func (r *Repository) Root() string
- type Service
- func (svc *Service) AddBackupRecording(repo *gitmodule.Repository, commitID, remark string) (*apistructs.RepoFiles, error)
- func (svc *Service) AddProjectHook(hook *WebHook) (*WebHook, error)
- func (svc *Service) AddSystemHook(hook *WebHook) (*WebHook, error)
- func (svc *Service) BatchGetMergeRequests(request *BatchSearchMrRequest) ([]apistructs.MergeRequestInfo, error)
- func (svc *Service) CheckPermission(repo *gitmodule.Repository, user *User, permission Permission, ...) error
- func (svc *Service) CloseMR(repo *gitmodule.Repository, user *User, mergeId int) (*apistructs.MergeRequestInfo, error)
- func (svc *Service) CountMR(repo *gitmodule.Repository, state string) (int, error)
- func (svc *Service) CountMergeRequests(appIDs []string, state string) (map[uint64]int, error)
- func (svc *Service) CreateHookTask(task *WebHookTask) error
- func (svc *Service) CreateMergeRequest(repo *gitmodule.Repository, user *User, info *apistructs.MergeRequestInfo) (*apistructs.MergeRequestInfo, error)
- func (svc *Service) CreateNote(repo *gitmodule.Repository, user *User, mr *apistructs.MergeRequestInfo, ...) (note *Note, err error)
- func (svc *Service) CreateOrUpdateCheckRun(repo *gitmodule.Repository, request *apistructs.CheckRun) (*apistructs.CheckRun, error)
- func (svc *Service) CreateRepo(request *apistructs.CreateRepoRequest) (*Repo, error)
- func (svc *Service) DeleteBackupRecording(uuid string) (*apistructs.RepoFiles, error)
- func (svc *Service) DeleteRepo(repo *Repo) error
- func (svc *Service) GetBackupList(pageNo, pageSize int, repo *gitmodule.Repository) (*apistructs.BackupListResponse, error)
- func (svc *Service) GetMergeRequestDetail(repo *gitmodule.Repository, mergeId int) (*apistructs.MergeRequestInfo, error)
- func (svc *Service) GetProjectHooks(repository *gitmodule.Repository) ([]WebHook, error)
- func (svc *Service) GetProjectHooksByEvent(repository *gitmodule.Repository, event string, active bool) ([]WebHook, error)
- func (svc *Service) GetRepoByApp(appId int64) (*Repo, error)
- func (svc *Service) GetRepoById(id int64) (*Repo, error)
- func (svc *Service) GetRepoByNames(orgID int64, project, app string) (*Repo, error)
- func (svc *Service) GetRepoByPath(path string) (*Repo, error)
- func (svc *Service) GetRepoLocked(project, app int64) (bool, error)
- func (svc *Service) GetSystemHooksByEvent(event string, active bool) ([]WebHook, error)
- func (svc *Service) I18n(key string) string
- func (svc *Service) IsCheckRunsValid(repo *gitmodule.Repository, mrID int64) (bool, error)
- func (svc *Service) ListAllRepos(req apistructs.GittarListRepoRequest) ([]*Repo, error)
- func (svc *Service) Merge(repo *gitmodule.Repository, user *User, mergeId int, ...) (*gitmodule.Commit, error)
- func (svc *Service) QueryAllNotes(repo *gitmodule.Repository, mergeId int64) ([]Note, error)
- func (svc *Service) QueryCheckRuns(repo *gitmodule.Repository, mrID string) (apistructs.CheckRuns, error)
- func (svc *Service) QueryDiffNotes(repo *gitmodule.Repository, mergeId int64, oldCommitId string, ...) ([]Note, error)
- func (svc *Service) QueryMergeRequests(repo *gitmodule.Repository, queryCondition *apistructs.GittarQueryMrRequest) (*QueryMergeRequestsResult, error)
- func (svc *Service) QueryMergeRequestsStats(repo *gitmodule.Repository, queryCondition *apistructs.GittarQueryMrRequest) (*QueryMergeRequestsStatsResult, error)
- func (svc *Service) RemoveCheckRuns(mrID int64) error
- func (svc *Service) RemoveMR(repository *Repo) error
- func (svc *Service) RemoveProjectHooks(repository *Repo) error
- func (svc *Service) ReopenMR(repo *gitmodule.Repository, user *User, mergeId int) (*apistructs.MergeRequestInfo, error)
- func (svc *Service) SetLocked(repo *gitmodule.Repository, user *User, info *apistructs.LockedRepoRequest) (*apistructs.LockedRepoRequest, error)
- func (svc *Service) SyncMergeRequest(repo *gitmodule.Repository, branch string, commitID string, userID string, ...) error
- func (svc *Service) TriggerEvent(repository *gitmodule.Repository, eventName string, contentData interface{})
- func (svc *Service) UpdateJoinTempBranchStatus(id int, status string, isJoinTempStatus *bool) error
- func (svc *Service) UpdateMergeRequest(repo *gitmodule.Repository, user *User, info *apistructs.MergeRequestInfo) (*apistructs.MergeRequestInfo, error)
- func (svc *Service) UpdateRepo(repo *Repo, request *apistructs.UpdateRepoRequest) error
- func (svc *Service) UpdateRepoSizeCache(id int64, size int64) error
- type User
- type WebHook
- type WebHookTask
Constants ¶
View Source
const ( I18nKeyMrNoteCommentCannotBeEmpty = "mr.note.comment.cannot.be.empty" I18nKeyTemplateMrAICrTipForEachMaxLimit = "template.mr.ai.cr.tip.reach.max.limit" I18nKeyMrAICrTitle = "mr.ai.cr.title" I18nKeyFile = "file" I18nKeyCodeSnippet = "snippet" I18nKeyMrAICrNoSuggestion = "mr.ai.cr.no.suggestion" I18nKeyTemplateMrAICrFileContentMaxLimit = "template.mr.ai.cr.file.content.max.limit" I18nKeyMrAICrSessionTopic = "mr.ai.cr.session.topic" )
View Source
const ( HOOK_TYPE_PROJECT string = "project" HOOK_TYPE_SYSTEM string = "system" )
View Source
const (
HOOK_EVENT_PUSH string = "push_events"
)
View Source
const RelatedDiffLinesCountBefore = 3
Variables ¶
View Source
var ( MERGE_REQUEST_OPEN = "open" MERGE_REQUEST_MERGED = "merged" MERGE_REQUEST_CLOSED = "closed" MERGE_STATUS_UNCHECKED = "unchecked" MERGE_STATUS_CHECKING = "checking" MERGE_STATUS_CONFLICT = "conflict" MERGE_STATUS_NO_CONFLICT = "no_conflict" )
View Source
var ( NoteRoleAI = NoteRole("AI") NoteRoleUser = NoteRole("USER") )
View Source
var ( NoteTypeNormal = "normal" NoteTypeDiffNote = "diff_note" NoteTypeDiffNoteReply = "diff_note_reply" )
View Source
var CodeReviewerFactory = map[AICodeReviewType]CodeReviewerCreateFunc{}
View Source
var ERROR_REPO_LOCKED = errors.New("locked denied")
View Source
var HookTaskQueue = make(chan *WebHookTask, 300)
View Source
var MergeRequestStates = []MergeRequestState{"open", "closed", "merged"}
View Source
var ModeExternal = "external"
View Source
var NO_PERMISSION_ERROR = errors.New("no permission")
Functions ¶
func AddToHookTaskQueue ¶
func AddToHookTaskQueue(task *WebHookTask)
func RegisterCodeReviewer ¶
func RegisterCodeReviewer(t AICodeReviewType, f CodeReviewerCreateFunc)
func StartHookTaskConsumer ¶
func StartHookTaskConsumer(db *DBClient)
Types ¶
type AICodeReviewNoteRequest ¶
type AICodeReviewNoteRequest struct { NoteLocation NoteRequest `json:"noteLocation"` Type AICodeReviewType `json:"type,omitempty"` CodeSnippetRelated *AICodeReviewRequestForCodeSnippet `json:"codeSnippetRelated,omitempty"` }
type AICodeReviewRequestForMR ¶
type AICodeReviewRequestForMR struct{}
type AICodeReviewType ¶
type AICodeReviewType string
var ( AICodeReviewTypeMR AICodeReviewType = "MR" AICodeReviewTypeMRFile AICodeReviewType = "MR_FILE" AICodeReviewTypeMRCodeSnippet AICodeReviewType = "MR_CODE_SNIPPET" )
type BaseModel ¶
type BaseModel struct { ID int64 `gorm:"primary_key" json:"id"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"-"` DeletedAt *time.Time `sql:"index" json:"-"` }
Model base model definition, including fields `ID`, `CreatedAt`, `UpdatedAt`, `DeletedAt`, which could be embedded in your models
type User struct { gorm.Model }
type BatchSearchMrCondition ¶
type BatchSearchMrRequest ¶
type BatchSearchMrRequest struct {
Conditions []BatchSearchMrCondition `json:"conditions"`
}
type CheckRun ¶
type CheckRun struct { ID int64 `json:"id"` MrID int64 `json:"mrId"` Name string `json:"name"` // 名称 golang-lint/test Type string `json:"type"` // 类型 CI ExternalID string `json:"externalId"` // 外部系统 ID PipelineID string `json:"pipelineId"` // 流水线 ID Commit string `json:"commit"` Status apistructs.CheckRunStatus `json:"status"` //progress/completed Result apistructs.CheckRunResult `json:"result"` // success failed cancel Output string `json:"output"` CreatedAt time.Time `json:"createdAt"` CompletedAt *time.Time `json:"completedAt"` RepoID int64 `json:"repoId"` }
type CheckRuns ¶
type CheckRuns struct { CheckRun []*CheckRun `json:"checkrun"` Result apistructs.CheckRunResult `json:"result"` Mergable bool `json:"mergable"` }
type CodeReviewer ¶
type CodeReviewer interface {
CodeReview(i18n i18n.Translator, lang i18n.LanguageCodes, aiSessionID string) string
}
func NewCodeReviewer ¶
func NewCodeReviewer(req AICodeReviewNoteRequest, repo *gitmodule.Repository, user *User, mr *apistructs.MergeRequestInfo) (cr CodeReviewer, err error)
type CodeReviewerCreateFunc ¶
type CodeReviewerCreateFunc func(req AICodeReviewNoteRequest, repo *gitmodule.Repository, mr *apistructs.MergeRequestInfo, user *User) (CodeReviewer, error)
type FileCodeReviewer ¶
type FileCodeReviewer interface { CodeReviewer GetFileName() string }
type MergeCount ¶
type MergeOptions ¶
type MergeQueryCondition ¶
type MergeRequest ¶
type MergeRequest struct { ID int64 RepoID int64 `gorm:"size:150;index:idx_repo_id"` Title string Description string `gorm:"type:text"` State string `gorm:"size:150;index:idx_state"` AuthorId string `gorm:"size:150;index:idx_author_id"` AssigneeId string `gorm:"size:150;index:idx_assignee_id"` MergeUserId string CloseUserId string MergeCommitSha string RepoMergeId int SourceBranch string SourceSha string TargetBranch string TargetSha string RemoveSourceBranch bool CreatedAt time.Time UpdatedAt *time.Time MergeAt *time.Time CloseAt *time.Time Score int `gorm:"size:150;index:idx_score"` ScoreNum int `gorm:"size:150;index:idx_score_num"` JoinTempBranchStatus string `gorm:"join_temp_branch_status"` IsJoinTempBranch bool `gorm:"is_join_temp_branch"` }
MergeRequest model
func (*MergeRequest) ToInfo ¶
func (mergeRequest *MergeRequest) ToInfo(repo *gitmodule.Repository) *apistructs.MergeRequestInfo
type MergeRequestState ¶
type MergeRequestState string
const ( OpenState MergeRequestState = "open" ClosedState MergeRequestState = "closed" MergedState MergeRequestState = "merged" )
func (MergeRequestState) String ¶
func (s MergeRequestState) String() string
type MergeRequestsStats ¶
type MergeRequestsStats struct { State MergeRequestState `json:"state"` Total int `json:"total"` }
type MrCheckRun ¶
type Note ¶
type Note struct { ID int64 `json:"id"` RepoID int64 `json:"repoId"` Type string `json:"type" gorm:"size:150;index:idx_type"` // normal diff_note DiscussionId string `json:"discussionId"` //讨论id OldCommitId string `json:"oldCommitId"` NewCommitId string `json:"newCommitId"` MergeId int64 `json:"-" gorm:"index:idx_merge_id"` Note string `json:"note" gorm:"type:text"` Data string `json:"-" gorm:"type:text"` DataResult NoteData `json:"data" gorm:"-"` AuthorId string `json:"authorId"` AuthorUser *apistructs.UserInfoDto `json:"author" gorm:"-"` CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` Score int `json:"score" gorm:"size:150;index:idx_score"` Role NoteRole `json:"role"` }
Note struct
type NoteData ¶
type NoteData struct { DiffLines []*gitmodule.DiffLine `json:"diffLines"` OldPath string `json:"oldPath"` NewPath string `json:"newPath"` OldLine int `json:"oldLine"` NewLine int `json:"newLine"` OldLineTo int `json:"oldLineTo"` NewLineTo int `json:"newLineTo"` OldCommitId string `json:"oldCommitId"` NewCommitId string `json:"newCommitId"` AICodeReviewType AICodeReviewType `json:"aiCodeReviewType,omitempty"` AISessionID string `json:"aiSessionID,omitempty"` }
type NoteRequest ¶
type NoteRequest struct { Note string `json:"note"` Type string `json:"type"` DiscussionId string `json:"discussionId"` //讨论id OldCommitId string `json:"oldCommitId"` NewCommitId string `json:"newCommitId"` OldPath string `json:"oldPath"` NewPath string `json:"newPath"` OldLine int `json:"oldLine"` NewLine int `json:"newLine"` OldLineTo int `json:"oldLineTo"` NewLineTo int `json:"newLineTo"` // these four index number must in a same section Score int `json:"score" default:"-1"` Role NoteRole `json:"role"` AICodeReviewType AICodeReviewType `json:"aiCodeReviewType,omitempty"` StartAISession bool `json:"startAISession,omitempty"` }
type PayloadCommit ¶
type PayloadCommit struct { Id string `json:"id"` Author *User `json:"author"` Timestamp time.Time `json:"timestamp"` Message string `json:"message"` Added []string `json:"added"` Modified []string `json:"modified"` Removed []string `json:"removed"` }
PayloadCommit struct for display
type PayloadPushEvent ¶
type PayloadPushEvent struct { ObjectKind string `json:"object_kind"` IsTag bool `json:"is_tag"` Ref string `json:"ref"` After string `json:"after"` Before string `json:"before"` IsDelete bool `json:"is_delete"` Commits []PayloadCommit `json:"commits"` TotalCommitsCount int `json:"total_commits_count"` Pusher *User `json:"pusher"` Repository *gitmodule.Repository `json:"repository"` }
func (*PayloadPushEvent) IsCreateNewBranch ¶
func (p *PayloadPushEvent) IsCreateNewBranch() bool
func (*PayloadPushEvent) IsDeleteBranch ¶
func (p *PayloadPushEvent) IsDeleteBranch() bool
type Permission ¶
type Permission string
const ( PermissionCreateBranch Permission = "CREATE_BRANCH" PermissionDeleteBranch Permission = "DELETE_BRANCH" PermissionCreateTAG Permission = "CREATE_TAG" PermissionDeleteTAG Permission = "DELETE_TAG" PermissionCloseMR Permission = "CLOSE_MR" PermissionCreateMR Permission = "CREATE_MR" PermissionMergeMR Permission = "MERGE_MR" PermissionEditMR Permission = "EDIT_MR" PermissionArchive Permission = "ARCHIVE" PermissionClone Permission = "CLONE" PermissionPush Permission = "PUSH" PermissionPushProtectBranch Permission = "PUSH_PROTECT_BRANCH" PermissionPushProtectBranchForce Permission = "PUSH_PROTECT_BRANCH_FORCE" PermissionRepoLocked Permission = "REPO_LOCKED" )
type QueryMergeRequestsResult ¶
type QueryMergeRequestsResult struct { List []*apistructs.MergeRequestInfo `json:"list"` Total int `json:"total"` }
type QueryMergeRequestsStatsResult ¶
type QueryMergeRequestsStatsResult struct {
Stats []MergeRequestsStats `json:"stats"`
}
type Repo ¶
type Repo struct { ID int64 OrgID int64 ProjectID int64 AppID int64 OrgName string `gorm:"size:150;index:idx_org_name"` ProjectName string `gorm:"size:150;index:idx_project_name"` AppName string `gorm:"size:150;index:idx_app_name"` Path string `gorm:"size:150;index:idx_path"` IsLocked bool `gorm:"size:150;index:idx_is_locked"` Size int64 IsExternal bool Config string }
type RepoCache ¶
type Repository ¶
type Repository struct { Organization string `json:"org"` Repository string `json:"repo"` Url string `json:"url"` }
Repository struct
func (*Repository) CheckPath ¶
func (r *Repository) CheckPath(file string) (string, error)
CheckPath for Repository
func (*Repository) FullName ¶
func (r *Repository) FullName() string
func (*Repository) InfoPacksPath ¶
func (r *Repository) InfoPacksPath() string
InfoPacksPath for Repository
func (*Repository) LooseObjectPath ¶
func (r *Repository) LooseObjectPath(prefix string, suffix string) string
LooseObjectPath for Repository
func (*Repository) PackIdxPath ¶
func (r *Repository) PackIdxPath(pack string) string
PackIdxPath for Repository
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
func NewService ¶
func NewService(dbClient *DBClient, bundle *bundle.Bundle, i18nTran i18n.Translator, lang i18n.LanguageCodes) *Service
func (*Service) AddBackupRecording ¶
func (svc *Service) AddBackupRecording(repo *gitmodule.Repository, commitID, remark string) (*apistructs.RepoFiles, error)
添加备份记录
func (*Service) AddProjectHook ¶
func (*Service) BatchGetMergeRequests ¶
func (svc *Service) BatchGetMergeRequests(request *BatchSearchMrRequest) ([]apistructs.MergeRequestInfo, error)
func (*Service) CheckPermission ¶
func (svc *Service) CheckPermission(repo *gitmodule.Repository, user *User, permission Permission, resourceRoleList []string) error
func (*Service) CloseMR ¶
func (svc *Service) CloseMR(repo *gitmodule.Repository, user *User, mergeId int) (*apistructs.MergeRequestInfo, error)
func (*Service) CountMergeRequests ¶
func (*Service) CreateHookTask ¶
func (svc *Service) CreateHookTask(task *WebHookTask) error
func (*Service) CreateMergeRequest ¶
func (svc *Service) CreateMergeRequest(repo *gitmodule.Repository, user *User, info *apistructs.MergeRequestInfo) (*apistructs.MergeRequestInfo, error)
func (*Service) CreateNote ¶
func (svc *Service) CreateNote(repo *gitmodule.Repository, user *User, mr *apistructs.MergeRequestInfo, req NoteRequest) (note *Note, err error)
func (*Service) CreateOrUpdateCheckRun ¶
func (svc *Service) CreateOrUpdateCheckRun(repo *gitmodule.Repository, request *apistructs.CheckRun) (*apistructs.CheckRun, error)
func (*Service) CreateRepo ¶
func (svc *Service) CreateRepo(request *apistructs.CreateRepoRequest) (*Repo, error)
func (*Service) DeleteBackupRecording ¶
func (svc *Service) DeleteBackupRecording(uuid string) (*apistructs.RepoFiles, error)
删除备份记录
func (*Service) DeleteRepo ¶
func (*Service) GetBackupList ¶
func (svc *Service) GetBackupList(pageNo, pageSize int, repo *gitmodule.Repository) (*apistructs.BackupListResponse, error)
获取备份列表
func (*Service) GetMergeRequestDetail ¶
func (svc *Service) GetMergeRequestDetail(repo *gitmodule.Repository, mergeId int) (*apistructs.MergeRequestInfo, error)
func (*Service) GetProjectHooks ¶
func (svc *Service) GetProjectHooks(repository *gitmodule.Repository) ([]WebHook, error)
func (*Service) GetProjectHooksByEvent ¶
func (*Service) GetRepoByNames ¶
func (*Service) GetSystemHooksByEvent ¶
func (*Service) IsCheckRunsValid ¶
func (*Service) ListAllRepos ¶
func (svc *Service) ListAllRepos(req apistructs.GittarListRepoRequest) ([]*Repo, error)
func (*Service) Merge ¶
func (svc *Service) Merge(repo *gitmodule.Repository, user *User, mergeId int, mergeOptions *MergeOptions) (*gitmodule.Commit, error)
func (*Service) QueryAllNotes ¶
func (*Service) QueryCheckRuns ¶
func (svc *Service) QueryCheckRuns(repo *gitmodule.Repository, mrID string) (apistructs.CheckRuns, error)
func (*Service) QueryDiffNotes ¶
func (*Service) QueryMergeRequests ¶
func (svc *Service) QueryMergeRequests(repo *gitmodule.Repository, queryCondition *apistructs.GittarQueryMrRequest) (*QueryMergeRequestsResult, error)
func (*Service) QueryMergeRequestsStats ¶
func (svc *Service) QueryMergeRequestsStats(repo *gitmodule.Repository, queryCondition *apistructs.GittarQueryMrRequest) (*QueryMergeRequestsStatsResult, error)
func (*Service) RemoveCheckRuns ¶
func (*Service) RemoveProjectHooks ¶
func (*Service) ReopenMR ¶
func (svc *Service) ReopenMR(repo *gitmodule.Repository, user *User, mergeId int) (*apistructs.MergeRequestInfo, error)
func (*Service) SetLocked ¶
func (svc *Service) SetLocked(repo *gitmodule.Repository, user *User, info *apistructs.LockedRepoRequest) (*apistructs.LockedRepoRequest, error)
func (*Service) SyncMergeRequest ¶
func (*Service) TriggerEvent ¶
func (svc *Service) TriggerEvent(repository *gitmodule.Repository, eventName string, contentData interface{})
func (*Service) UpdateJoinTempBranchStatus ¶
func (*Service) UpdateMergeRequest ¶
func (svc *Service) UpdateMergeRequest(repo *gitmodule.Repository, user *User, info *apistructs.MergeRequestInfo) (*apistructs.MergeRequestInfo, error)
func (*Service) UpdateRepo ¶
func (svc *Service) UpdateRepo(repo *Repo, request *apistructs.UpdateRepoRequest) error
type User ¶
type User struct { Id string `json:"id"` Name string `json:"name"` NickName string `json:"nickname"` Email string `json:"email"` }
User struct for sender pusher and more
func NewInnerUser ¶
func NewInnerUser() *User
func (*User) IsInnerUser ¶
func (*User) ToGitSignature ¶
type WebHook ¶
type WebHook struct { BaseModel HookType string `json:"hook_type" gorm:"size:150;index:idx_hook_type"` Name string `json:"name" gorm:"size:150;index:idx_hook_name"` RepoID int64 `json:"repo" gorm:"size:150;index:idx_repo_id"` Token string `json:"token"` Url string `json:"url"` IsActive bool `json:"is_active"` PushEvents bool `json:"push_events"` }
type WebHookTask ¶
type WebHookTask struct { BaseModel HookId int64 `gorm:"index:idx_hook_id"` Url string Event string IsDelivered bool IsSucceed bool RequestContent string `gorm:"type:text"` ResponseContent string `gorm:"type:text"` ResponseStatus string }
WebHookTask represents a hook task. todo 请求头 响应头
Click to show internal directories.
Click to hide internal directories.