harbor

package
v0.0.0-...-9be0976 Latest Latest
Warning

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

Go to latest
Published: Jan 19, 2021 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const (
	GETPROJECT = "api/projects/"
)
View Source
const (
	GETUSER = "/api/users/"
)

Variables

View Source
var (
	CreateProjectError = errors.New("create a project  error")
	UpdateProjectError = errors.New("update a project  error")
	DeleteProjectError = errors.New("delete a project  error")
)
View Source
var (
	CreateUserError    = errors.New("create a user error")
	DeleteUserError    = errors.New("delete a user error")
	UpdateUserPassword = errors.New("update a user password error")
)
View Source
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

type MemberUser struct {
	UserID   int    `json:"user_id"`
	Username string `json:"username"`
}

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 UpdateUser struct {
	UserId      string `json:"user_id"`
	OldPassWord string `json:"old_password"`
	NewPassWord string `json:"new_password"`
}

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"`
}

type UsersSearchFliter

type UsersSearchFliter struct {
	UserName string `json:"username"`
	Email    string `json:"email"`
	Page     int    `json:"page"`
	PageSize int    `json:"page_size"`
}

Jump to

Keyboard shortcuts

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