Seize your moment! ๐Ÿ‘พ

์•ˆ๋…•ํ•˜์„ธ์š”. Eric์ž…๋‹ˆ๋‹ค. ์ œ ๋ธ”๋กœ๊ทธ์— ๋ฐฉ๋ฌธํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ป ๊ฐœ๋ฐœ๊ณต๋ถ€/Web

[Eric's Web] API๋ฅผ ํ†ตํ•ด์„œ Jira Webhook ๋“ฑ๋กํ•˜๊ธฐ. ( OAuth2.0 Token์–ป๊ธฐ ํฌํ•จ)

Eric_ko 2023. 8. 26. 13:47

API๋ฅผ ํ†ตํ•ด์„œ Jira Webhook ๋“ฑ๋กํ•˜๊ธฐ. ( OAuth2.0 Token์–ป๊ธฐ ํฌํ•จ)

 

์•ˆ๋…•ํ•˜์„ธ์š”.

Eric์ž…๋‹ˆ๋‹ค.

์˜ค๋Š˜ ์ œ๊ฐ€ ์ค€๋น„ํ•œ ๋‚ด์šฉ์€

Jira API๋ฅผ ํ†ตํ•œ Jira Webhook ๋“ฑ๋กํ•˜๊ธฐ ์ž…๋‹ˆ๋‹ค.

 

์›นํ›…(Webhook)์ด๋ž€?

์›นํ›…(Webhook)์€ ํ•œ ์‹œ์Šคํ…œ์—์„œ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์œผ๋กœ ์ด๋ฒคํŠธ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์ž๋™ํ™”๋œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์›นํ›…์€ ์ฃผ๋กœ ์›น ์„œ๋น„์Šค ๊ฐ„์˜ ์‹ค์‹œ๊ฐ„ ์ƒํ˜ธ ์ž‘์šฉ์— ์‚ฌ์šฉ๋˜๋ฉฐ, ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

 

์›นํ›… ๊ฐœ๋…์€ ํ•˜๋‹จ์˜ ์ €์˜ ๊ฒŒ์‹œ๊ธ€ ์ฐธ์กฐํ•ด์ฃผ์„ธ์š”.

https://just09.tistory.com/363

 

[Eric's CS] ์›นํ›…(WebHook) ? ๐ŸŽฃ

โœ… Abstarct ์›นํ›…(Webhook)์€ ์›น ์„œ๋น„์Šค ๊ฐ„์˜ ์‹ค์‹œ๊ฐ„ ์ƒํ˜ธ ์ž‘์šฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์ž๋™ํ™”๋œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์›นํ›…์˜ ๊ฐœ๋…๊ณผ ์›๋ฆฌ, ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ ์˜ˆ์‹œ๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ” ์›นํ›…(Webhook)์ด๋ž€? ์›นํ›…(We

just09.tistory.com


์‹œ์ž‘์ „์— ์•ž์„œ,

์ €๋Š” ์ด๋ฒˆ์— Postman ์„ ํ†ตํ•ด์„œ ์˜ค๋Š˜์˜ ๊ธ€์„ ์ž‘์„ฑํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค!

 

[๊ฐœ์š”]

 

1. OAuth 2.0 Token ์–ป๊ธฐ

2. ๋‚ด๊ฐ€ ์ง„ํ–‰์ค‘์ธ Jira ์˜ id๊ฐ’ ์–ป๊ธฐ

3. API๋ฅผ ํ†ตํ•œ Webhook ๋“ฑ๋กํ•˜๊ธฐ

4. ๋“ฑ๋ก๋œ Webhook ํ™•์ธํ•˜๊ธฐ

5. ๋“ฑ๋ก๋œ Webhook ์ œ๊ฑฐํ•˜๊ธฐ


1. OAuth 2.0 Token ์–ป๊ธฐ

 

์ด๋ฒˆ์— ์ œ๊ฐ€ API๋ฅผ ํ†ตํ•ด์„œ Jira API๋ฅผ ๋“ฑ๋กํ•˜๊ธฐ์œ„ํ•ด์„œ๋Š”

OAuth 2.0 Token์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ์šฐ์„  Token์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด์„œ Postman์— 

 

Authorization ์— ์ ‘์†ํ•ด์„œ,

Type : OAuth2.0 ์œผ๋กœ ์ ‘์†ํ•˜๊ณ 

Add authorization data๋ฅผ Reqeust Header๋กœ ์šฐ์„  ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.(Jira๋Š” ์ด๋ ‡๊ฒŒ ํ•ด์•ผํ•จ)


๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ Token ๊ฐ’์„ ์–ป๊ธฐ ์œ„ํ•œ

์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ค€๋น„๋ฌผ์ด ํ•„์š”ํ•œ๋ฐ์š”,

- Callback URL

- Auth URL

- Access Token URL

- Client ID

- Client Secret 

- Scope

๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ฐจ๊ทผ์ฐจ๊ทผ ํ•˜๋‚˜์”ฉ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

1.1 Callback URL

Callback URL์€ OAuth 2.0 ์ธ์ฆ ๊ณผ์ •์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋œ ํ›„์— ์‚ฌ์šฉ์ž๊ฐ€ ๋ฆฌ๋””๋ ‰์…˜๋  URL์ž…๋‹ˆ๋‹ค.

์ด URL์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋“ฑ๋กํ•  ๋•Œ OAuth ์ œ๊ณต์ž์—๊ฒŒ ์•Œ๋ ค์ค˜์•ผ ํ•˜๋ฉฐ, ์ธ์ฆ ์ฝ”๋“œ๋‚˜ ์•ก์„ธ์Šค ํ† ํฐ์ด ์ด URL๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

์ €๋Š” PostMan์„ ์ด์šฉํ•ด์„œ ์ง„ํ–‰ํ• ๊ฒƒ์ด๊ธฐ๋•Œ๋ฌธ์—, PostMan์ด ์ œ๊ณตํ•˜๋Š” URL

https://getpostman.com/oauth2/callback

์„ ์‚ฌ์šฉํ• ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ๋‚ด์šฉ์„ Jira Devolper Console ์˜ Authorization ๋ถ€๋ถ„์—

๋™์ผํ•œ URL์„ ์ž…๋ ฅํ•ด์ฃผ์…”์•ผํ•ฉ๋‹ˆ๋‹ค.

1.2 Auth URL

Auth URL์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ฒ˜์Œ์œผ๋กœ OAuth 2.0 ์ธ์ฆ์„ ์‹œ์ž‘ํ•  ๋•Œ ๋ฐฉ๋ฌธํ•˜๋Š” URL์ž…๋‹ˆ๋‹ค.

์ด URL์€ ์ผ๋ฐ˜์ ์œผ๋กœ OAuth ์ œ๊ณต์ž์˜ ์›น์‚ฌ์ดํŠธ์— ์œ„์น˜ํ•˜๋ฉฐ,

์‚ฌ์šฉ์ž๋Š” ์ด๊ณณ์—์„œ ๋กœ๊ทธ์ธํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋ฒˆ์— ์ €๋Š” Jira๋ฅผ ์ด์šฉํ• ๊ฒƒ์ด๋ฏ€๋กœ Jira์˜ Auth URL์„ ์ด์šฉํ• ๊ฒƒ์ž…๋‹ˆ๋‹ค.

https://auth.atlassian.com/authorize

 

1.3 Access Token URL

Access Token URL์€ ์ธ์ฆ ์ฝ”๋“œ๋ฅผ ์•ก์„ธ์Šค ํ† ํฐ์œผ๋กœ ๊ตํ™˜ํ•˜๋Š” ๊ณผ์ •์—์„œ ์‚ฌ์šฉ๋˜๋Š” URL์ž…๋‹ˆ๋‹ค.

์ด URL์— ์ธ์ฆ ์ฝ”๋“œ์™€ ํด๋ผ์ด์–ธํŠธ ์ •๋ณด๋ฅผ POST ์š”์ฒญ์œผ๋กœ ๋ณด๋‚ด๋ฉด, ์•ก์„ธ์Šค ํ† ํฐ์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ์— ์ €๋Š” Jira๋ฅผ ์ด์šฉํ• ๊ฒƒ์ด๋ฏ€๋กœ Jira์˜ Access Token URL์„ ์ด์šฉํ• ๊ฒƒ์ž…๋‹ˆ๋‹ค.

https://auth.atlassian.com/oauth/token

 

 

Clinet ID ์™€ Client Secret ์˜ ๊ฒฝ์šฐ์—๋Š”

Jira Developer Console์˜ Settings ์—์„œ ํ•˜๋‹จ๊ณผ ๊ฐ™์ด ํ™•์ธํ•˜์…”์„œ

๋„ฃ์œผ์‹œ๋ฉด๋ฉ๋‹ˆ๋‹ค.

https://developer.atlassian.com/console/myapps

1.4 Client ID

Client ID๋Š” OAuth 2.0 ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹๋ณ„ํ•˜๋Š” ๊ณ ์œ ํ•œ ์‹๋ณ„์ž์ž…๋‹ˆ๋‹ค.

์ด ID๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ OAuth ์ œ๊ณต์ž์— ๋“ฑ๋กํ•  ๋•Œ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์œ„์˜ ์‚ฌ์ง„ ๊ฐ’์„ ์ž…๋ ฅํ•ด์ค๋‹ˆ๋‹ค.

1.5 Client Secret

Client Secret์€ ํด๋ผ์ด์–ธํŠธ ID์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹ ์›์„ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด ๊ฐ’์€ ๋ณด์•ˆ์„ ์œ ์ง€ํ•ด์•ผ ํ•˜๋ฉฐ, ์ ˆ๋Œ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋…ธ์ถœ๋˜์–ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์œ„์˜ ์‚ฌ์ง„ ๊ฐ’์„ ์ž…๋ ฅํ•ด์ค๋‹ˆ๋‹ค.

1.6 Scope

Scope๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋ถ€์—ฌ๋  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์˜ ๋ฒ”์œ„๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž์˜ ์ด๋ฉ”์ผ, ํ”„๋กœํ•„ ์ •๋ณด, ์‚ฌ์ง„ ๋“ฑ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Scope๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๊ณต๋ฐฑ์ด๋‚˜ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ฌธ์ž์—ด๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค.

์ €๋Š” ์ด๋ฒˆ ํ† ํฐ์œผ๋กœ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ•˜๊ณ ์‹ถ์–ด์„œ Classic Scopes ๋Š” ๋ชจ๋‘๋‹ค ๋“ฑ๋กํ•˜์˜€์Šต๋‹ˆ๋‹ค.

read:jira-work manage:jira-project manage:jira-configuration read:jira-user write:jira-work manage:jira-webhook manage:jira-data-provider

์›ํ•˜์‹œ๋Š” Scope๋ฅผ ์ฐพ์œผ์‹œ๋ ค๋ฉด

ํ•˜๋‹จ์˜ ๋‚ด์šฉ ๋ฐ ๋งํฌ๋ฅผ ์ฐธ์กฐ!

https://developer.atlassian.com/cloud/jira/platform/scopes-for-oauth-2-3LO-and-forge-apps/

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด OAuth2.0 Token์„ ์–ป์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


2. ๋‚ด๊ฐ€ ์ง„ํ–‰์ค‘์ธ Jira ์˜ id๊ฐ’ ์–ป๊ธฐ

 

์šฐ์„  ์ด๋ฒˆ์— API๋ฅผ ํ†ตํ•ด์„œ Webhook์„ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”

๋‚ด๊ฐ€ ์‚ฌ์šฉ์ค‘์ธ Jira์˜ id๊ฐ’์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 

์ €ํฌ๊ฐ€ ์‚ฌ์šฉํ•  API๋Š”

https://api.atlassian.com/ex/jira/{jira_id}/rest/api/2/webhook

์ด๋Ÿฌํ•œ ํ˜•์‹์ธ๋ฐ,

์ด๋ฅผ ์œ„ํ•ด์„œ jira-id์„ ์–ป๊ธฐ์œ„ํ•ด์„œ๋Š”

์šฐ์„  ์•ž์„œ ๋ฐœ๊ธ‰๋ฐ›์•˜๋˜ Token์„ ํ†ตํ•ด์„œ ํ•˜๋‹จ์˜ API๋ฅผ ํ†ตํ•ด์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

 

GET

https://api.atlassian.com/oauth/token/accessible-resources

 

 

๊ทธ๋Ÿฌ๋ฉด ํ•˜๋‹จ์˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ

์ œ๊ฐ€ ๊ฐ€์ง„ Token์œผ๋กœ ์ ‘์†์ด ๊ฐ€๋Šฅํ•œ Jira ๋ชฉ๋ก์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ ์‚ฌ์ง„์ƒ์—์„œ ๋…ธ๋ž€๋ฐ•์Šค์— ์žˆ๋Š” 

์ œ๊ฐ€ ์›ํ•˜๋Š” id๊ฐ’์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.


3. API๋ฅผ ํ†ตํ•œ Webhook ๋“ฑ๋กํ•˜๊ธฐ

๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

์ด์ œ 

 

POST

https://api.atlassian.com/ex/jira/{jira_id}/rest/api/2/webhook

๋ฅผ ํ†ตํ•ด์„œ Webhook์„ ๋“ฑ๋กํ•ด์ค๋‹ˆ๋‹ค.

 

์ด๋•Œ, Token์€ ์•ž์—์„œ ๋ฐœ๊ธ‰๋ฐ›์•˜๋˜ Token์„ ์‚ฌ์šฉํ•ด์ฃผ๊ณ ,

 

์ค‘์š”ํ•œ๊ฑด, Body๊ฐ’์—

ํ•˜๋‹จ์˜ ๋‚ด์šฉ์„ ์ž…๋ ฅํ•ด์ฃผ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

{
"url": "https://helloworld.com/notification/jira", // webhook์„ ํ†ตํ•ด์„œ API๋ฅผ ๋ฐ›์„ url์ฃผ์†Œ
  "webhooks": [
    {
      "events": [ // ์–ด๋–ค Event๋“ค์„ webhook์„ ํ†ตํ•ด์„œ ์ „๋‹ฌ๋ฐ›์„์ง€
        "jira:issue_created",
        "jira:issue_updated",
        "comment_created"
      ],
      "jqlFilter": "project = KAN" // ์–ด๋–ค Project์—์„œ ํ•ด๋‹น webhook์„ ๋™์ž‘์‹œํ‚ฌ์ง€
    }   
  ]
}

3.1 url

์ด URL์€ Jira์—์„œ ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์•Œ๋ฆผ์„ ๋ฐ›์„ ์™ธ๋ถ€ ์„œ๋น„์Šค์˜ URL์ž…๋‹ˆ๋‹ค.

3.2 webhooks

์ด ๋ฐฐ์—ด์€ ํ•˜๋‚˜ ์ด์ƒ์˜ ์›นํ›… ์„ค์ •์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ์›นํ›…์€ ์–ด๋–ค ์ด๋ฒคํŠธ์— ๋ฐ˜์‘ํ• ์ง€์™€ ์–ด๋–ค ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ• ์ง€๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

3.3 events

์ด ๋ฐฐ์—ด์€ ์›นํ›…์ด ๋ฐ˜์‘ํ•  Jira ์ด๋ฒคํŠธ์˜ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

- jira:issue_created: ์ด์Šˆ๊ฐ€ ์ƒˆ๋กœ ์ƒ์„ฑ๋˜์—ˆ์„ ๋•Œ

- jira:issue_updated: ๊ธฐ์กด ์ด์Šˆ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์„ ๋•Œ

- comment_created: ์ƒˆ๋กœ์šด ๋Œ“๊ธ€์ด ์ƒ์„ฑ๋˜์—ˆ์„ ๋•Œ

3.4 jqlFilter

JQL(Jira Query Language) ํ•„ํ„ฐ๋Š” ์›นํ›…์ด ๋ฐ˜์‘ํ•  ์ด์Šˆ๋ฅผ ์ขํ˜€์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

์ด ํ•„ํ„ฐ์— ๋งž๋Š” ์ด์Šˆ์—๋งŒ ์›นํ›…์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ: "project = KAN"์€ KAN ํ”„๋กœ์ ํŠธ์— ์†ํ•œ ์ด์Šˆ์—๋งŒ ์›นํ›…์ด ์ž‘๋™ํ•˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๋˜๋ฉด Webhook์ด ๋“ฑ๋ก์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


4. ๋“ฑ๋ก๋œ Webhook ํ™•์ธํ•˜๊ธฐ

์ด์ œ ์›นํ›…์ด ๋“ฑ๋ก๋˜์—ˆ์œผ๋‹ˆ ํ™•์ธํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋“ฑ๋ก๋œ ์›นํ›…์„ ํ™•์ธ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”

 

GET

https://api.atlassian.com/ex/jira/{jira_id}/rest/api/2/webhook

์„ ํ†ตํ•ด์„œ Token์„ ์‚ฌ์šฉํ•ด์„œ ์š”์ฒญํ•˜๋ฉด

ํ•˜๋‹จ๊ณผ ๊ฐ™์ด ๋“ฑ๋ก๋œ Webhook์„ Array ํ˜•ํƒœ๋กœ ๋ฐ›์•„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


5. ๋“ฑ๋ก๋œ Webhook ์ œ๊ฑฐํ•˜๊ธฐ

 

๋“ฑ๋ก๋œ Webhook์„ ์ƒ๋‹จ์˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ์กฐํšŒ ํ•˜๊ณ ๋‚˜์„œ,

values์˜ ๊ฐ’์ค‘ id ๊ฐ’์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค

 

DELETE

https://api.atlassian.com/ex/jira/{jira_id}/rest/api/2/webhook

๋ฅผ ํ†ตํ•ด์„œ

Body ๊ฐ’์— ์ง€์›Œ์ค„ Webhook์˜ id๊ฐ’๋“ค์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

{"webhookIds" : [
    9,10 // id๊ฐ’์„ ์ž…๋ ฅ
]}

๊ทธ๋Ÿฌ๋ฉด ์ƒ๋‹จ์˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ

202 Accepted ๊ฐ€ ๋˜๋ฉด์„œ Webhook์ด ์ง€์›Œ์ง„๊ฒƒ์„ ํ™•์ธ ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์˜ค๋Š˜์€ Jira์˜ API๋ฅผ ํ†ตํ•ด์„œ Webhook์„ ๋“ฑ๋ก, ์‚ญ์ œ, ์กฐํšŒ ๋ฅผ ํ•ด๋ณด์•˜๋Š”๋ฐ์š”,

์ œ ๊ธ€์ด ๋งŽ์€ ๋„์›€์ด ๋˜์…จ๊ธฐ๋ฅผ ๋ฐ”๋ผ๋ฉฐ

๋‹ค์Œ์— ์ €๋Š” ๋” ์ข‹์€ ์ •๋ณด๋กœ ์ฐพ์•„๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ด์ƒ ๊ฐœ๋ฐœ์ž Eric์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

 

 

์ฐธ๊ณ ์ž๋ฃŒ

https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-webhooks/#api-group-webhooks

 

'๐Ÿ’ป ๊ฐœ๋ฐœ๊ณต๋ถ€ > Web' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Eric's CS] ์›นํ›…(WebHook) ? ๐ŸŽฃ  (0) 2023.04.06