feat: add gitlab webhook http entrypoint
This commit is contained in:
@@ -0,0 +1,20 @@
|
|||||||
|
package com.onixbyte.deltaforceguide.controller;
|
||||||
|
|
||||||
|
import com.onixbyte.deltaforceguide.domain.dto.GitLabWebhookRequest;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/webhook")
|
||||||
|
public class WebhookController {
|
||||||
|
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(WebhookController.class);
|
||||||
|
|
||||||
|
@PostMapping("/gitlab")
|
||||||
|
public void gitlabWebhook(
|
||||||
|
@RequestBody GitLabWebhookRequest request
|
||||||
|
) {
|
||||||
|
log.info("request={}", request);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
package com.onixbyte.deltaforceguide.domain.dto;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonNaming;
|
||||||
|
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
|
||||||
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||||
|
public record GitLabWebhookRequest(
|
||||||
|
String objectKind,
|
||||||
|
String eventType,
|
||||||
|
GitLabWebhookObjectAttributes objectAttributes
|
||||||
|
) {
|
||||||
|
|
||||||
|
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
|
||||||
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||||
|
public record GitLabWebhookLabel(
|
||||||
|
Long id,
|
||||||
|
String title,
|
||||||
|
@JsonProperty("color")
|
||||||
|
String colour,
|
||||||
|
Long projectId,
|
||||||
|
String createdAt,
|
||||||
|
String updatedAt,
|
||||||
|
Boolean template,
|
||||||
|
String description,
|
||||||
|
String type,
|
||||||
|
Long groupId
|
||||||
|
) {}
|
||||||
|
|
||||||
|
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
|
||||||
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||||
|
public record GitLabWebhookObjectAttributes(
|
||||||
|
Long id,
|
||||||
|
String title,
|
||||||
|
String description,
|
||||||
|
List<GitLabWebhookLabel> labels
|
||||||
|
) {}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user