Commit df6c9365 authored by Sander van Harmelen's avatar Sander van Harmelen

Update `VisibilityLevel` to just `Visibility` (#176)

parent 0d95cf7f
...@@ -87,7 +87,7 @@ func main() { ...@@ -87,7 +87,7 @@ func main() {
Description: gitlab.String("Just a test project to play with"), Description: gitlab.String("Just a test project to play with"),
MergeRequestsEnabled: gitlab.Bool(true), MergeRequestsEnabled: gitlab.Bool(true),
SnippetsEnabled: gitlab.Bool(true), SnippetsEnabled: gitlab.Bool(true),
VisibilityLevel: gitlab.VisibilityLevel(gitlab.PublicVisibility), Visibility: gitlab.VisibilityLevel(gitlab.PublicVisibility),
} }
project, _, err := git.Projects.CreateProject(p) project, _, err := git.Projects.CreateProject(p)
if err != nil { if err != nil {
...@@ -99,7 +99,7 @@ func main() { ...@@ -99,7 +99,7 @@ func main() {
Title: gitlab.String("Dummy Snippet"), Title: gitlab.String("Dummy Snippet"),
FileName: gitlab.String("snippet.go"), FileName: gitlab.String("snippet.go"),
Code: gitlab.String("package main...."), Code: gitlab.String("package main...."),
VisibilityLevel: gitlab.VisibilityLevel(gitlab.PublicVisibility), Visibility: gitlab.VisibilityLevel(gitlab.PublicVisibility),
} }
_, _, err = git.ProjectSnippets.CreateSnippet(project.ID, s) _, _, err = git.ProjectSnippets.CreateSnippet(project.ID, s)
if err != nil { if err != nil {
......
...@@ -34,20 +34,20 @@ type PushEvent struct { ...@@ -34,20 +34,20 @@ type PushEvent struct {
UserAvatar string `json:"user_avatar"` UserAvatar string `json:"user_avatar"`
ProjectID int `json:"project_id"` ProjectID int `json:"project_id"`
Project struct { Project struct {
Name string `json:"name"` Name string `json:"name"`
Description string `json:"description"` Description string `json:"description"`
AvatarURL string `json:"avatar_url"` AvatarURL string `json:"avatar_url"`
GitSSHURL string `json:"git_ssh_url"` GitSSHURL string `json:"git_ssh_url"`
GitHTTPURL string `json:"git_http_url"` GitHTTPURL string `json:"git_http_url"`
Namespace string `json:"namespace"` Namespace string `json:"namespace"`
PathWithNamespace string `json:"path_with_namespace"` PathWithNamespace string `json:"path_with_namespace"`
DefaultBranch string `json:"default_branch"` DefaultBranch string `json:"default_branch"`
Homepage string `json:"homepage"` Homepage string `json:"homepage"`
URL string `json:"url"` URL string `json:"url"`
SSHURL string `json:"ssh_url"` SSHURL string `json:"ssh_url"`
HTTPURL string `json:"http_url"` HTTPURL string `json:"http_url"`
WebURL string `json:"web_url"` WebURL string `json:"web_url"`
VisibilityLevel VisibilityLevelValue `json:"visibility"` Visibility VisibilityValue `json:"visibility"`
} `json:"project"` } `json:"project"`
Repository *Repository `json:"repository"` Repository *Repository `json:"repository"`
Commits []*Commit `json:"commits"` Commits []*Commit `json:"commits"`
...@@ -69,20 +69,20 @@ type TagEvent struct { ...@@ -69,20 +69,20 @@ type TagEvent struct {
UserAvatar string `json:"user_avatar"` UserAvatar string `json:"user_avatar"`
ProjectID int `json:"project_id"` ProjectID int `json:"project_id"`
Project struct { Project struct {
Name string `json:"name"` Name string `json:"name"`
Description string `json:"description"` Description string `json:"description"`
AvatarURL string `json:"avatar_url"` AvatarURL string `json:"avatar_url"`
GitSSHURL string `json:"git_ssh_url"` GitSSHURL string `json:"git_ssh_url"`
GitHTTPURL string `json:"git_http_url"` GitHTTPURL string `json:"git_http_url"`
Namespace string `json:"namespace"` Namespace string `json:"namespace"`
PathWithNamespace string `json:"path_with_namespace"` PathWithNamespace string `json:"path_with_namespace"`
DefaultBranch string `json:"default_branch"` DefaultBranch string `json:"default_branch"`
Homepage string `json:"homepage"` Homepage string `json:"homepage"`
URL string `json:"url"` URL string `json:"url"`
SSHURL string `json:"ssh_url"` SSHURL string `json:"ssh_url"`
HTTPURL string `json:"http_url"` HTTPURL string `json:"http_url"`
WebURL string `json:"web_url"` WebURL string `json:"web_url"`
VisibilityLevel VisibilityLevelValue `json:"visibility"` Visibility VisibilityValue `json:"visibility"`
} `json:"project"` } `json:"project"`
Repository *Repository `json:"repository"` Repository *Repository `json:"repository"`
Commits []*Commit `json:"commits"` Commits []*Commit `json:"commits"`
...@@ -97,20 +97,20 @@ type IssueEvent struct { ...@@ -97,20 +97,20 @@ type IssueEvent struct {
ObjectKind string `json:"object_kind"` ObjectKind string `json:"object_kind"`
User *User `json:"user"` User *User `json:"user"`
Project struct { Project struct {
Name string `json:"name"` Name string `json:"name"`
Description string `json:"description"` Description string `json:"description"`
AvatarURL string `json:"avatar_url"` AvatarURL string `json:"avatar_url"`
GitSSHURL string `json:"git_ssh_url"` GitSSHURL string `json:"git_ssh_url"`
GitHTTPURL string `json:"git_http_url"` GitHTTPURL string `json:"git_http_url"`
Namespace string `json:"namespace"` Namespace string `json:"namespace"`
PathWithNamespace string `json:"path_with_namespace"` PathWithNamespace string `json:"path_with_namespace"`
DefaultBranch string `json:"default_branch"` DefaultBranch string `json:"default_branch"`
Homepage string `json:"homepage"` Homepage string `json:"homepage"`
URL string `json:"url"` URL string `json:"url"`
SSHURL string `json:"ssh_url"` SSHURL string `json:"ssh_url"`
HTTPURL string `json:"http_url"` HTTPURL string `json:"http_url"`
WebURL string `json:"web_url"` WebURL string `json:"web_url"`
VisibilityLevel VisibilityLevelValue `json:"visibility"` Visibility VisibilityValue `json:"visibility"`
} `json:"project"` } `json:"project"`
Repository *Repository `json:"repository"` Repository *Repository `json:"repository"`
ObjectAttributes struct { ObjectAttributes struct {
...@@ -146,20 +146,20 @@ type CommitCommentEvent struct { ...@@ -146,20 +146,20 @@ type CommitCommentEvent struct {
User *User `json:"user"` User *User `json:"user"`
ProjectID int `json:"project_id"` ProjectID int `json:"project_id"`
Project struct { Project struct {
Name string `json:"name"` Name string `json:"name"`
Description string `json:"description"` Description string `json:"description"`
AvatarURL string `json:"avatar_url"` AvatarURL string `json:"avatar_url"`
GitSSHURL string `json:"git_ssh_url"` GitSSHURL string `json:"git_ssh_url"`
GitHTTPURL string `json:"git_http_url"` GitHTTPURL string `json:"git_http_url"`
Namespace string `json:"namespace"` Namespace string `json:"namespace"`
PathWithNamespace string `json:"path_with_namespace"` PathWithNamespace string `json:"path_with_namespace"`
DefaultBranch string `json:"default_branch"` DefaultBranch string `json:"default_branch"`
Homepage string `json:"homepage"` Homepage string `json:"homepage"`
URL string `json:"url"` URL string `json:"url"`
SSHURL string `json:"ssh_url"` SSHURL string `json:"ssh_url"`
HTTPURL string `json:"http_url"` HTTPURL string `json:"http_url"`
WebURL string `json:"web_url"` WebURL string `json:"web_url"`
VisibilityLevel VisibilityLevelValue `json:"visibility"` Visibility VisibilityValue `json:"visibility"`
} `json:"project"` } `json:"project"`
Repository *Repository `json:"repository"` Repository *Repository `json:"repository"`
ObjectAttributes struct { ObjectAttributes struct {
...@@ -198,20 +198,20 @@ type MergeCommentEvent struct { ...@@ -198,20 +198,20 @@ type MergeCommentEvent struct {
User *User `json:"user"` User *User `json:"user"`
ProjectID int `json:"project_id"` ProjectID int `json:"project_id"`
Project struct { Project struct {
Name string `json:"name"` Name string `json:"name"`
Description string `json:"description"` Description string `json:"description"`
AvatarURL string `json:"avatar_url"` AvatarURL string `json:"avatar_url"`
GitSSHURL string `json:"git_ssh_url"` GitSSHURL string `json:"git_ssh_url"`
GitHTTPURL string `json:"git_http_url"` GitHTTPURL string `json:"git_http_url"`
Namespace string `json:"namespace"` Namespace string `json:"namespace"`
PathWithNamespace string `json:"path_with_namespace"` PathWithNamespace string `json:"path_with_namespace"`
DefaultBranch string `json:"default_branch"` DefaultBranch string `json:"default_branch"`
Homepage string `json:"homepage"` Homepage string `json:"homepage"`
URL string `json:"url"` URL string `json:"url"`
SSHURL string `json:"ssh_url"` SSHURL string `json:"ssh_url"`
HTTPURL string `json:"http_url"` HTTPURL string `json:"http_url"`
WebURL string `json:"web_url"` WebURL string `json:"web_url"`
VisibilityLevel VisibilityLevelValue `json:"visibility"` Visibility VisibilityValue `json:"visibility"`
} `json:"project"` } `json:"project"`
Repository *Repository `json:"repository"` Repository *Repository `json:"repository"`
ObjectAttributes struct { ObjectAttributes struct {
...@@ -242,20 +242,20 @@ type IssueCommentEvent struct { ...@@ -242,20 +242,20 @@ type IssueCommentEvent struct {
User *User `json:"user"` User *User `json:"user"`
ProjectID int `json:"project_id"` ProjectID int `json:"project_id"`
Project struct { Project struct {
Name string `json:"name"` Name string `json:"name"`
Description string `json:"description"` Description string `json:"description"`
AvatarURL string `json:"avatar_url"` AvatarURL string `json:"avatar_url"`
GitSSHURL string `json:"git_ssh_url"` GitSSHURL string `json:"git_ssh_url"`
GitHTTPURL string `json:"git_http_url"` GitHTTPURL string `json:"git_http_url"`
Namespace string `json:"namespace"` Namespace string `json:"namespace"`
PathWithNamespace string `json:"path_with_namespace"` PathWithNamespace string `json:"path_with_namespace"`
DefaultBranch string `json:"default_branch"` DefaultBranch string `json:"default_branch"`
Homepage string `json:"homepage"` Homepage string `json:"homepage"`
URL string `json:"url"` URL string `json:"url"`
SSHURL string `json:"ssh_url"` SSHURL string `json:"ssh_url"`
HTTPURL string `json:"http_url"` HTTPURL string `json:"http_url"`
WebURL string `json:"web_url"` WebURL string `json:"web_url"`
VisibilityLevel VisibilityLevelValue `json:"visibility"` Visibility VisibilityValue `json:"visibility"`
} `json:"project"` } `json:"project"`
Repository *Repository `json:"repository"` Repository *Repository `json:"repository"`
ObjectAttributes struct { ObjectAttributes struct {
...@@ -286,20 +286,20 @@ type SnippetCommentEvent struct { ...@@ -286,20 +286,20 @@ type SnippetCommentEvent struct {
User *User `json:"user"` User *User `json:"user"`
ProjectID int `json:"project_id"` ProjectID int `json:"project_id"`
Project struct { Project struct {
Name string `json:"name"` Name string `json:"name"`
Description string `json:"description"` Description string `json:"description"`
AvatarURL string `json:"avatar_url"` AvatarURL string `json:"avatar_url"`
GitSSHURL string `json:"git_ssh_url"` GitSSHURL string `json:"git_ssh_url"`
GitHTTPURL string `json:"git_http_url"` GitHTTPURL string `json:"git_http_url"`
Namespace string `json:"namespace"` Namespace string `json:"namespace"`
PathWithNamespace string `json:"path_with_namespace"` PathWithNamespace string `json:"path_with_namespace"`
DefaultBranch string `json:"default_branch"` DefaultBranch string `json:"default_branch"`
Homepage string `json:"homepage"` Homepage string `json:"homepage"`
URL string `json:"url"` URL string `json:"url"`
SSHURL string `json:"ssh_url"` SSHURL string `json:"ssh_url"`
HTTPURL string `json:"http_url"` HTTPURL string `json:"http_url"`
WebURL string `json:"web_url"` WebURL string `json:"web_url"`
VisibilityLevel VisibilityLevelValue `json:"visibility"` Visibility VisibilityValue `json:"visibility"`
} `json:"project"` } `json:"project"`
Repository *Repository `json:"repository"` Repository *Repository `json:"repository"`
ObjectAttributes struct { ObjectAttributes struct {
...@@ -329,20 +329,20 @@ type MergeEvent struct { ...@@ -329,20 +329,20 @@ type MergeEvent struct {
ObjectKind string `json:"object_kind"` ObjectKind string `json:"object_kind"`
User *User `json:"user"` User *User `json:"user"`
Project struct { Project struct {
Name string `json:"name"` Name string `json:"name"`
Description string `json:"description"` Description string `json:"description"`
AvatarURL string `json:"avatar_url"` AvatarURL string `json:"avatar_url"`
GitSSHURL string `json:"git_ssh_url"` GitSSHURL string `json:"git_ssh_url"`
GitHTTPURL string `json:"git_http_url"` GitHTTPURL string `json:"git_http_url"`
Namespace string `json:"namespace"` Namespace string `json:"namespace"`
PathWithNamespace string `json:"path_with_namespace"` PathWithNamespace string `json:"path_with_namespace"`
DefaultBranch string `json:"default_branch"` DefaultBranch string `json:"default_branch"`
Homepage string `json:"homepage"` Homepage string `json:"homepage"`
URL string `json:"url"` URL string `json:"url"`
SSHURL string `json:"ssh_url"` SSHURL string `json:"ssh_url"`
HTTPURL string `json:"http_url"` HTTPURL string `json:"http_url"`
WebURL string `json:"web_url"` WebURL string `json:"web_url"`
VisibilityLevel VisibilityLevelValue `json:"visibility"` Visibility VisibilityValue `json:"visibility"`
} `json:"project"` } `json:"project"`
ObjectAttributes struct { ObjectAttributes struct {
ID int `json:"id"` ID int `json:"id"`
...@@ -412,20 +412,20 @@ type WikiPageEvent struct { ...@@ -412,20 +412,20 @@ type WikiPageEvent struct {
ObjectKind string `json:"object_kind"` ObjectKind string `json:"object_kind"`
User *User `json:"user"` User *User `json:"user"`
Project struct { Project struct {
Name string `json:"name"` Name string `json:"name"`
Description string `json:"description"` Description string `json:"description"`
AvatarURL string `json:"avatar_url"` AvatarURL string `json:"avatar_url"`
GitSSHURL string `json:"git_ssh_url"` GitSSHURL string `json:"git_ssh_url"`
GitHTTPURL string `json:"git_http_url"` GitHTTPURL string `json:"git_http_url"`
Namespace string `json:"namespace"` Namespace string `json:"namespace"`
PathWithNamespace string `json:"path_with_namespace"` PathWithNamespace string `json:"path_with_namespace"`
DefaultBranch string `json:"default_branch"` DefaultBranch string `json:"default_branch"`
Homepage string `json:"homepage"` Homepage string `json:"homepage"`
URL string `json:"url"` URL string `json:"url"`
SSHURL string `json:"ssh_url"` SSHURL string `json:"ssh_url"`
HTTPURL string `json:"http_url"` HTTPURL string `json:"http_url"`
WebURL string `json:"web_url"` WebURL string `json:"web_url"`
VisibilityLevel VisibilityLevelValue `json:"visibility"` Visibility VisibilityValue `json:"visibility"`
} `json:"project"` } `json:"project"`
Wiki struct { Wiki struct {
WebURL string `json:"web_url"` WebURL string `json:"web_url"`
...@@ -469,20 +469,20 @@ type PipelineEvent struct { ...@@ -469,20 +469,20 @@ type PipelineEvent struct {
AvatarURL string `json:"avatar_url"` AvatarURL string `json:"avatar_url"`
} `json:"user"` } `json:"user"`
Project struct { Project struct {
Name string `json:"name"` Name string `json:"name"`
Description string `json:"description"` Description string `json:"description"`
AvatarURL string `json:"avatar_url"` AvatarURL string `json:"avatar_url"`
GitSSHURL string `json:"git_ssh_url"` GitSSHURL string `json:"git_ssh_url"`
GitHTTPURL string `json:"git_http_url"` GitHTTPURL string `json:"git_http_url"`
Namespace string `json:"namespace"` Namespace string `json:"namespace"`
PathWithNamespace string `json:"path_with_namespace"` PathWithNamespace string `json:"path_with_namespace"`
DefaultBranch string `json:"default_branch"` DefaultBranch string `json:"default_branch"`
Homepage string `json:"homepage"` Homepage string `json:"homepage"`
URL string `json:"url"` URL string `json:"url"`
SSHURL string `json:"ssh_url"` SSHURL string `json:"ssh_url"`
HTTPURL string `json:"http_url"` HTTPURL string `json:"http_url"`
WebURL string `json:"web_url"` WebURL string `json:"web_url"`
VisibilityLevel VisibilityLevelValue `json:"visibility"` Visibility VisibilityValue `json:"visibility"`
} `json:"project"` } `json:"project"`
Commit struct { Commit struct {
ID string `json:"id"` ID string `json:"id"`
......
...@@ -15,7 +15,7 @@ func projectExample() { ...@@ -15,7 +15,7 @@ func projectExample() {
Description: gitlab.String("Just a test project to play with"), Description: gitlab.String("Just a test project to play with"),
MergeRequestsEnabled: gitlab.Bool(true), MergeRequestsEnabled: gitlab.Bool(true),
SnippetsEnabled: gitlab.Bool(true), SnippetsEnabled: gitlab.Bool(true),
VisibilityLevel: gitlab.VisibilityLevel(gitlab.PublicVisibility), Visibility: gitlab.Visibility(gitlab.PublicVisibility),
} }
project, _, err := git.Projects.CreateProject(p) project, _, err := git.Projects.CreateProject(p)
if err != nil { if err != nil {
...@@ -24,10 +24,10 @@ func projectExample() { ...@@ -24,10 +24,10 @@ func projectExample() {
// Add a new snippet // Add a new snippet
s := &gitlab.CreateSnippetOptions{ s := &gitlab.CreateSnippetOptions{
Title: gitlab.String("Dummy Snippet"), Title: gitlab.String("Dummy Snippet"),
FileName: gitlab.String("snippet.go"), FileName: gitlab.String("snippet.go"),
Code: gitlab.String("package main...."), Code: gitlab.String("package main...."),
VisibilityLevel: gitlab.VisibilityLevel(gitlab.PublicVisibility), Visibility: gitlab.Visibility(gitlab.PublicVisibility),
} }
_, _, err = git.ProjectSnippets.CreateSnippet(project.ID, s) _, _, err = git.ProjectSnippets.CreateSnippet(project.ID, s)
if err != nil { if err != nil {
......
...@@ -127,18 +127,18 @@ var notificationLevelTypes = map[string]NotificationLevelValue{ ...@@ -127,18 +127,18 @@ var notificationLevelTypes = map[string]NotificationLevelValue{
"custom": CustomNotificationLevel, "custom": CustomNotificationLevel,
} }
// VisibilityLevelValue represents a visibility level within GitLab. // VisibilityValue represents a visibility level within GitLab.
// //
// GitLab API docs: https://docs.gitlab.com/ce/api/ // GitLab API docs: https://docs.gitlab.com/ce/api/
type VisibilityLevelValue string type VisibilityValue string
// List of available visibility levels // List of available visibility levels
// //
// GitLab API docs: https://docs.gitlab.com/ce/api/ // GitLab API docs: https://docs.gitlab.com/ce/api/
const ( const (
PrivateVisibility VisibilityLevelValue = "private" PrivateVisibility VisibilityValue = "private"
InternalVisibility VisibilityLevelValue = "internal" InternalVisibility VisibilityValue = "internal"
PublicVisibility VisibilityLevelValue = "public" PublicVisibility VisibilityValue = "public"
) )
// A Client manages communication with the GitLab API. // A Client manages communication with the GitLab API.
...@@ -602,10 +602,10 @@ func NotificationLevel(v NotificationLevelValue) *NotificationLevelValue { ...@@ -602,10 +602,10 @@ func NotificationLevel(v NotificationLevelValue) *NotificationLevelValue {
return p return p
} }
// VisibilityLevel is a helper routine that allocates a new VisibilityLevelValue // Visibility is a helper routine that allocates a new VisibilityValue
// to store v and returns a pointer to it. // to store v and returns a pointer to it.
func VisibilityLevel(v VisibilityLevelValue) *VisibilityLevelValue { func Visibility(v VisibilityValue) *VisibilityValue {
p := new(VisibilityLevelValue) p := new(VisibilityValue)
*p = v *p = v
return p return p
} }
...@@ -34,19 +34,19 @@ type GroupsService struct { ...@@ -34,19 +34,19 @@ type GroupsService struct {
// //
// GitLab API docs: https://docs.gitlab.com/ce/api/groups.html // GitLab API docs: https://docs.gitlab.com/ce/api/groups.html
type Group struct { type Group struct {
ID int `json:"id"` ID int `json:"id"`
Name string `json:"name"` Name string `json:"name"`
Path string `json:"path"` Path string `json:"path"`
Description string `json:"description"` Description string `json:"description"`
AvatarURL string `json:"avatar_url"` AvatarURL string `json:"avatar_url"`
FullName string `json:"full_name"` FullName string `json:"full_name"`
FullPath string `json:"full_path"` FullPath string `json:"full_path"`
LFSEnabled bool `json:"lfs_enabled"` LFSEnabled bool `json:"lfs_enabled"`
Projects []*Project `json:"projects"` Projects []*Project `json:"projects"`
Statistics *StorageStatistics `json:"statistics"` Statistics *StorageStatistics `json:"statistics"`
RequestAccessEnabled bool `json:"request_access_enabled"` RequestAccessEnabled bool `json:"request_access_enabled"`
Visibility *VisibilityLevelValue `json:"visibility"` Visibility *VisibilityValue `json:"visibility"`
WebURL string `json:"web_url"` WebURL string `json:"web_url"`
} }
// ListGroupsOptions represents the available ListGroups() options. // ListGroupsOptions represents the available ListGroups() options.
...@@ -109,12 +109,12 @@ func (s *GroupsService) GetGroup(gid interface{}, options ...OptionFunc) (*Group ...@@ -109,12 +109,12 @@ func (s *GroupsService) GetGroup(gid interface{}, options ...OptionFunc) (*Group
// //
// GitLab API docs: https://docs.gitlab.com/ce/api/groups.html#new-group // GitLab API docs: https://docs.gitlab.com/ce/api/groups.html#new-group
type CreateGroupOptions struct { type CreateGroupOptions struct {
Name *string `url:"name,omitempty" json:"name,omitempty"` Name *string `url:"name,omitempty" json:"name,omitempty"`
Path *string `url:"path,omitempty" json:"path,omitempty"` Path *string `url:"path,omitempty" json:"path,omitempty"`
Description *string `url:"description,omitempty" json:"description,omitempty"` Description *string `url:"description,omitempty" json:"description,omitempty"`
LFSEnabled *bool `url:"lfs_enabled,omitempty" json:"lfs_enabled,omitempty"` LFSEnabled *bool `url:"lfs_enabled,omitempty" json:"lfs_enabled,omitempty"`
RequestAccessEnabled *bool `url:"request_access_enabled,omitempty" json:"request_access_enabled,omitempty"` RequestAccessEnabled *bool `url:"request_access_enabled,omitempty" json:"request_access_enabled,omitempty"`
VisibilityLevel *VisibilityLevelValue `url:"visibility,omitempty" json:"visibility,omitempty"` Visibility *VisibilityValue `url:"visibility,omitempty" json:"visibility,omitempty"`
} }
// CreateGroup creates a new project group. Available only for users who can // CreateGroup creates a new project group. Available only for users who can
......
...@@ -119,10 +119,10 @@ func (s *ProjectSnippetsService) GetSnippet(pid interface{}, snippet int, option ...@@ -119,10 +119,10 @@ func (s *ProjectSnippetsService) GetSnippet(pid interface{}, snippet int, option
// GitLab API docs: // GitLab API docs:
// https://gitlab.com/gitlab-org/gitlab-ce/blob/8-16-stable/doc/api/project_snippets.md#create-new-snippet // https://gitlab.com/gitlab-org/gitlab-ce/blob/8-16-stable/doc/api/project_snippets.md#create-new-snippet
type CreateSnippetOptions struct { type CreateSnippetOptions struct {
Title *string `url:"title,omitempty" json:"title,omitempty"` Title *string `url:"title,omitempty" json:"title,omitempty"`
FileName *string `url:"file_name,omitempty" json:"file_name,omitempty"` FileName *string `url:"file_name,omitempty" json:"file_name,omitempty"`
Code *string `url:"code,omitempty" json:"code,omitempty"` Code *string `url:"code,omitempty" json:"code,omitempty"`
VisibilityLevel *VisibilityLevelValue `url:"visibility,omitempty" json:"visibility,omitempty"` Visibility *VisibilityValue `url:"visibility,omitempty" json:"visibility,omitempty"`
} }
// CreateSnippet creates a new project snippet. The user must have permission // CreateSnippet creates a new project snippet. The user must have permission
...@@ -156,10 +156,10 @@ func (s *ProjectSnippetsService) CreateSnippet(pid interface{}, opt *CreateSnipp ...@@ -156,10 +156,10 @@ func (s *ProjectSnippetsService) CreateSnippet(pid interface{}, opt *CreateSnipp
// GitLab API docs: // GitLab API docs:
// https://gitlab.com/gitlab-org/gitlab-ce/blob/8-16-stable/doc/api/project_snippets.md#update-snippet // https://gitlab.com/gitlab-org/gitlab-ce/blob/8-16-stable/doc/api/project_snippets.md#update-snippet
type UpdateSnippetOptions struct { type UpdateSnippetOptions struct {
Title *string `url:"title,omitempty" json:"title,omitempty"` Title *string `url:"title,omitempty" json:"title,omitempty"`
FileName *string `url:"file_name,omitempty" json:"file_name,omitempty"` FileName *string `url:"file_name,omitempty" json:"file_name,omitempty"`
Code *string `url:"code,omitempty" json:"code,omitempty"` Code *string `url:"code,omitempty" json:"code,omitempty"`
VisibilityLevel *VisibilityLevelValue `url:"visibility,omitempty" json:"visibility,omitempty"` Visibility *VisibilityValue `url:"visibility,omitempty" json:"visibility,omitempty"`
} }
// UpdateSnippet updates an existing project snippet. The user must have // UpdateSnippet updates an existing project snippet. The user must have
......
...@@ -34,44 +34,45 @@ type ProjectsService struct { ...@@ -34,44 +34,45 @@ type ProjectsService struct {
// //
// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html // GitLab API docs: https://docs.gitlab.com/ce/api/projects.html
type Project struct { type Project struct {
ID int `json:"id"` ID int `json:"id"`
Description string `json:"description"` Description string `json:"description"`
DefaultBranch string `json:"default_branch"` DefaultBranch string `json:"default_branch"`
Public bool `json:"public"` Public bool `json:"public"`
VisibilityLevel VisibilityLevelValue `json:"visibility"` Visibility VisibilityValue `json:"visibility"`
SSHURLToRepo string `json:"ssh_url_to_repo"` SSHURLToRepo string `json:"ssh_url_to_repo"`
HTTPURLToRepo string `json:"http_url_to_repo"` HTTPURLToRepo string `json:"http_url_to_repo"`
WebURL string `json:"web_url"` WebURL string `json:"web_url"`
TagList []string `json:"tag_list"` TagList []string `json:"tag_list"`
Owner *User `json:"owner"` Owner *User `json:"owner"`
Name string `json:"name"` Name string `json:"name"`
NameWithNamespace string `json:"name_with_namespace"` NameWithNamespace string `json:"name_with_namespace"`
Path string `json:"path"` Path string `json:"path"`
PathWithNamespace string `json:"path_with_namespace"` PathWithNamespace string `json:"path_with_namespace"`
IssuesEnabled bool `json:"issues_enabled"` IssuesEnabled bool `json:"issues_enabled"`
OpenIssuesCount int `json:"open_issues_count"` OpenIssuesCount int `json:"open_issues_count"`
MergeRequestsEnabled bool `json:"merge_requests_enabled"` MergeRequestsEnabled bool `json:"merge_requests_enabled"`
ApprovalsBeforeMerge int `json:"approvals_before_merge"` ApprovalsBeforeMerge int `json:"approvals_before_merge"`
BuildsEnabled bool `json:"builds_enabled"` BuildsEnabled bool `json:"builds_enabled"`
WikiEnabled bool `json:"wiki_enabled"` WikiEnabled bool `json:"wiki_enabled"`
SnippetsEnabled bool `json:"snippets_enabled"` SnippetsEnabled bool `json:"snippets_enabled"`
ContainerRegistryEnabled bool `json:"container_registry_enabled"` ContainerRegistryEnabled bool `json:"container_registry_enabled"`
CreatedAt *time.Time `json:"created_at,omitempty"` CreatedAt *time.Time `json:"created_at,omitempty"`
LastActivityAt *time.Time `json:"last_activity_at,omitempty"` LastActivityAt *time.Time `json:"last_activity_at,omitempty"`
CreatorID int `json:"creator_id"` CreatorID int `json:"creator_id"`
Namespace *ProjectNamespace `json:"namespace"` Namespace *ProjectNamespace `json:"namespace"`
Permissions *Permissions `json:"permissions"` Permissions *Permissions `json:"permissions"`
Archived bool `json:"archived"` Archived bool `json:"archived"`
AvatarURL string `json:"avatar_url"` AvatarURL string `json:"avatar_url"`
SharedRunnersEnabled bool `json:"shared_runners_enabled"` SharedRunnersEnabled bool `json:"shared_runners_enabled"`
ForksCount int `json:"forks_count"` ForksCount int `json:"forks_count"`
StarCount int `json:"star_count"` StarCount int `json:"star_count"`
RunnersToken string `json:"runners_token"` RunnersToken string `json:"runners_token"`
PublicBuilds bool `json:"public_builds"` PublicBuilds bool `json:"public_builds"`
OnlyAllowMergeIfBuildSucceeds bool `json:"only_allow_merge_if_build_succeeds"` OnlyAllowMergeIfBuildSucceeds bool `json:"only_allow_merge_if_build_succeeds"`
OnlyAllowMergeIfAllDiscussionsAreResolved bool `json:"only_allow_merge_if_all_discussions_are_resolved"` OnlyAllowMergeIfAllDiscussionsAreResolved bool `json:"only_allow_merge_if_all_discussions_are_resolved"`
LFSEnabled bool `json:"lfs_enabled"` LFSEnabled bool `json:"lfs_enabled"`
RequestAccessEnabled bool `json:"request_access_enabled"` RequestAccessEnabled bool `json:"request_access_enabled"`
ForkedFromProject *ForkParent `json:"forked_from_project"`
SharedWithGroups []struct { SharedWithGroups []struct {
GroupID int `json:"group_id"` GroupID int `json:"group_id"`
GroupName string `json:"group_name"` GroupName string `json:"group_name"`
...@@ -82,20 +83,20 @@ type Project struct { ...@@ -82,20 +83,20 @@ type Project struct {
// Repository represents a repository. // Repository represents a repository.
type Repository struct { type Repository struct {
Name string `json:"name"` Name string `json:"name"`
Description string `json:"description"` Description string `json:"description"`
WebURL string `json:"web_url"` WebURL string `json:"web_url"`
AvatarURL string `json:"avatar_url"` AvatarURL string `json:"avatar_url"`
GitSSHURL string `json:"git_ssh_url"` GitSSHURL string `json:"git_ssh_url"`
GitHTTPURL string `json:"git_http_url"` GitHTTPURL string `json:"git_http_url"`
Namespace string `json:"namespace"` Namespace string `json:"namespace"`
VisibilityLevel VisibilityLevelValue `json:"visibility"` Visibility VisibilityValue `json:"visibility"`
PathWithNamespace string `json:"path_with_namespace"` PathWithNamespace string `json:"path_with_namespace"`
DefaultBranch string `json:"default_branch"` DefaultBranch string `json:"default_branch"`
Homepage string `json:"homepage"` Homepage string `json:"homepage"`
URL string `json:"url"` URL string `json:"url"`
SSHURL string `json:"ssh_url"` SSHURL string `json:"ssh_url"`
HTTPURL string `json:"http_url"` HTTPURL string `json:"http_url"`
} }
// ProjectNamespace represents a project namespace. // ProjectNamespace represents a project namespace.
...@@ -141,6 +142,17 @@ type GroupAccess struct { ...@@ -141,6 +142,17 @@ type GroupAccess struct {
NotificationLevel NotificationLevelValue `json:"notification_level"` NotificationLevel NotificationLevelValue `json:"notification_level"`
} }
// ForkParent represents the parent project when this is a fork.
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"`
}
func (s Project) String() string { func (s Project) String() string {
return Stringify(s) return Stringify(s)
} }
...@@ -150,16 +162,16 @@ func (s Project) String() string { ...@@ -150,16 +162,16 @@ func (s Project) String() string {
// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#list-projects // GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#list-projects
type ListProjectsOptions struct { type ListProjectsOptions struct {
ListOptions ListOptions
Archived *bool `url:"archived,omitempty" json:"archived,omitempty"` Archived *bool `url:"archived,omitempty" json:"archived,omitempty"`
OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"` OrderBy *string `url:"order_by,omitempty" json:"order_by,omitempty"`
Sort *string `url:"sort,omitempty" json:"sort,omitempty"` Sort *string `url:"sort,omitempty" json:"sort,omitempty"`
Search *string `url:"search,omitempty" json:"search,omitempty"` Search *string `url:"search,omitempty" json:"search,omitempty"`
Simple *bool `url:"simple,omitempty" json:"simple,omitempty"` Simple *bool `url:"simple,omitempty" json:"simple,omitempty"`
Owned *bool `url:"owned,omitempty" json:"owned,omitempty"` Owned *bool `url:"owned,omitempty" json:"owned,omitempty"`
Membership *bool `url:"membership,omitempty" json:"membership,omitempty"` Membership *bool `url:"membership,omitempty" json:"membership,omitempty"`
Starred *bool `url:"starred,omitempty" json:"starred,omitempty"` Starred *bool `url:"starred,omitempty" json:"starred,omitempty"`
Statistics *bool `url:"statistics,omitempty" json:"statistics,omitempty"` Statistics *bool `url:"statistics,omitempty" json:"statistics,omitempty"`
Visibility *VisibilityLevelValue `url:"visibility,omitempty" json:"visibility,omitempty"` Visibility *VisibilityValue `url:"visibility,omitempty" json:"visibility,omitempty"`
} }
// ListProjects gets a list of projects accessible by the authenticated user. // ListProjects gets a list of projects accessible by the authenticated user.
...@@ -273,25 +285,25 @@ func (s *ProjectsService) GetProjectEvents(pid interface{}, opt *GetProjectEvent ...@@ -273,25 +285,25 @@ func (s *ProjectsService) GetProjectEvents(pid interface{}, opt *GetProjectEvent
// //
// GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#create-project // GitLab API docs: https://docs.gitlab.com/ce/api/projects.html#create-project
type CreateProjectOptions struct { type CreateProjectOptions struct {
Name *string `url:"name,omitempty" json:"name,omitempty"` Name *string `url:"name,omitempty" json:"name,omitempty"`
Path *string `url:"path,omitempty" json:"path,omitempty"` Path *string `url:"path,omitempty" json:"path,omitempty"`
DefaultBranch *string `url:"default_branch,omitempty" json:"default_branch,omitempty"` DefaultBranch *string `url:"default_branch,omitempty" json:"default_branch,omitempty"`
NamespaceID *int `url:"namespace_id,omitempty" json:"namespace_id,omitempty"` NamespaceID *int `url:"namespace_id,omitempty" json:"namespace_id,omitempty"`
Description *string `url:"description,omitempty" json:"description,omitempty"` Description *string `url:"description,omitempty" json:"description,omitempty"`
IssuesEnabled *bool `url:"issues_enabled,omitempty" json:"issues_enabled,omitempty"` IssuesEnabled *bool `url:"issues_enabled,omitempty" json:"issues_enabled,omitempty"`
MergeRequestsEnabled *bool `url:"merge_requests_enabled,omitempty" json:"merge_requests_enabled,omitempty"` MergeRequestsEnabled *bool `url:"merge_requests_enabled,omitempty" json:"merge_requests_enabled,omitempty"`
JobsEnabled *bool `url:"jobs_enabled,omitempty" json:"jobs_enabled,omitempty"` JobsEnabled *bool `url:"jobs_enabled,omitempty" json:"jobs_enabled,omitempty"`
WikiEnabled *bool `url:"wiki_enabled,omitempty" json:"wiki_enabled,omitempty"` WikiEnabled *bool `url:"wiki_enabled,omitempty" json:"wiki_enabled,omitempty"`
SnippetsEnabled *bool `url:"snippets_enabled,omitempty" json:"snippets_enabled,omitempty"` SnippetsEnabled *bool `url:"snippets_enabled,omitempty" json:"snippets_enabled,omitempty"`
ContainerRegistryEnabled *bool `url:"container_registry_enabled,omitempty" json:"container_registry_enabled,omitempty"` ContainerRegistryEnabled *bool `url:"container_registry_enabled,omitempty" json:"container_registry_enabled,omitempty"`
SharedRunnersEnabled *bool `url:"shared_runners_enabled,omitempty" json:"shared_runners_enabled,omitempty"` SharedRunnersEnabled *bool `url:"shared_runners_enabled,omitempty" json:"shared_runners_enabled,omitempty"`
Visibility *VisibilityLevelValue `url:"visibility,omitempty" json:"visibility,omitempty"` Visibility *VisibilityValue `url:"visibility,omitempty" json:"visibility,omitempty"`
ImportURL *string `url:"import_url,omitempty" json:"import_url,omitempty"` ImportURL *string `url:"import_url,omitempty" json:"import_url,omitempty"`
PublicJobs *bool `url:"public_jobs,omitempty" json:"public_jobs,omitempty"` PublicJobs *bool `url:"public_jobs,omitempty" json:"public_jobs,omitempty"`
OnlyAllowMergeIfPipelineSucceeds *bool `url:"only_allow_merge_if_pipeline_succeeds,omitempty" json:"only_allow_merge_if_pipeline_succeeds,omitempty"` OnlyAllowMergeIfPipelineSucceeds *bool `url:"only_allow_merge_if_pipeline_succeeds,omitempty" json:"only_allow_merge_if_pipeline_succeeds,omitempty"`
OnlyAllowMergeIfAllDiscussionsAreResolved *bool `url:"only_allow_merge_if_all_discussions_are_resolved,omitempty" json:"only_allow_merge_if_all_discussions_are_resolved,omitempty"` OnlyAllowMergeIfAllDiscussionsAreResolved *bool `url:"only_allow_merge_if_all_discussions_are_resolved,omitempty" json:"only_allow_merge_if_all_discussions_are_resolved,omitempty"`
LFSEnabled *bool `url:"lfs_enabled,omitempty" json:"lfs_enabled,omitempty"` LFSEnabled *bool `url:"lfs_enabled,omitempty" json:"lfs_enabled,omitempty"`
RequestAccessEnabled *bool `url:"request_access_enabled,omitempty" json:"request_access_enabled,omitempty"` RequestAccessEnabled *bool `url:"request_access_enabled,omitempty" json:"request_access_enabled,omitempty"`
} }
// CreateProject creates a new project owned by the authenticated user. // CreateProject creates a new project owned by the authenticated user.
......
...@@ -33,7 +33,7 @@ func TestListProjects(t *testing.T) { ...@@ -33,7 +33,7 @@ func TestListProjects(t *testing.T) {
Sort: String("asc"), Sort: String("asc"),
Search: String("query"), Search: String("query"),
Simple: Bool(true), Simple: Bool(true),
Visibility: VisibilityLevel(PublicVisibility), Visibility: Visibility(PublicVisibility),
} }
projects, _, err := client.Projects.ListProjects(opt) projects, _, err := client.Projects.ListProjects(opt)
...@@ -75,7 +75,7 @@ func TestListOwnedProjects(t *testing.T) { ...@@ -75,7 +75,7 @@ func TestListOwnedProjects(t *testing.T) {
Search: String("query"), Search: String("query"),
Simple: Bool(true), Simple: Bool(true),
Owned: Bool(true), Owned: Bool(true),
Visibility: VisibilityLevel(PublicVisibility), Visibility: Visibility(PublicVisibility),
} }
projects, _, err := client.Projects.ListProjects(opt) projects, _, err := client.Projects.ListProjects(opt)
...@@ -117,7 +117,7 @@ func TestListStarredProjects(t *testing.T) { ...@@ -117,7 +117,7 @@ func TestListStarredProjects(t *testing.T) {
Search: String("query"), Search: String("query"),
Simple: Bool(true), Simple: Bool(true),
Starred: Bool(true), Starred: Bool(true),
Visibility: VisibilityLevel(PublicVisibility), Visibility: Visibility(PublicVisibility),
} }
projects, _, err := client.Projects.ListProjects(opt) projects, _, err := client.Projects.ListProjects(opt)
......
...@@ -32,25 +32,25 @@ type SettingsService struct { ...@@ -32,25 +32,25 @@ type SettingsService struct {
// GitLab API docs: // GitLab API docs:
// https://gitlab.com/gitlab-org/gitlab-ce/blob/8-16-stable/doc/api/settings.md // https://gitlab.com/gitlab-org/gitlab-ce/blob/8-16-stable/doc/api/settings.md
type Settings struct { type Settings struct {
ID int `json:"id"` ID int `json:"id"`
DefaultProjectsLimit int `json:"default_projects_limit"` DefaultProjectsLimit int `json:"default_projects_limit"`
SignupEnabled bool `json:"signup_enabled"` SignupEnabled bool `json:"signup_enabled"`
SigninEnabled bool `json:"signin_enabled"` SigninEnabled bool `json:"signin_enabled"`
GravatarEnabled bool `json:"gravatar_enabled"` GravatarEnabled bool `json:"gravatar_enabled"`
SignInText string `json:"sign_in_text"` SignInText string `json:"sign_in_text"`
CreatedAt *time.Time `json:"created_at"` CreatedAt *time.Time `json:"created_at"`
UpdatedAt *time.Time `json:"updated_at"` UpdatedAt *time.Time `json:"updated_at"`
HomePageURL string `json:"home_page_url"` HomePageURL string `json:"home_page_url"`
DefaultBranchProtection int `json:"default_branch_protection"` DefaultBranchProtection int `json:"default_branch_protection"`
TwitterSharingEnabled bool `json:"twitter_sharing_enabled"` TwitterSharingEnabled bool `json:"twitter_sharing_enabled"`
RestrictedVisibilityLevels []VisibilityLevelValue `json:"restricted_visibility_levels"` RestrictedVisibilityLevels []VisibilityValue `json:"restricted_visibility_levels"`
MaxAttachmentSize int `json:"max_attachment_size"` MaxAttachmentSize int `json:"max_attachment_size"`
SessionExpireDelay int `json:"session_expire_delay"` SessionExpireDelay int `json:"session_expire_delay"`
DefaultProjectVisibility int `json:"default_project_visibility"` DefaultProjectVisibility int `json:"default_project_visibility"`
DefaultSnippetVisibility int `json:"default_snippet_visibility"` DefaultSnippetVisibility int `json:"default_snippet_visibility"`
RestrictedSignupDomains []string `json:"restricted_signup_domains"` RestrictedSignupDomains []string `json:"restricted_signup_domains"`
UserOauthApplications bool `json:"user_oauth_applications"` UserOauthApplications bool `json:"user_oauth_applications"`
AfterSignOutPath string `json:"after_sign_out_path"` AfterSignOutPath string `json:"after_sign_out_path"`
} }
func (s Settings) String() string { func (s Settings) String() string {
...@@ -81,22 +81,22 @@ func (s *SettingsService) GetSettings(options ...OptionFunc) (*Settings, *Respon ...@@ -81,22 +81,22 @@ func (s *SettingsService) GetSettings(options ...OptionFunc) (*Settings, *Respon
// GitLab API docs: // GitLab API docs:
// https://gitlab.com/gitlab-org/gitlab-ce/blob/8-16-stable/doc/api/settings.md#change-application.settings // https://gitlab.com/gitlab-org/gitlab-ce/blob/8-16-stable/doc/api/settings.md#change-application.settings
type UpdateSettingsOptions struct { type UpdateSettingsOptions struct {
DefaultProjectsLimit *int `url:"default_projects_limit,omitempty" json:"default_projects_limit,omitempty"` DefaultProjectsLimit *int `url:"default_projects_limit,omitempty" json:"default_projects_limit,omitempty"`
SignupEnabled *bool `url:"signup_enabled,omitempty" json:"signup_enabled,omitempty"` SignupEnabled *bool `url:"signup_enabled,omitempty" json:"signup_enabled,omitempty"`
SigninEnabled *bool `url:"signin_enabled,omitempty" json:"signin_enabled,omitempty"` SigninEnabled *bool `url:"signin_enabled,omitempty" json:"signin_enabled,omitempty"`
GravatarEnabled *bool `url:"gravatar_enabled,omitempty" json:"gravatar_enabled,omitempty"` GravatarEnabled *bool `url:"gravatar_enabled,omitempty" json:"gravatar_enabled,omitempty"`
SignInText *string `url:"sign_in_text,omitempty" json:"sign_in_text,omitempty"` SignInText *string `url:"sign_in_text,omitempty" json:"sign_in_text,omitempty"`
HomePageURL *string `url:"home_page_url,omitempty" json:"home_page_url,omitempty"` HomePageURL *string `url:"home_page_url,omitempty" json:"home_page_url,omitempty"`
DefaultBranchProtection *int `url:"default_branch_protection,omitempty" json:"default_branch_protection,omitempty"` DefaultBranchProtection *int `url:"default_branch_protection,omitempty" json:"default_branch_protection,omitempty"`
TwitterSharingEnabled *bool `url:"twitter_sharing_enabled,omitempty" json:"twitter_sharing_enabled,omitempty"` TwitterSharingEnabled *bool `url:"twitter_sharing_enabled,omitempty" json:"twitter_sharing_enabled,omitempty"`
RestrictedVisibilityLevels []VisibilityLevelValue `url:"restricted_visibility_levels,omitempty" json:"restricted_visibility_levels,omitempty"` RestrictedVisibilityLevels []VisibilityValue `url:"restricted_visibility_levels,omitempty" json:"restricted_visibility_levels,omitempty"`
MaxAttachmentSize *int `url:"max_attachment_size,omitempty" json:"max_attachment_size,omitempty"` MaxAttachmentSize *int `url:"max_attachment_size,omitempty" json:"max_attachment_size,omitempty"`
SessionExpireDelay *int `url:"session_expire_delay,omitempty" json:"session_expire_delay,omitempty"` SessionExpireDelay *int `url:"session_expire_delay,omitempty" json:"session_expire_delay,omitempty"`
DefaultProjectVisibility *int `url:"default_project_visibility,omitempty" json:"default_project_visibility,omitempty"` DefaultProjectVisibility *int `url:"default_project_visibility,omitempty" json:"default_project_visibility,omitempty"`
DefaultSnippetVisibility *int `url:"default_snippet_visibility,omitempty" json:"default_snippet_visibility,omitempty"` DefaultSnippetVisibility *int `url:"default_snippet_visibility,omitempty" json:"default_snippet_visibility,omitempty"`
RestrictedSignupDomains []string `url:"restricted_signup_domains,omitempty" json:"restricted_signup_domains,omitempty"` RestrictedSignupDomains []string `url:"restricted_signup_domains,omitempty" json:"restricted_signup_domains,omitempty"`
UserOauthApplications *bool `url:"user_oauth_applications,omitempty" json:"user_oauth_applications,omitempty"` UserOauthApplications *bool `url:"user_oauth_applications,omitempty" json:"user_oauth_applications,omitempty"`
AfterSignOutPath *string `url:"after_sign_out_path,omitempty" json:"after_sign_out_path,omitempty"` AfterSignOutPath *string `url:"after_sign_out_path,omitempty" json:"after_sign_out_path,omitempty"`
} }
// UpdateSettings updates the application settings. // UpdateSettings updates the application settings.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment