Skip to content

Commit

Permalink
Add addWebhook(Object groupIdOrPath, GroupHookParams groupHookParams)…
Browse files Browse the repository at this point in the history
… to GroupApi (#1181)

Fixes #1173
  • Loading branch information
LeJeanbono authored Oct 15, 2024
1 parent ba17e7c commit 384f26a
Show file tree
Hide file tree
Showing 6 changed files with 529 additions and 25 deletions.
34 changes: 16 additions & 18 deletions src/main/java/org/gitlab4j/api/GroupApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,25 +16,8 @@
import javax.ws.rs.core.Response;

import org.gitlab4j.api.GitLabApi.ApiVersion;
import org.gitlab4j.api.models.AccessLevel;
import org.gitlab4j.api.models.AccessRequest;
import org.gitlab4j.api.models.AuditEvent;
import org.gitlab4j.api.models.Badge;
import org.gitlab4j.api.models.CustomAttribute;
import org.gitlab4j.api.models.Group;
import org.gitlab4j.api.models.GroupAccessToken;
import org.gitlab4j.api.models.GroupFilter;
import org.gitlab4j.api.models.GroupParams;
import org.gitlab4j.api.models.GroupProjectsFilter;
import org.gitlab4j.api.models.*;
import org.gitlab4j.api.models.ImpersonationToken.Scope;
import org.gitlab4j.api.models.Iteration;
import org.gitlab4j.api.models.IterationFilter;
import org.gitlab4j.api.models.LdapGroupLink;
import org.gitlab4j.api.models.Member;
import org.gitlab4j.api.models.Project;
import org.gitlab4j.api.models.SamlGroupLink;
import org.gitlab4j.api.models.Variable;
import org.gitlab4j.api.models.Visibility;
import org.gitlab4j.api.utils.ISO8601;

/**
Expand Down Expand Up @@ -2440,4 +2423,19 @@ public GroupAccessToken rotateGroupAccessToken(Object groupIdOrPath, Long tokenI
public void revokeGroupAccessToken(Object groupIdOrPath, Long tokenId) throws GitLabApiException {
delete(Response.Status.NO_CONTENT, null, "groups", getGroupIdOrPath(groupIdOrPath), "access_tokens", tokenId);
}

/**
* Add a group hook
*
* <pre><code>GitLab Endpoint: POST /groups/:id/hooks</code></pre>
*
* @param groupIdOrPath the group in the form of an Long(ID), String(path), or Group instance
* @param groupHookParams webhook creation options
* @throws GitLabApiException if any exception occurs
*/
public GroupHook addWebhook(Object groupIdOrPath, GroupHookParams groupHookParams) throws GitLabApiException {
Response response = post(
Response.Status.CREATED, groupHookParams.getForm(), "groups", getGroupIdOrPath(groupIdOrPath), "hooks");
return (response.readEntity(GroupHook.class));
}
}
252 changes: 252 additions & 0 deletions src/main/java/org/gitlab4j/api/models/GroupHook.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,252 @@
package org.gitlab4j.api.models;

import java.io.Serializable;
import java.util.Date;

public class GroupHook implements Serializable {
private static final long serialVersionUID = 1L;

private Long id;
private String url;
private String name;
private String description;
private Long groupId;
private Boolean pushEvents;
private String pushEventsBranchFilter;
private String branchFilterStrategy;
private Boolean issuesEvents;
private Boolean confidentialIssuesEvents;
private Boolean mergeRequestsEvents;
private Boolean tagPushEvents;
private Boolean noteEvents;
private Boolean confidentialNoteEvents;
private Boolean jobEvents;
private Boolean pipelineEvents;
private Boolean wikiPageEvents;
private Boolean deploymentEvents;
private Boolean featureFlagEvents;
private Boolean releasesEvents;
private Boolean subgroupEvents;
private Boolean memberEvents;
private Boolean enableSslVerification;
private Boolean repositoryUpdateEvents;
private Date createdAt;
private Boolean resourceAccessTokenEvents;
private String customWebhookTemplate;

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getUrl() {
return url;
}

public void setUrl(String url) {
this.url = url;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public Long getGroupId() {
return groupId;
}

public void setGroupId(Long groupId) {
this.groupId = groupId;
}

public Boolean getPushEvents() {
return pushEvents;
}

public void setPushEvents(Boolean pushEvents) {
this.pushEvents = pushEvents;
}

public String getPushEventsBranchFilter() {
return pushEventsBranchFilter;
}

public void setPushEventsBranchFilter(String pushEventsBranchFilter) {
this.pushEventsBranchFilter = pushEventsBranchFilter;
}

public String getBranchFilterStrategy() {
return branchFilterStrategy;
}

public void setBranchFilterStrategy(String branchFilterStrategy) {
this.branchFilterStrategy = branchFilterStrategy;
}

public Boolean getIssuesEvents() {
return issuesEvents;
}

public void setIssuesEvents(Boolean issuesEvents) {
this.issuesEvents = issuesEvents;
}

public Boolean getConfidentialIssuesEvents() {
return confidentialIssuesEvents;
}

public void setConfidentialIssuesEvents(Boolean confidentialIssuesEvents) {
this.confidentialIssuesEvents = confidentialIssuesEvents;
}

public Boolean getMergeRequestsEvents() {
return mergeRequestsEvents;
}

public void setMergeRequestsEvents(Boolean mergeRequestsEvents) {
this.mergeRequestsEvents = mergeRequestsEvents;
}

public Boolean getTagPushEvents() {
return tagPushEvents;
}

public void setTagPushEvents(Boolean tagPushEvents) {
this.tagPushEvents = tagPushEvents;
}

public Boolean getNoteEvents() {
return noteEvents;
}

public void setNoteEvents(Boolean noteEvents) {
this.noteEvents = noteEvents;
}

public Boolean getConfidentialNoteEvents() {
return confidentialNoteEvents;
}

public void setConfidentialNoteEvents(Boolean confidentialNoteEvents) {
this.confidentialNoteEvents = confidentialNoteEvents;
}

public Boolean getJobEvents() {
return jobEvents;
}

public void setJobEvents(Boolean jobEvents) {
this.jobEvents = jobEvents;
}

public Boolean getPipelineEvents() {
return pipelineEvents;
}

public void setPipelineEvents(Boolean pipelineEvents) {
this.pipelineEvents = pipelineEvents;
}

public Boolean getWikiPageEvents() {
return wikiPageEvents;
}

public void setWikiPageEvents(Boolean wikiPageEvents) {
this.wikiPageEvents = wikiPageEvents;
}

public Boolean getDeploymentEvents() {
return deploymentEvents;
}

public void setDeploymentEvents(Boolean deploymentEvents) {
this.deploymentEvents = deploymentEvents;
}

public Boolean getFeatureFlagEvents() {
return featureFlagEvents;
}

public void setFeatureFlagEvents(Boolean featureFlagEvents) {
this.featureFlagEvents = featureFlagEvents;
}

public Boolean getReleasesEvents() {
return releasesEvents;
}

public void setReleasesEvents(Boolean releasesEvents) {
this.releasesEvents = releasesEvents;
}

public Boolean getSubgroupEvents() {
return subgroupEvents;
}

public void setSubgroupEvents(Boolean subgroupEvents) {
this.subgroupEvents = subgroupEvents;
}

public Boolean getMemberEvents() {
return memberEvents;
}

public void setMemberEvents(Boolean memberEvents) {
this.memberEvents = memberEvents;
}

public Boolean getEnableSslVerification() {
return enableSslVerification;
}

public void setEnableSslVerification(Boolean enableSslVerification) {
this.enableSslVerification = enableSslVerification;
}

public Boolean getRepositoryUpdateEvents() {
return repositoryUpdateEvents;
}

public void setRepositoryUpdateEvents(Boolean repositoryUpdateEvents) {
this.repositoryUpdateEvents = repositoryUpdateEvents;
}

public Date getCreatedAt() {
return createdAt;
}

public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}

public Boolean getResourceAccessTokenEvents() {
return resourceAccessTokenEvents;
}

public void setResourceAccessTokenEvents(Boolean resourceAccessTokenEvents) {
this.resourceAccessTokenEvents = resourceAccessTokenEvents;
}

public String getCustomWebhookTemplate() {
return customWebhookTemplate;
}

public void setCustomWebhookTemplate(String customWebhookTemplate) {
this.customWebhookTemplate = customWebhookTemplate;
}
}
Loading

0 comments on commit 384f26a

Please sign in to comment.