Documentation ¶
Index ¶
- Constants
- Variables
- type CveWhitelist
- type HarborClient
- func (c *HarborClient) CreateProject(project *Project) error
- func (c *HarborClient) CreateProjectMember(projectId string, member *Member) error
- func (c *HarborClient) CreateUser(user *User) error
- func (c *HarborClient) DeleteProject(projectId int) error
- func (c *HarborClient) DeleteProjectMember(projectId, mid string) error
- func (c *HarborClient) DeleteUser(userId int) error
- func (c *HarborClient) GetUsers(userSearchFliter *UsersSearchFliter) ([]User, error)
- func (c *HarborClient) ListProjectMembers(opt *MemberOptions) ([]MemberRes, error)
- func (c *HarborClient) ListProjects(opt *ProjectOption) ([]*ProjectListRes, error)
- func (c *HarborClient) UpdateProject(opt *UpdateProject) error
- func (c *HarborClient) UpdateProjectMember(memberUpdateOption *MemberUpdateOption, projectId, mid string) error
- func (c *HarborClient) UpdateUserPassword(updateUser *UpdateUser) error
- type Member
- type MemberGroup
- type MemberOptions
- type MemberRes
- type MemberUpdateOption
- type MemberUser
- type Metadata
- type Project
- type ProjectListRes
- type ProjectOption
- type UpdateProject
- type UpdateUser
- type User
- type UsersSearchFliter
Constants ¶
const (
GETPROJECT = "api/projects/"
)
const (
GETUSER = "/api/users/"
)
Variables ¶
var ( CreateProjectError = errors.New("create a project error") UpdateProjectError = errors.New("update a project error") DeleteProjectError = errors.New("delete a project error") )
var ( CreateUserError = errors.New("create a user error") DeleteUserError = errors.New("delete a user error") UpdateUserPassword = errors.New("update a user password error") )
var (
CreateProjectMemberError = errors.New("create project member error")
)
Functions ¶
This section is empty.
Types ¶
type CveWhitelist ¶
type CveWhitelist struct { ID int `json:"id"` ProjectID int `json:"project_id"` ExpiresAt int `json:"expires_at"` Items []struct { CveID string `json:"cve_id"` } `json:"items"` }
CveWhitelist CveWhitelist
type HarborClient ¶
type HarborClient struct {
Client *resty.Client
}
HarborClient a harbor clientv2
func NewHarborClient ¶
func NewHarborClient(host, userName, passWord string) *HarborClient
NewHarborClient new a harbor clientv2
func (*HarborClient) CreateProject ¶
func (c *HarborClient) CreateProject(project *Project) error
CreateProject create a project
func (*HarborClient) CreateProjectMember ¶
func (c *HarborClient) CreateProjectMember(projectId string, member *Member) error
CreateProjectMember create a projectmember
func (*HarborClient) CreateUser ¶
func (c *HarborClient) CreateUser(user *User) error
CreateUser Creates a new user account.
func (*HarborClient) DeleteProject ¶
func (c *HarborClient) DeleteProject(projectId int) error
UpdateProject delete a project
func (*HarborClient) DeleteProjectMember ¶
func (c *HarborClient) DeleteProjectMember(projectId, mid string) error
DeleteProjectMember update a projectmember
func (*HarborClient) DeleteUser ¶
func (c *HarborClient) DeleteUser(userId int) error
DeleteUser Mark a registered user as be removed.
func (*HarborClient) GetUsers ¶
func (c *HarborClient) GetUsers(userSearchFliter *UsersSearchFliter) ([]User, error)
GetUsers Get registered users of Harbor.
func (*HarborClient) ListProjectMembers ¶
func (c *HarborClient) ListProjectMembers(opt *MemberOptions) ([]MemberRes, error)
ListProjects get all projectmembers
func (*HarborClient) ListProjects ¶
func (c *HarborClient) ListProjects(opt *ProjectOption) ([]*ProjectListRes, error)
todo: 考虑做成可选参数,变成默认值,就取所有的仓储 ListProjects get all project
func (*HarborClient) UpdateProject ¶
func (c *HarborClient) UpdateProject(opt *UpdateProject) error
UpdateProject update a project
func (*HarborClient) UpdateProjectMember ¶
func (c *HarborClient) UpdateProjectMember(memberUpdateOption *MemberUpdateOption, projectId, mid string) error
CreateProjectMember update a projectmember
func (*HarborClient) UpdateUserPassword ¶
func (c *HarborClient) UpdateUserPassword(updateUser *UpdateUser) error
UpdateUserPassword update a user password
type Member ¶
type Member struct { RoleID int `json:"role_id"` MemberUser MemberUser `json:"member_user"` MemberGroup MemberGroup `json:"member_group"` }
Member member
type MemberGroup ¶
type MemberGroup struct { ID int `json:"id"` GroupName string `json:"group_name"` GroupType int `json:"group_type"` LdapGroupDn string `json:"ldap_group_dn"` }
MemberGroup a Member Group
type MemberOptions ¶
type MemberOptions struct { ProjectID int `json:"project_id"` EntityName string `json:"entity_name"` }
MemberOptions a Member Options
type MemberRes ¶
type MemberRes struct { ID int `json:"id"` ProjectID int `json:"project_id"` EntityName string `json:"entity_name"` RoleName string `json:"role_name"` RoleID int `json:"role_id"` EntityID int `json:"entity_id"` EntityType string `json:"entity_type"` }
MemberRes a Member Response
type MemberUpdateOption ¶
type MemberUpdateOption struct {
RoleID int `json:"role_id"`
}
MemberUpdateOption a MemberUpdate Option
type MemberUser ¶
MemberUser a member user
type Metadata ¶
type Metadata struct { Public string `json:"public"` EnableContentTrust string `json:"enable_content_trust"` PreventVul string `json:"prevent_vul"` Severity string `json:"severity"` AutoScan string `json:"auto_scan"` ReuseSysCveWhitelist string `json:"reuse_sys_cve_whitelist"` }
Metadata Metadata
type Project ¶
type Project struct { CountLimit int `json:"count_limit"` ProjectName string `json:"project_name"` CveWhitelist CveWhitelist `json:"cve_whitelist"` StorageLimit int `json:"storage_limit"` Metadata Metadata `json:"metadata"` }
Project a Project entity
type ProjectListRes ¶
type ProjectListRes struct { ProjectID int `json:"project_id"` OwnerID int `json:"owner_id"` Name string `json:"name"` CreationTime string `json:"creation_time"` UpdateTime string `json:"update_time"` Deleted bool `json:"deleted"` OwnerName string `json:"owner_name"` Togglable bool `json:"togglable"` CurrentUserRoleID int `json:"current_user_role_id"` RepoCount int `json:"repo_count"` ChartCount int `json:"chart_count"` Metadata Metadata `json:"metadata"` CveWhitelist CveWhitelist `json:"cve_whitelist"` }
ProjectListRes a ProjectListRes
type ProjectOption ¶
type ProjectOption struct { Name string `json:"name"` // NOTE: // 这里将 public 的类型从 bool 变更为 string ,因为bool 类型只有 true 和 false 二值语义,而实际使用中需要第三种语义 // 1. 若为 true 则仅返回 public 项目; // 2. 若为 false 则仅返回 private 项目; // 3. 若不指定 public 参数,则应该同时返回 public 和 private 项目; Public string `json:"public"` // FIXME: // harbor 中基于 owner 过滤的功能似乎存在问题; Owner string `json:"owner"` Page int `json:"page"` PageSize int `json:"page_size"` }
ProjectOption ProjectOption
type UpdateProject ¶
type UpdateProject struct { ProjectId int `json:"project_id"` CountLimit int `json:"count_limit"` ProjectName string `json:"project_name"` CveWhitelist CveWhitelist `json:"cve_whitelist"` StorageLimit int `json:"storage_limit"` Metadata Metadata `json:"metadata"` }
UpdateProject a UpdateProject entity
type UpdateUser ¶
type User ¶
type User struct { UserID int `json:"user_id"` Username string `json:"username"` Email string `json:"email"` Password string `json:"password"` Realname string `json:"realname"` Comment string `json:"comment"` Deleted bool `json:"deleted"` RoleName string `json:"role_name"` RoleID int `json:"role_id"` HasAdminRole bool `json:"has_admin_role"` ResetUUID string `json:"reset_uuid"` Salt string `json:"Salt"` CreationTime string `json:"creation_time"` UpdateTime string `json:"update_time"` }