서비스 후크에 대한 사용자 지정 소비자 만들기
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
서비스 후크를 사용하면 프로젝트에서 발생하는 이벤트에 대해 타사 시스템에 알릴 수 있습니다. 사용자 지정 소비자를 사용하여 확장 매니페스트에 정의된 엔드포인트에 HTTP 메시지를 보낼 수 있습니다.
이 문서에서는 다음 이벤트 및 작업을 포함하는 샘플 소비자 서비스를 구현하는 확장을 개발하는 방법에 대해 설명합니다.
- 다음 작업을 트리거하는 지원되는 이벤트:
- 코드 푸시됨
- 끌어오기 요청이 만들어짐
- 끌어오기 요청이 업데이트됨
- 이벤트가 발생할 때 수행할 지원되는 작업:
- 작업 수행(HTTP 메시지 보내기)
참고 항목
이 문서에서는 프로젝트의 홈 디렉터리를 "home"으로 지칭합니다.
자세한 내용은 확장 예제 GitHub 리포지토리를 참조하세요. 사용자 지정 소비자 확장에 대한 트리거로 사용할 수 있는 지원되는 모든 이벤트 목록은 이벤트 유형 목록을 참조하세요.
팁
Azure DevOps 확장 SDK를 사용하여 확장 개발에 대한 최신 설명서를 확인하세요.
서비스 후크의 작동 방식
서비스 후크 게시자는 이벤트 집합 을 정의합니다. 구독은 이벤트를 수신 대기하고 대기하며 이벤트가 트리거되는 경우에 대한 작업을 정의합니다.
이는 모든 서비스 후크 구현이 작동하는 방식에 대한 일반적인 설명입니다. 이 경우 확장으로 정의된 소비자와 이벤트가 발생할 때의 지정된 작업을 지정합니다.
확장 만들기
사용자 지정 소비자 구현에 대한 특정 기여를 기본 매니페스트 파일에 추가합니다. 기여를 추가한 후 매니페스트가 어떻게 표시되어야 하는지에 대한 다음 예제를 참조하세요.
{
"manifestVersion": 1,
"id": "samples-service-hooks-consumer",
"version": "0.1.2",
"name": "Service Hooks Sample",
"description": "A simple extension that demonstrates how to contribute a consumer service into service hooks.",
"publisher": "fabrikam",
"public": false,
"icons": {
"default": "images/logo.png"
},
"scopes": [],
"files": [
{
"path": "images",
"addressable": true
}
],
"content": {
"details": {
"path": "readme.md"
}
},
"categories": [
"Developer samples"
],
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
],
"contributions": [
{
"id": "consumer",
"type": "ms.vss-servicehooks.consumer",
"targets": [
"ms.vss-servicehooks.consumers"
],
"properties": {
"id": "consumer",
"name": "Sample Consumer",
"description": "Sample consumer service",
"informationUrl": "https://aka.ms/vsoextensions",
"inputDescriptors": [
{
"id": "url",
"isRequired": true,
"name": "URL",
"description": "URL to post event payload to",
"inputMode": "textbox"
}
],
"actions": [
{
"id": "performAction",
"name": "Perform action",
"description": "Posts a standard event payload",
"supportedEventTypes": [
"git.push",
"git.pullrequest.created",
"git.pullrequest.updated"
],
"publishEvent": {
"url": "{{{url}}}",
"resourceDetailsToSend": "all",
"messagesToSend": "all",
"detailedMessagesToSend": "all"
}
}
]
}
}
]
}
참고 항목
속성을 업데이트해야 합니다 publisher
.
확장의 각 기여에 대해 매니페스트는 다음 항목을 정의합니다.
- 기여 유형 - 이 경우 소비자 서비스(ms.vss-servicehooks.consumer)
- 기여 대상 - 이 경우 소비자 서비스(ms.vss-servicehooks.consumers)
- 각 기여 유형과 관련된 속성
소비자에는 다음과 같은 속성이 있습니다.
속성 | Description |
---|---|
id | 소비자 서비스에 대한 고유 ID입니다. |
name | 서비스 후크 구독을 만드는 동안 표시되는 사용자 지정 소비자의 이름입니다. |
description | 소비자 서비스에 대해 설명합니다. |
informationUrl | 확장에 대한 자세한 정보를 찾습니다. |
inputDescriptors | 소비자 서비스를 사용하여 구독을 만드는 사용자가 사용할 입력입니다. |
actions | 수행할 작업과 해당 작업을 트리거하는 이벤트에 대해 설명합니다. |
소비자에 대한 작업에는 다음과 같은 속성이 있습니다.
속성 | Description |
---|---|
id | 작업 서비스에 대한 ID입니다. |
name | 작업의 이름입니다. |
description | 작업에 대한 자세한 설명입니다. |
supportedEventTypes | 이 작업을 사용할 수 있는 트리거 형식의 배열입니다. 자세한 내용은 이벤트 유형 목록을 참조 하세요. |
publishEvent.url | HTTP 메시지가 전송되는 URL입니다. inputDescriptors에서 제공하는 값으로 템플릿을 지정할 수 있습니다. 해당 실제 값은 구독을 만들 때 사용자가 정의합니다. |
- Azure DevOps 조직에 확장을 배포하고 테스트합니다.