gopkg/git_hook/define.go

166 lines
9.4 KiB
Go
Raw Normal View History

// Package git_hook...
//
// Description : git_hook...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2021-11-11 6:23 下午
package git_hook
// HookData hook通知数据
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 6:23 下午 2021/11/11
type HookData struct {
2021-11-11 20:46:25 +08:00
Repository Repository `json:"repository"` // 仓库信息
2021-11-11 22:06:56 +08:00
Sender User `json:"sender"`
Ref string `json:"ref"` // 分支,如 : refs/heads/master
Before string `json:"before"` // 之前版本号 : e162757f3f4a37786b4118a5346baae5dd24ecde
After string `json:"after"` // 当前版本号 : c70a362d850a820704bd374363ea4e7ea810fd1a
HeadCommit Commit `json:"head_commit"` // 最近一次提交
2021-11-11 20:46:25 +08:00
CompareUrl string `json:"compare_url"` // 两个版本号代码diff的URL, 点击后可查看diff
2021-11-11 22:06:56 +08:00
Commits []Commit `json:"commits"` // 提交记录列表
Pusher User `json:"pusher"` // 推送人信息
}
// Repository 仓库信息
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 6:24 下午 2021/11/11
type Repository struct {
Mirror bool `json:"mirror"`
2021-11-11 20:46:25 +08:00
OriginalUrl string `json:"original_url"` // original_url
StarsCount int64 `json:"stars_count"` // start 数量
IgnoreWhitespaceConflicts bool `json:"ignore_whitespace_conflicts"` // 忽略空格的冲突
FullName string `json:"full_name"` // 仓库完整名称
Fork bool `json:"fork"` // 是否 fork
CreatedAt string `json:"created_at"` // 创建时间
Internal bool `json:"internal"` // 是否内部仓库
AllowRebaseExplicit bool `json:"allow_rebase_explicit"` // 是否允许rebase
MirrorInterval string `json:"mirror_interval"` // mirror_interval
CloneUrl string `json:"clone_url"` // gi clone 对用的 https 地址
WatchersCount int64 `json:"watchers_count"` // 监听器数量
OpenIssuesCount int64 `json:"open_issues_count"` // 未解决的issues数量
ReleaseCounter int64 `json:"release_counter"` // 发布版本数量
InternalTracker RepositoryInternalTracker `json:"internal_tracker"` // 内部跟踪配置
Name string `json:"name"` // 仓库名称
Empty bool `json:"empty"` // 仓库是否为空
SshUrl string `json:"ssh_url"` // git clone 对应的 ssh 地址
2021-11-11 21:01:19 +08:00
ForksCount int64 `json:"forks_count"` // fork 次数
Permissions RepositoryPermission `json:"permissions"` // 权限配置
Private bool `json:"private"` // 是否为私有仓库
Size int64 `json:"size"` // 仓库大小 KB
HasWiki bool `json:"has_wiki"` // 是否有 wiki
HasProjects bool `json:"has_projects"` // 是否有项目
AllowMergeCommits bool `json:"allow_merge_commits"` // 是否允许合并提交
AvatarUrl string `json:"avatar_url"` // 头像地址
ID int64 `json:"id"` // 仓库ID
Description string `json:"description"` // 创建仓库时候的描述
Website string `json:"website"` // 网站
UpdatedAt string `json:"updated_at"` // 更新时间
HasPullRequests bool `json:"has_pull_requests"` // 是否有 pull request
Parent map[string]interface{} `json:"parent"` // parent
OpenPrCounter int64 `json:"open_pr_counter"` // 打开的pr数量
HasIssues bool `json:"has_issues"` // 是否有issues
AllowRebase bool `json:"allow_rebase"` // 是否允许rebase
AllowSquashMerge bool `json:"allow_squash_merge"` // 是否允许 合并 merge (将分支内容合并成一次提交, 合入主干)
2021-11-11 22:06:56 +08:00
Owner User `json:"owner"` // 仓库所有者信息
2021-11-11 21:01:19 +08:00
Template bool `json:"template"` // 是否是模版
HtmlUrl string `json:"html_url"` // 访问仓库的html地址
DefaultBranch string `json:"default_branch"` // 默认分支
Archived bool `json:"archived"` // 是否已归档
DefaultMergeStyle string `json:"default_merge_style"` // 默认的合并方式
}
// RepositoryInternalTracker 内部跟踪器
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 6:28 下午 2021/11/11
type RepositoryInternalTracker struct {
2021-11-11 22:06:56 +08:00
EnableTimeTracker bool `json:"enable_time_tracker"` // 启用time_tracker
AllowOnlyContributorsToTrackTime bool `json:"allow_only_contributors_to_track_time"` // 仅有代码贡献者允许
EnableIssueDependencies bool `json:"enable_issue_dependencies"` // 启用 issue_dependencies
}
// RepositoryPermission 仓库权限
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 6:29 下午 2021/11/11
type RepositoryPermission struct {
2021-11-11 22:06:56 +08:00
Pull bool `json:"pull"` // 是否允许 pull 代码
Admin bool `json:"admin"` // 是否是管理员
Push bool `json:"push"` // 是否允许push代码
}
2021-11-11 22:06:56 +08:00
// User 用户信息
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 6:30 下午 2021/11/11
2021-11-11 22:06:56 +08:00
type User struct {
IsAdmin bool `json:"is_admin"` // 是否是管理员
Website string `json:"website"` // 网页
Email string `json:"email"` // 邮箱
AvatarUrl string `json:"avatar_url"` // 头像
ProhibitLogin bool `json:"prohibit_login"` // 禁止登录
Description string `json:"description"` // 描述
FollowingCount int64 `json:"following_count"` // follower数量
StarredReposCount int64 `json:"starred_repos_count"` // star仓库数量
Username string `json:"username"` // 用户名
Login string `json:"login"` // 登录
Created string `json:"created"` // 创建时间
Visibility string `json:"visibility"` // 是否可见
FullName string `json:"full_name"` // 全名
LastLogin string `json:"last_login"` // 最近登录时间
Restricted bool `json:"restricted"` // 是否受限
Active bool `json:"active"` // 是否活跃
Location string `json:"location"` // 位置
FollowersCount int64 `json:"followers_count"` // follower数量
ID int64 `json:"id"` // id
Language string `json:"language"` // 语言
}
2021-11-11 22:06:56 +08:00
// Commit 提交记录信息
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 6:25 下午 2021/11/11
2021-11-11 22:06:56 +08:00
type Commit struct {
Message string `json:"message"` // 提交时带的message
Url string `json:"url"` // 浏览此版本代码的地址
Author CommitAuthor `json:"author"` // 作者信息
Verification map[string]interface{} `json:"verification"` // 验证
Timestamp string `json:"timestamp"` // 时间
ID string `json:"id"` // 提交的版本号 98ccd35d19d17c8e624a492cc5811fe6f381ca09
Committer CommitAuthor `json:"committer"` // 提交人信息
Added []string `json:"added"` // 增加的文件列表
Removed []string `json:"removed"` // 移除文件列表
Modified []string `json:"modified"` // 修改的文件列表
}
// CommitAuthor 提交人的信息
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 6:31 下午 2021/11/11
type CommitAuthor struct {
2021-11-11 22:06:56 +08:00
Name string `json:"name"` // 昵称
Email string `json:"email"` // 邮箱
Username string `json:"username"` // 用户名
}
2021-11-12 11:40:08 +08:00
// ResponseData 处理结果的返回值
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 11:37 上午 2021/11/12
type ResponseData struct {
Code interface{} `json:"code"`
Message string `json:"message"`
Data interface{} `json:"data"`
}