From a929d94f6c0c6747d9ee8b9716340630af02f3cc Mon Sep 17 00:00:00 2001 From: Paul Vollmer Date: Thu, 6 Feb 2020 18:13:49 +0100 Subject: [PATCH] Added CreateGroupIssueBoard func #767 --- group_boards.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/group_boards.go b/group_boards.go index 1e814c57f..6ee0aca0e 100644 --- a/group_boards.go +++ b/group_boards.go @@ -77,6 +77,40 @@ func (s *GroupIssueBoardsService) ListGroupIssueBoards(gid interface{}, opt *Lis return gs, resp, err } +// CreateGroupIssueBoardOptions represents the available +// CreateGroupIssueBoard() options. +// +// GitLab API docs: +// https://docs.gitlab.com/ce/api/group_boards.html#create-a-group-issue-board-premium +type CreateGroupIssueBoardOptions struct { + Name *string `url:"name" json:"name"` +} + +// CreateGroupIssueBoard creates a new issue board. +// +// GitLab API docs: +// https://docs.gitlab.com/ce/api/group_boards.html#create-a-group-issue-board-premium +func (s *GroupIssueBoardsService) CreateGroupIssueBoard(gid interface{}, opt *CreateGroupIssueBoardOptions, options ...OptionFunc) (*GroupIssueBoard, *Response, error) { + group, err := parseID(gid) + if err != nil { + return nil, nil, err + } + u := fmt.Sprintf("groups/%s/boards", pathEscape(group)) + + req, err := s.client.NewRequest("POST", u, opt, options) + if err != nil { + return nil, nil, err + } + + gib := new(GroupIssueBoard) + resp, err := s.client.Do(req, gib) + if err != nil { + return nil, resp, err + } + + return gib, resp, err +} + // GetGroupIssueBoard gets a single issue board of a group. // // GitLab API docs: