Skip to content

Commit

Permalink
Merge pull request #1789 from gbw/rotate_group_project_access_tokens
Browse files Browse the repository at this point in the history
Add group access token rotation and project access token rotation.
  • Loading branch information
svanharmelen committed Sep 25, 2023
2 parents 98a5253 + fa3ea0c commit 428c125
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 0 deletions.
24 changes: 24 additions & 0 deletions group_access_tokens.go
Expand Up @@ -145,6 +145,30 @@ func (s *GroupAccessTokensService) CreateGroupAccessToken(gid interface{}, opt *
return pat, resp, nil
}

// RotateGroupAccessToken revokes a group access token and returns a new group
// access token that expires in one week.
// GitLab API docs:
// https://docs.gitlab.com/ee/api/group_access_tokens.html#rotate-a-group-access-token
func (s *GroupAccessTokensService) RotateGroupAccessToken(gid interface{}, id int, options ...RequestOptionFunc) (*GroupAccessToken, *Response, error) {
groups, err := parseID(gid)
if err != nil {
return nil, nil, err
}
u := fmt.Sprintf("groups/%s/access_tokens/%d/rotate", PathEscape(groups), id)
req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
if err != nil {
return nil, nil, err
}

gat := new(GroupAccessToken)
resp, err := s.client.Do(req, gat)
if err != nil {
return nil, resp, err
}

return gat, resp, nil
}

// RevokeGroupAccessToken revokes a group access token.
//
// GitLab API docs:
Expand Down
24 changes: 24 additions & 0 deletions project_access_tokens.go
Expand Up @@ -146,6 +146,30 @@ func (s *ProjectAccessTokensService) CreateProjectAccessToken(pid interface{}, o
return pat, resp, nil
}

// RotateProjectAccessToken revokes a project access token and returns a new
// project access token that expires in one week.
// GitLab API docs:
// https://docs.gitlab.com/ee/api/project_access_tokens.html#rotate-a-project-access-token
func (s *ProjectAccessTokensService) RotateProjectAccessToken(pid interface{}, id int, options ...RequestOptionFunc) (*ProjectAccessToken, *Response, error) {
projects, err := parseID(pid)
if err != nil {
return nil, nil, err
}
u := fmt.Sprintf("projects/%s/access_tokens/%d/rotate", PathEscape(projects), id)
req, err := s.client.NewRequest(http.MethodPost, u, nil, options)
if err != nil {
return nil, nil, err
}

pat := new(ProjectAccessToken)
resp, err := s.client.Do(req, pat)
if err != nil {
return nil, resp, err
}

return pat, resp, nil
}

// RevokeProjectAccessToken revokes a project access token.
//
// GitLab API docs:
Expand Down

0 comments on commit 428c125

Please sign in to comment.