Docs Menu
Docs Home
/ /
Atlas App Services
/ /

GitHub 서비스 [사용 중단됨]

이 페이지의 내용

  • 개요
  • 구성 매개변수
  • 서비스 조치
  • 수신 Webhooks
  • 구성
  • 요청 페이로드
  • 웹훅 함수 예시
  • GitHub 구성
  • GitHub 리포지토리에 Webhook 추가

중요

타사 서비스 & 푸시 알림 사용 중단

App Services의 타사 서비스 및 푸시 알림은 함수에서 외부 종속성을 사용하는 HTTP 엔드포인트를 만들기 위해 더 이상 사용되지 않습니다.

웹훅은 동작에 대한 변경 없이 HTTPS 엔드포인트로 이름이 변경되었습니다. 기존 웹훅을 마이그레이션해야 합니다.

기존 서비스는,9월까지 30 계속2025 작동합니다.

타사 서비스 및 푸시 알림은 이제 더 이상 사용되지 않으므로 App Services UI에서 기본적으로 제거되었습니다. 기존 타사 서비스 또는 푸시 알림을 관리해야 하는 경우 다음을 수행하여 구성을 UI에 다시 추가할 수 있습니다.

  • 왼쪽 탐색의 Manage 섹션에서 App Settings를 클릭합니다.

  • Temporarily Re-Enable 3rd Party Services 옆의 토글 스위치를 활성화한 다음 변경 사항을 저장합니다.

GitHub는 Git 리포지토리를 호스팅하고 검토할 수 있는 웹 기반 개발 플랫폼입니다.

Atlas App Services Github 서비스를 사용하면 애플리케이션이 Github 리포지토리의 이벤트(예: 새 pull 요청 또는 문제)에 React 할 수 있습니다.

GitHub 서비스 인터페이스를 만들 때 다음 매개변수에 대한 값을 제공해야 합니다.

<Service Name>/config.json
{
"name": "<Service Name>",
"type": "github",
"config": {}
}
Parameter
설명
Service Name
config.name
이 GitHub 서비스 인터페이스의 이름입니다. 이는 애플리케이션의 다른 모든 서비스 인터페이스와 구별되어야 합니다.

Github 서비스는 어떤 서비스 조치도 제공하지 않습니다. 수신 웹훅 을 사용하여 Github 의 이벤트에 응답합니다.

참고

GitHub 웹훅을 엔드포인트로 변환

Github 서비스 웹훅은 사용자 지정 HTTPS endpoints를 위해 더 이상 사용되지 않습니다. 기존 Github 웹훅을 엔드포인트로 마이그레이션하는 방법을 알아보려면 웹훅 을 HTTPS endpoints로 참조하세요.

Github 는 리포지토리에서 특정 이벤트가 발생할 때마다 하나 이상의 웹훅을 호출할 수 있습니다. 이벤트 유형에 대한 자세한 참조 정보를 포함하여 의 웹훅 기능에 대해 자세히 알아보려면 Github Github Github 웹훅 을 참조하세요. 문서화.

Github 수신 웹훅을 구성할 때 다음 형식의 구성 파일 을 제공해야 합니다.

{
"name": <string>,
"respond_result": <boolean>,
"run_as_user_id": <string>,
"run_as_user_id_script_source": <string>,
"options": {
"secret": <string>
},
}
구성 값
설명
Webhook Name
name
필수입니다. 웹훅의 이름입니다. GitHub 서비스 인터페이스에서 수신되는 각 웹훅은 고유한 이름을 가져야 합니다.
Respond With Result
respond_result
필수입니다. true 인 경우 App Services는 웹훅 함수의 반환 값을 GitHub 응답 본문으로 보냅니다.
Run Webhook As
run_as_user_id
run_as_user_id_script_source

선택 사항. 웹훅이 호출될 때 웹훅 함수를 실행하는 App Services 사용자 의 ID입니다.

실행 사용자를 구성하는 방법에는 세 가지가 있습니다.

  • System실행 사용자는 시스템 사용자 로, MongoDB CRUD 및 애그리게이션 API에 대한 전체 액세스 을 가지며 모든 규칙 및 스키마 유효성 검사 를 우회합니다.

  • User Id: 함수를 실행할 특정 애플리케이션 사용자를 선택합니다.

  • Script: 실행 사용자의 id 를 반환하는 함수 를 정의합니다.

run_as_user_id 에 사용자 ID를 직접 지정하거나 웹훅 페이로드를 허용하고 run_as_user_id_script_source 에 사용자 ID를 반환하는 문자열화된 Atlas Function 를 제공할 수 있습니다. 특정 사용자 ID 또는 사용자 ID로 확인되는 함수를 지정하지 않으면 App Services 는 MongoDB CRUD 및 애그리게이션 API에 대한 전체 액세스 이 있는 시스템 사용자 로 웹훅 함수를 실행하고 모든 규칙 및 스키마 유효성 검사 를 우회합니다.

Request Validation
config.secret
GitHub가 요청이 유효하다는 것을 증명하기 위해 수신 요청에 포함하는 GitHub Secret 문자열입니다. 웹훅 URL을 제공할 때 GitHub 리포지토리 설정에서 이 값을 지정해야 합니다.

App Services는 수신 웹훅 함수에 payload 문서를 첫 번째 인수로 자동으로 전달합니다. GitHub 서비스 수신 웹훅에서 payload 객체는 GitHub가 웹훅을 호출하도록 한 GitHub 이벤트를 나타냅니다.

참고

Github payload 문서의 정확한 내용은 문서가 나타내는 이벤트 유형에 따라 달라집니다. 특정 이벤트 유형의 페이로드 문서에 대한 자세한 설명은 Github 의 이벤트 유형 & 페이로드 를 참조하세요. 문서화.

다음 웹훅 함수는 들어오는 데이터를 MongoDB collection에 삽입합니다.

exports = function(payload) {
const mongodb = context.services.get("mongodb-atlas");
const requestlogs = mongodb.database("test").collection("requestlogs");
return requestlogs
.insertOne({
"commits": payload.commits,
"pushed_by": payload.pusher,
"repo": payload.repository.html_url
})
.then(({ insertedId }) => `Inserted document with _id: ${insertedId}`)
}

payload 문서는 GitHub 서비스에 의해 전달되며 요청의 정보를 포함합니다.

  1. Github 로그인합니다.

  2. 구독하려는 리포지토리로 이동합니다.

  3. 리포지토리의 Settings 탭을 클릭하고 왼쪽 메뉴에서 Webhooks 을 선택합니다.

  4. Add Webhook를 클릭합니다.

  5. 웹훅 URL을 Payload URL 필드에 추가합니다.

  6. 콘텐츠 유형을 application/json 으로 설정합니다.

  7. GitHub Secret 을 입력합니다. 이 값은 웹훅 구성에서 제공한 값과 일치해야 합니다.

  8. 구독하려는 이벤트 유형을 선택합니다.

  9. Add webhook를 클릭합니다.

돌아가기

AWS