Commit 38862e4d authored by Jeremie Bresson's avatar Jeremie Bresson
Browse files

Merge remote-tracking branch 'origin/main' into 6.x

parents 32c31a5b 61e64115
...@@ -2119,7 +2119,7 @@ public class GroupApi extends AbstractApi { ...@@ -2119,7 +2119,7 @@ public class GroupApi extends AbstractApi {
GitLabApiForm formData = new GitLabApiForm() GitLabApiForm formData = new GitLabApiForm()
.withParam("name", name, true) .withParam("name", name, true)
.withParam("scopes", Arrays.asList(scopes)) .withParam("scopes", Arrays.asList(scopes))
.withParam("expires_at", expiresAt) .withParam("expires_at", ISO8601.dateOnly(expiresAt))
.withParam("access_level", accessLevel); .withParam("access_level", accessLevel);
Response response = post(Response.Status.CREATED, formData, "groups", getGroupIdOrPath(groupIdOrPath), "access_tokens"); Response response = post(Response.Status.CREATED, formData, "groups", getGroupIdOrPath(groupIdOrPath), "access_tokens");
...@@ -2137,10 +2137,30 @@ public class GroupApi extends AbstractApi { ...@@ -2137,10 +2137,30 @@ public class GroupApi extends AbstractApi {
* @throws GitLabApiException if any exception occurs * @throws GitLabApiException if any exception occurs
*/ */
public GroupAccessToken rotateGroupAccessToken(Object groupIdOrPath, Long tokenId) throws GitLabApiException { public GroupAccessToken rotateGroupAccessToken(Object groupIdOrPath, Long tokenId) throws GitLabApiException {
Response response = post(Response.Status.OK, (Form)null, "groups", getGroupIdOrPath(groupIdOrPath), "access_tokens", tokenId, "rotate"); return rotateGroupAccessToken(groupIdOrPath, tokenId, null);
}
/**
* Rotate a group access token. Revokes the previous token and creates a new token that expires in one week.
*
* <pre><code>GitLab Endpoint: POST /groups/:id/access_tokens/:token_id/rotate</code></pre>
*
* @param groupIdOrPath the group in the form of an Long(ID), String(path), or Group instance
* @param tokenId ID of the group access token
* @param expiresAt Expiration date of the access token
* @return the updated GroupAccessToken instance
* @throws GitLabApiException if any exception occurs
*/
public GroupAccessToken rotateGroupAccessToken(Object groupIdOrPath, Long tokenId, Date expiresAt) throws GitLabApiException {
GitLabApiForm formData = new GitLabApiForm()
.withParam("expires_at", ISO8601.dateOnly(expiresAt));
Response response = post(Response.Status.OK, formData, "groups", getGroupIdOrPath(groupIdOrPath), "access_tokens", tokenId, "rotate");
return (response.readEntity(GroupAccessToken.class)); return (response.readEntity(GroupAccessToken.class));
} }
/** /**
* Revoke a group access token. * Revoke a group access token.
* *
......
...@@ -4024,7 +4024,25 @@ public class ProjectApi extends AbstractApi implements Constants { ...@@ -4024,7 +4024,25 @@ public class ProjectApi extends AbstractApi implements Constants {
* @throws GitLabApiException if any exception occurs * @throws GitLabApiException if any exception occurs
*/ */
public ProjectAccessToken rotateProjectAccessToken(Object projectIdOrPath, Long tokenId) throws GitLabApiException { public ProjectAccessToken rotateProjectAccessToken(Object projectIdOrPath, Long tokenId) throws GitLabApiException {
Response response = post(Response.Status.OK, (Object) null, "projects", getProjectIdOrPath(projectIdOrPath), "access_tokens", tokenId, "rotate"); return rotateProjectAccessToken(projectIdOrPath, tokenId, null);
}
/**
* Rotates the given project access token.
* The token is revoked and a new one which will expire in one week is created to replace it.
* Only working with GitLab 16.0 and above.
*
* @param projectIdOrPath the project in the form of a Long(ID), String(path), or Project instance
* @param tokenId the id
* @param expiresAt Expiration date of the access token
* @return the newly created ProjectAccessToken.
* @throws GitLabApiException if any exception occurs
*/
public ProjectAccessToken rotateProjectAccessToken(Object projectIdOrPath, Long tokenId, Date expiresAt) throws GitLabApiException {
GitLabApiForm formData = new GitLabApiForm()
.withParam("expires_at", ISO8601.dateOnly(expiresAt));
Response response = post(Response.Status.OK, formData, "projects", getProjectIdOrPath(projectIdOrPath), "access_tokens", tokenId, "rotate");
return (response.readEntity(ProjectAccessToken.class)); return (response.readEntity(ProjectAccessToken.class));
} }
......
Supports Markdown
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