Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
G
go-gitlab
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
go
go-gitlab
Commits
cd2dcc94
Unverified
Commit
cd2dcc94
authored
Mar 10, 2019
by
kirecek
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add support for group labels api
Signed-off-by:
kirecek
<
erikjankovic@gmail.com
>
parent
e5363568
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
207 additions
and
0 deletions
+207
-0
group_labels.go
group_labels.go
+207
-0
No files found.
group_labels.go
0 → 100644
View file @
cd2dcc94
//
// Copyright 2017, Sander van Harmelen
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
package
gitlab
import
(
"fmt"
"net/url"
)
// GroupLabelsService handles communication with the label related methods of the
// GitLab API.
//
// GitLab API docs: https://docs.gitlab.com/ce/api/group_labels.html
type
GroupLabelsService
struct
{
client
*
Client
}
// GroupLabel represents a GitLab group label.
//
// GitLab API docs: https://docs.gitlab.com/ce/api/group_labels.html
type
GroupLabel
Label
func
(
l
GroupLabel
)
String
()
string
{
return
Stringify
(
l
)
}
// ListGroupLabelsOptions represents the available ListGroupLabels() options.
//
// GitLab API docs: https://docs.gitlab.com/ce/api/labels.html#list-labels
type
ListGroupLabelsOptions
ListOptions
// ListGroupLabels gets all labels for given group.
//
// GitLab API docs: https://docs.gitlab.com/ce/api/group_labels.html#list-group-labels
func
(
s
*
GroupLabelsService
)
ListGroupLabels
(
gid
interface
{},
opt
*
ListGroupLabelsOptions
,
options
...
OptionFunc
)
([]
*
GroupLabel
,
*
Response
,
error
)
{
group
,
err
:=
parseID
(
gid
)
if
err
!=
nil
{
return
nil
,
nil
,
err
}
u
:=
fmt
.
Sprintf
(
"groups/%s/labels"
,
url
.
QueryEscape
(
group
))
req
,
err
:=
s
.
client
.
NewRequest
(
"GET"
,
u
,
opt
,
options
)
if
err
!=
nil
{
return
nil
,
nil
,
err
}
var
l
[]
*
GroupLabel
resp
,
err
:=
s
.
client
.
Do
(
req
,
&
l
)
if
err
!=
nil
{
return
nil
,
resp
,
err
}
return
l
,
resp
,
err
}
// CreateGroupLabelOptions represents the available CreateGroupLabel() options.
//
// GitLab API docs: https://docs.gitlab.com/ce/api/group_labels.html#create-a-new-group-label
type
CreateGroupLabelOptions
CreateLabelOptions
// CreateGroupLabel creates a new label for given group with given name and
// color.
//
// GitLab API docs: https://docs.gitlab.com/ce/api/group_labels.html#create-a-new-group-label
func
(
s
*
GroupLabelsService
)
CreateGroupLabel
(
gid
interface
{},
opt
*
CreateGroupLabelOptions
,
options
...
OptionFunc
)
(
*
GroupLabel
,
*
Response
,
error
)
{
group
,
err
:=
parseID
(
gid
)
if
err
!=
nil
{
return
nil
,
nil
,
err
}
u
:=
fmt
.
Sprintf
(
"groups/%s/labels"
,
url
.
QueryEscape
(
group
))
req
,
err
:=
s
.
client
.
NewRequest
(
"POST"
,
u
,
opt
,
options
)
if
err
!=
nil
{
return
nil
,
nil
,
err
}
l
:=
new
(
GroupLabel
)
resp
,
err
:=
s
.
client
.
Do
(
req
,
l
)
if
err
!=
nil
{
return
nil
,
resp
,
err
}
return
l
,
resp
,
err
}
// DeleteGroupLabelOptions represents the available DeleteGroupLabel() options.
//
// GitLab API docs: https://docs.gitlab.com/ce/api/group_labels.html#delete-a-group-label
type
DeleteGroupLabelOptions
DeleteLabelOptions
// DeleteGroupLabel deletes a group label given by its name.
//
// GitLab API docs: https://docs.gitlab.com/ce/api/labels.html#delete-a-label
func
(
s
*
GroupLabelsService
)
DeleteGroupLabel
(
gid
interface
{},
opt
*
DeleteGroupLabelOptions
,
options
...
OptionFunc
)
(
*
Response
,
error
)
{
group
,
err
:=
parseID
(
gid
)
if
err
!=
nil
{
return
nil
,
err
}
u
:=
fmt
.
Sprintf
(
"groups/%s/labels"
,
url
.
QueryEscape
(
group
))
req
,
err
:=
s
.
client
.
NewRequest
(
"DELETE"
,
u
,
opt
,
options
)
if
err
!=
nil
{
return
nil
,
err
}
return
s
.
client
.
Do
(
req
,
nil
)
}
// UpdateGroupLabelOptions represents the available UpdateGroupLabel() options.
//
// GitLab API docs: https://docs.gitlab.com/ce/api/group_labels.html#update-a-group-label
type
UpdateGroupLabelOptions
UpdateLabelOptions
// UpdateGroupLabel updates an existing label with new name or now color. At least
// one parameter is required, to update the label.
//
// GitLab API docs: https://docs.gitlab.com/ce/api/labels.html#edit-an-existing-label
func
(
s
*
GroupLabelsService
)
UpdateGroupLabel
(
gid
interface
{},
opt
*
UpdateGroupLabelOptions
,
options
...
OptionFunc
)
(
*
GroupLabel
,
*
Response
,
error
)
{
group
,
err
:=
parseID
(
gid
)
if
err
!=
nil
{
return
nil
,
nil
,
err
}
u
:=
fmt
.
Sprintf
(
"groups/%s/labels"
,
url
.
QueryEscape
(
group
))
req
,
err
:=
s
.
client
.
NewRequest
(
"PUT"
,
u
,
opt
,
options
)
if
err
!=
nil
{
return
nil
,
nil
,
err
}
l
:=
new
(
GroupLabel
)
resp
,
err
:=
s
.
client
.
Do
(
req
,
l
)
if
err
!=
nil
{
return
nil
,
resp
,
err
}
return
l
,
resp
,
err
}
// SubscribeToGroupLabel subscribes the authenticated user to a label to receive
// notifications. If the user is already subscribed to the label, the status
// code 304 is returned.
//
// GitLab API docs:
// https://docs.gitlab.com/ce/api/group_labels.html#subscribe-to-a-group-label
func
(
s
*
GroupLabelsService
)
SubscribeToGroupLabel
(
gid
interface
{},
labelID
interface
{},
options
...
OptionFunc
)
(
*
GroupLabel
,
*
Response
,
error
)
{
group
,
err
:=
parseID
(
gid
)
if
err
!=
nil
{
return
nil
,
nil
,
err
}
label
,
err
:=
parseID
(
labelID
)
if
err
!=
nil
{
return
nil
,
nil
,
err
}
u
:=
fmt
.
Sprintf
(
"groups/%s/labels/%s/subscribe"
,
url
.
QueryEscape
(
group
),
label
)
req
,
err
:=
s
.
client
.
NewRequest
(
"POST"
,
u
,
nil
,
options
)
if
err
!=
nil
{
return
nil
,
nil
,
err
}
l
:=
new
(
GroupLabel
)
resp
,
err
:=
s
.
client
.
Do
(
req
,
l
)
if
err
!=
nil
{
return
nil
,
resp
,
err
}
return
l
,
resp
,
err
}
// UnsubscribeFromGroupLabel unsubscribes the authenticated user from a label to not
// receive notifications from it. If the user is not subscribed to the label, the
// status code 304 is returned.
//
// GitLab API docs:
// https://docs.gitlab.com/ce/api/group_labels.html#unsubscribe-from-a-group-label
func
(
s
*
GroupLabelsService
)
UnsubscribeFromGroupLabel
(
gid
interface
{},
labelID
interface
{},
options
...
OptionFunc
)
(
*
Response
,
error
)
{
group
,
err
:=
parseID
(
gid
)
if
err
!=
nil
{
return
nil
,
err
}
label
,
err
:=
parseID
(
labelID
)
if
err
!=
nil
{
return
nil
,
err
}
u
:=
fmt
.
Sprintf
(
"groups/%s/labels/%s/unsubscribe"
,
url
.
QueryEscape
(
group
),
label
)
req
,
err
:=
s
.
client
.
NewRequest
(
"POST"
,
u
,
nil
,
options
)
if
err
!=
nil
{
return
nil
,
err
}
return
s
.
client
.
Do
(
req
,
nil
)
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment