Documentation
¶
Index ¶
- type AccessLevelValue
- type BuildStateValue
- type Commit
- type CommitStats
- type CustomAttribute
- type EventTargetTypeValue
- type EventTypeValue
- type ForkParent
- type GroupAccess
- type ISOTime
- type Links
- type ListOptions
- type ListProjectsOptions
- type ListUsersOptions
- type MergeMethodValue
- type NotificationLevelValue
- type Permissions
- type Project
- type ProjectAccess
- type ProjectNamespace
- type ProjectStatistics
- type Release
- type Repository
- type StorageStatistics
- type Tag
- type User
- type UserIdentity
- type VisibilityValue
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AccessLevelValue ¶
type AccessLevelValue int
AccessLevelValue represents a permission level within GitLab.
GitLab API docs: https://docs.gitlab.com/ce/permissions/permissions.html
const ( NoPermissions AccessLevelValue = 0 GuestPermissions AccessLevelValue = 10 ReporterPermissions AccessLevelValue = 20 DeveloperPermissions AccessLevelValue = 30 MaintainerPermissions AccessLevelValue = 40 OwnerPermissions AccessLevelValue = 50 // These are deprecated and should be removed in a future version MasterPermissions AccessLevelValue = 40 OwnerPermission AccessLevelValue = 50 )
List of available access levels
GitLab API docs: https://docs.gitlab.com/ce/permissions/permissions.html
type BuildStateValue ¶
type BuildStateValue string
BuildStateValue represents a GitLab build state.
const ( Pending BuildStateValue = "pending" Running BuildStateValue = "running" Success BuildStateValue = "success" Failed BuildStateValue = "failed" Canceled BuildStateValue = "canceled" Skipped BuildStateValue = "skipped" )
These constants represent all valid build states.
type Commit ¶
type Commit struct {
ID string `json:"id"`
ShortID string `json:"short_id"`
Title string `json:"title"`
AuthorName string `json:"author_name"`
AuthorEmail string `json:"author_email"`
AuthoredDate string `json:"authored_date"`
CommitterName string `json:"committer_name"`
CommitterEmail string `json:"committer_email"`
CommittedDate string `json:"committed_date"`
CreatedAt string `json:"created_at"`
Message string `json:"message"`
ParentIDs []string `json:"parent_ids"`
Stats *CommitStats `json:"stats"`
Status *BuildStateValue `json:"status"`
}
Commit represents a GitLab commit.
GitLab API docs: https://docs.gitlab.com/ce/api/commits.html
type CommitStats ¶
type CommitStats struct {
Additions int `json:"additions"`
Deletions int `json:"deletions"`
Total int `json:"total"`
}
CommitStats represents the number of added and deleted files in a commit.
GitLab API docs: https://docs.gitlab.com/ce/api/commits.html
type CustomAttribute ¶
CustomAttribute struct is used to unmarshal response to api calls.
GitLab API docs: https://docs.gitlab.com/ce/api/custom_attributes.html
type EventTargetTypeValue ¶
type EventTargetTypeValue string
EventTargetTypeValue represents actions type value for contribution events
const ( IssueEventTargetType EventTargetTypeValue = "issue" MilestoneEventTargetType EventTargetTypeValue = "milestone" MergeRequestEventTargetType EventTargetTypeValue = "merge_request" NoteEventTargetType EventTargetTypeValue = "note" ProjectEventTargetType EventTargetTypeValue = "project" SnippetEventTargetType EventTargetTypeValue = "snippet" UserEventTargetType EventTargetTypeValue = "user" )
List of available action type
GitLab API docs: https://docs.gitlab.com/ce/api/events.html#target-types
type EventTypeValue ¶
type EventTypeValue string
EventTypeValue represents actions type for contribution events
const ( CreatedEventType EventTypeValue = "created" UpdatedEventType EventTypeValue = "updated" ClosedEventType EventTypeValue = "closed" ReopenedEventType EventTypeValue = "reopened" PushedEventType EventTypeValue = "pushed" CommentedEventType EventTypeValue = "commented" MergedEventType EventTypeValue = "merged" JoinedEventType EventTypeValue = "joined" LeftEventType EventTypeValue = "left" DestroyedEventType EventTypeValue = "destroyed" ExpiredEventType EventTypeValue = "expired" )
List of available action type
GitLab API docs: https://docs.gitlab.com/ce/api/events.html#action-types
type ForkParent ¶
type ForkParent struct {
HTTPURLToRepo string `json:"http_url_to_repo"`
ID int `json:"id"`
Name string `json:"name"`
NameWithNamespace string `json:"name_with_namespace"`
Path string `json:"path"`
PathWithNamespace string `json:"path_with_namespace"`
WebURL string `json:"web_url"`
}
ForkParent represents the parent project when this is a fork.
type GroupAccess ¶
type GroupAccess struct {
AccessLevel AccessLevelValue `json:"access_level"`
NotificationLevel NotificationLevelValue `json:"notification_level"`
}
GroupAccess represents group access.
type Links ¶
type Links struct {
Self string `json:"self"`
Issues string `json:"issues"`
MergeRequests string `json:"merge_requests"`
RepoBranches string `json:"repo_branches"`
Labels string `json:"labels"`
Events string `json:"events"`
Members string `json:"members"`
}
Links represents a project web links for self, issues, merge_requests, repo_branches, labels, events, members.
type ListOptions ¶
type ListOptions struct {
// For paginated result sets, page of results to retrieve.
Page int `url:"page,omitempty" json:"page,omitempty"`
// For paginated result sets, the number of results to include per page.
PerPage int `url:"per_page,omitempty" json:"per_page,omitempty"`
}
ListOptions specifies the optional parameters to various List methods that support pagination.
type ListProjectsOptions ¶
type ListProjectsOptions struct {
ListOptions
Archived *bool `url:"archived,omitempty" json:"archived,omitempty"`
OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"`
Sort *string `url:"sort,omitempty" json:"sort,omitempty"`
Search *string `url:"search,omitempty" json:"search,omitempty"`
Simple *bool `url:"simple,omitempty" json:"simple,omitempty"`
Owned *bool `url:"owned,omitempty" json:"owned,omitempty"`
Membership *bool `url:"membership,omitempty" json:"membership,omitempty"`
Starred *bool `url:"starred,omitempty" json:"starred,omitempty"`
Statistics *bool `url:"statistics,omitempty" json:"statistics,omitempty"`
Visibility *VisibilityValue `url:"visibility,omitempty" json:"visibility,omitempty"`
WithIssuesEnabled *bool `url:"with_issues_enabled,omitempty" json:"with_issues_enabled,omitempty"`
WithMergeRequestsEnabled *bool `url:"with_merge_requests_enabled,omitempty" json:"with_merge_requests_enabled,omitempty"`
MinAccessLevel *AccessLevelValue `url:"min_access_level,omitempty" json:"min_access_level,omitempty"`
WithCustomAttributes *bool `url:"with_custom_attributes,omitempty" json:"with_custom_attributes,omitempty"`
}
ListProjectsOptions represents the available ListProjects() options.
GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#list-projects
type ListUsersOptions ¶
type ListUsersOptions struct {
ListOptions
Active *bool `url:"active,omitempty" json:"active,omitempty"`
Blocked *bool `url:"blocked,omitempty" json:"blocked,omitempty"`
// The options below are only available for admins.
Search *string `url:"search,omitempty" json:"search,omitempty"`
Username *string `url:"username,omitempty" json:"username,omitempty"`
ExternalUID *string `url:"extern_uid,omitempty" json:"extern_uid,omitempty"`
Provider *string `url:"provider,omitempty" json:"provider,omitempty"`
CreatedBefore *time.Time `url:"created_before,omitempty" json:"created_before,omitempty"`
CreatedAfter *time.Time `url:"created_after,omitempty" json:"created_after,omitempty"`
OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"`
Sort *string `url:"sort,omitempty" json:"sort,omitempty"`
WithCustomAttributes *bool `url:"with_custom_attributes,omitempty" json:"with_custom_attributes,omitempty"`
}
ListUsersOptions represents the available ListUsers() options.
GitLab API docs: https://docs.gitlab.com/ce/api/users.html#list-users
type MergeMethodValue ¶
type MergeMethodValue string
MergeMethodValue represents a project merge type within GitLab.
GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#project-merge-method
const ( NoFastForwardMerge MergeMethodValue = "merge" FastForwardMerge MergeMethodValue = "ff" RebaseMerge MergeMethodValue = "rebase_merge" )
List of available merge type
GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#project-merge-method
type NotificationLevelValue ¶
type NotificationLevelValue int
NotificationLevelValue represents a notification level.
const ( DisabledNotificationLevel NotificationLevelValue = iota ParticipatingNotificationLevel WatchNotificationLevel GlobalNotificationLevel MentionNotificationLevel CustomNotificationLevel )
List of valid notification levels.
func (NotificationLevelValue) MarshalJSON ¶
func (l NotificationLevelValue) MarshalJSON() ([]byte, error)
MarshalJSON implements the json.Marshaler interface.
func (NotificationLevelValue) String ¶
func (l NotificationLevelValue) String() string
String implements the fmt.Stringer interface.
func (*NotificationLevelValue) UnmarshalJSON ¶
func (l *NotificationLevelValue) UnmarshalJSON(data []byte) error
UnmarshalJSON implements the json.Unmarshaler interface.
type Permissions ¶
type Permissions struct {
ProjectAccess *ProjectAccess `json:"project_access"`
GroupAccess *GroupAccess `json:"group_access"`
}
Permissions represents permissions.
type Project ¶
type Project struct {
ID int `json:"id"`
Description string `json:"description"`
DefaultBranch string `json:"default_branch"`
Public bool `json:"public"`
Visibility VisibilityValue `json:"visibility"`
SSHURLToRepo string `json:"ssh_url_to_repo"`
HTTPURLToRepo string `json:"http_url_to_repo"`
WebURL string `json:"web_url"`
ReadmeURL string `json:"readme_url"`
TagList []string `json:"tag_list"`
Owner *User `json:"owner"`
Name string `json:"name"`
NameWithNamespace string `json:"name_with_namespace"`
Path string `json:"path"`
PathWithNamespace string `json:"path_with_namespace"`
IssuesEnabled bool `json:"issues_enabled"`
OpenIssuesCount int `json:"open_issues_count"`
MergeRequestsEnabled bool `json:"merge_requests_enabled"`
ApprovalsBeforeMerge int `json:"approvals_before_merge"`
JobsEnabled bool `json:"jobs_enabled"`
WikiEnabled bool `json:"wiki_enabled"`
SnippetsEnabled bool `json:"snippets_enabled"`
ContainerRegistryEnabled bool `json:"container_registry_enabled"`
CreatedAt *time.Time `json:"created_at,omitempty"`
LastActivityAt *time.Time `json:"last_activity_at,omitempty"`
CreatorID int `json:"creator_id"`
Namespace *ProjectNamespace `json:"namespace"`
ImportStatus string `json:"import_status"`
ImportError string `json:"import_error"`
Permissions *Permissions `json:"permissions"`
Archived bool `json:"archived"`
AvatarURL string `json:"avatar_url"`
ForksCount int `json:"forks_count"`
StarCount int `json:"star_count"`
RunnersToken string `json:"runners_token"`
PublicBuilds bool `json:"public_builds"`
OnlyAllowMergeIfPipelineSucceeds bool `json:"only_allow_merge_if_pipeline_succeeds"`
OnlyAllowMergeIfAllDiscussionsAreResolved bool `json:"only_allow_merge_if_all_discussions_are_resolved"`
LFSEnabled bool `json:"lfs_enabled"`
RequestAccessEnabled bool `json:"request_access_enabled"`
MergeMethod MergeMethodValue `json:"merge_method"`
ForkedFromProject *ForkParent `json:"forked_from_project"`
Mirror bool `json:"mirror"`
MirrorUserID int `json:"mirror_user_id"`
MirrorTriggerBuilds bool `json:"mirror_trigger_builds"`
OnlyMirrorProtectedBranches bool `json:"only_mirror_protected_branches"`
MirrorOverwritesDivergedBranches bool `json:"mirror_overwrites_diverged_branches"`
GroupID int `json:"group_id"`
GroupName string `json:"group_name"`
GroupAccessLevel int `json:"group_access_level"`
} `json:"shared_with_groups"`
Statistics *ProjectStatistics `json:"statistics"`
Links *Links `json:"_links,omitempty"`
CIConfigPath *string `json:"ci_config_path"`
CustomAttributes []*CustomAttribute `json:"custom_attributes"`
}
Project represents a GitLab project.
GitLab API docs: https://docs.gitlab.com/ce/api/projects.html
type ProjectAccess ¶
type ProjectAccess struct {
AccessLevel AccessLevelValue `json:"access_level"`
NotificationLevel NotificationLevelValue `json:"notification_level"`
}
ProjectAccess represents project access.
type ProjectNamespace ¶
type ProjectNamespace struct {
ID int `json:"id"`
Name string `json:"name"`
Path string `json:"path"`
Kind string `json:"kind"`
FullPath string `json:"full_path"`
}
ProjectNamespace represents a project namespace.
type ProjectStatistics ¶
type ProjectStatistics struct {
StorageStatistics
CommitCount int `json:"commit_count"`
}
ProjectStatistics represents a statistics record for a project.
type Release ¶
Release represents a GitLab version release.
GitLab API docs: https://docs.gitlab.com/ce/api/tags.html
type Repository ¶
type Repository struct {
Name string `json:"name"`
Description string `json:"description"`
WebURL string `json:"web_url"`
AvatarURL string `json:"avatar_url"`
GitSSHURL string `json:"git_ssh_url"`
GitHTTPURL string `json:"git_http_url"`
Namespace string `json:"namespace"`
Visibility VisibilityValue `json:"visibility"`
PathWithNamespace string `json:"path_with_namespace"`
DefaultBranch string `json:"default_branch"`
Homepage string `json:"homepage"`
URL string `json:"url"`
SSHURL string `json:"ssh_url"`
HTTPURL string `json:"http_url"`
}
Repository represents a repository.
type StorageStatistics ¶
type StorageStatistics struct {
StorageSize int64 `json:"storage_size"`
RepositorySize int64 `json:"repository_size"`
LfsObjectsSize int64 `json:"lfs_objects_size"`
JobArtifactsSize int64 `json:"job_artifacts_size"`
}
StorageStatistics represents a statistics record for a group or project.
type Tag ¶
type Tag struct {
Commit *Commit `json:"commit"`
Release *Release `json:"release"`
Name string `json:"name"`
Message string `json:"message"`
}
Tag represents a GitLab tag.
GitLab API docs: https://docs.gitlab.com/ce/api/tags.html
type User ¶
type User struct {
ID int `json:"id"`
Username string `json:"username"`
Email string `json:"email"`
Name string `json:"name"`
State string `json:"state"`
CreatedAt *time.Time `json:"created_at"`
Bio string `json:"bio"`
Location string `json:"location"`
PublicEmail string `json:"public_email"`
Skype string `json:"skype"`
Linkedin string `json:"linkedin"`
Twitter string `json:"twitter"`
WebsiteURL string `json:"website_url"`
Organization string `json:"organization"`
ExternUID string `json:"extern_uid"`
Provider string `json:"provider"`
ThemeID int `json:"theme_id"`
LastActivityOn *ISOTime `json:"last_activity_on"`
ColorSchemeID int `json:"color_scheme_id"`
IsAdmin bool `json:"is_admin"`
AvatarURL string `json:"avatar_url"`
CanCreateGroup bool `json:"can_create_group"`
CanCreateProject bool `json:"can_create_project"`
ProjectsLimit int `json:"projects_limit"`
CurrentSignInAt *time.Time `json:"current_sign_in_at"`
LastSignInAt *time.Time `json:"last_sign_in_at"`
ConfirmedAt *time.Time `json:"confirmed_at"`
TwoFactorEnabled bool `json:"two_factor_enabled"`
Identities []*UserIdentity `json:"identities"`
External bool `json:"external"`
PrivateProfile bool `json:"private_profile"`
CustomAttributes []*CustomAttribute `json:"custom_attributes"`
}
User represents a GitLab user.
GitLab API docs: https://docs.gitlab.com/ee/api/users.html
type UserIdentity ¶
UserIdentity represents a user identity.
type VisibilityValue ¶
type VisibilityValue string
VisibilityValue represents a visibility level within GitLab.
GitLab API docs: https://docs.gitlab.com/ce/api/
const ( PrivateVisibility VisibilityValue = "private" InternalVisibility VisibilityValue = "internal" PublicVisibility VisibilityValue = "public" )
List of available visibility levels
GitLab API docs: https://docs.gitlab.com/ce/api/