GitHub 이벤트를 사용하여 Azure Function 트리거

완료됨

GitHub Gollum 이벤트를 사용하면 위키 업데이트를 수신 대기할 수 있습니다. 이 이벤트가 발생하면 Azure HttpTrigger 함수가 트리거되면 페이로드를 구문 분석하여 전송된 데이터를 검색 및 처리할 수 있습니다.

웹후크를 설정하여 회사의 GitHub 리포지토리에서 Gollum 이벤트를 수신 대기할 수 있음을 IT 부서에 표시했습니다. 또한 함수가 웹후크 요청을 받을 때 Azure Function 앱에서 코드를 실행할 수 있는 방법을 설명했습니다.

이 단원에서는 Gollum 이벤트의 페이로드를 검사하여 함수를 올바르게 구문 분석하도록 업데이트할 수 있습니다.

Gollum 이벤트 페이로드

Gollum 이벤트에 대한 페이로드에는 다음 항목이 포함됩니다.

  • 업데이트된 페이지입니다. 각 페이지에는 다음 정보가 포함됩니다.
    • page_name: 페이지의 이름입니다.
    • title: 현재 페이지 제목입니다.
    • action: 페이지에서 수행된 작업(생성 또는 편집)입니다.
    • html_url: HTML 위키 페이지입니다.
  • 위키 페이지를 포함하는 저장소에 대한 정보는 다음을 포함합니다:
    • name: 리포지토리의 이름입니다.
    • owner: 리포지토리 소유자의 세부 정보입니다.
    • html_url: 리포지토리의 주소입니다.
  • 보낸 사람 웹후크가 발생한 원인이 되는 이벤트를 발생시킨 사용자에 대한 정보입니다.

예를 들어 페이로드는 다음 코드와 같을 수 있습니다.

"pages": [
    {
        "page_name": "Home",
        "title": "Home",
        "summary": null,
        "action": "edited",
        "sha": "562362bc141b9e2db1fb971e1ecb4fd0b7457f68",
        "html_url": "https://github.com/testrepo/Hello-World/wiki/Home"
    }
],
"repository": {
    ...
    "name": "testrepo",
    ...
    "owner": {
        ...
    },
    "html_url": "https://github.com/...",
    ...
},
"sender": {
    "login": "..."
    ...
}

이 정보는 HTTP POST 요청의 본문으로 전달됩니다. 이 정보를 올바르게 구문 분석하고 처리하려면 함수 논리를 업데이트해야 합니다.

Gollum 이벤트의 구문 분석 정보

특정 이벤트가 발생하면 웹후크가 실행된다는 점을 기억하세요. 그런 다음 웹후크는 함수의 URL을 사용하여 Azure Functions 코드가 수신 대기 중인 URL로 요청을 보냅니다. 페이로드는 Azure Function에 전달됩니다. 함수는 요청 본문을 구문 분석하여 페이로드에서 필드를 추출하고 적절한 작업을 수행할 수 있습니다.

다음 예제에서는 페이로드에서 리포지토리 이름을 검색합니다. 이벤트 유형은 x-github-event 요청 헤더에서 사용할 수 있습니다. 이 데이터는 다음과 같은 함수 응답에 출력됩니다.

if (req.body.repository.name){
    context.res = {
        body: "Repository is: " + req.body.repository.name + ", Event Type is: " + req.headers['x-github-event']
    };
}

다음 연습에서는 들어오는 Gollum 이벤트를 처리할 수 있도록 함수 코드를 업데이트합니다.