Skip to content

feat: create group webhook #1173 #1181

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Oct 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading