Skip to main content

REST API를 사용하여 사용량 보고 자동화

REST API를 사용하여 유료 기능 사용에 대한 보고를 자동화하는 방법을 알아보세요.

누가 이 기능을 사용할 수 있나요?

Enterprise owners and billing managers

향상된 청구 플랫폼은 다음에서 사용할 수 있습니다.

  • 2024년 6월 2일 이후에 만들어진 모든 엔터프라이즈 계정 및 해당 조직
  • 공개 미리 보기 프로그램에 참여한 엔터프라이즈

2024년 9월부터 GitHub은(는) 나머지 엔터프라이즈를 새 청구 플랫폼으로 마이그레이션할 예정입니다. 엔터프라이즈는 마이그레이션 30일 전에 알림을 받게 됩니다. GitHub 블로그를 참조하세요.

GitHub에서 데이터를 자동으로 풀(pull)해서 REST API를 사용하여 비용과 사용량을 모니터링하는 데 사용하는 비즈니스 시스템을 채울 수 있습니다. GitHub REST API를 이전에 사용하지 않은 경우 다음 문서는 좋은 시작점입니다. REST API 사용을(를) 참조하세요.

청구 플랫폼 /usage 엔드포인트를 사용하여 엔터프라이즈에 대한 요금제 사용량 세부 정보 검색

향상된 청구 플랫폼은 모든 요금제 제품의 사용을 보고하는 데 사용할 수 있는 단일 REST API /usage 엔드포인트를 제공합니다. 이 엔드포인트에서 제공하는 사용량 데이터는 엔터프라이즈 소유자나 엔터프라이즈 청구 관리자만 사용할 수 있으므로 GitHub를 사용하여 인증해야 합니다.

  • GitHub CLI를 사용하는 경우 gh auth login 명령을 사용하여 인증합니다.
  • 그러지 않으면 personal access token (classic)을 만들어야 합니다. personal access token (classic) 만들기를 참조하세요.

/usage 엔드포인트를 호출할 때 데이터를 원하는 엔터프라이즈를 지정해야 하며, 기본적으로 비용 센터에 속하지 않는 현재 연도의 사용량이 보고됩니다. 쿼리 매개 변수를 사용하여 엔드포인트에서 반환되는 데이터의 범위를 줄일 수 있습니다.

  • year, month, day, hour 매개 변수 중 하나 이상을 설정하여 특정 기간을 정의합니다.
  • cost_center_id 쿼리 매개 변수를 사용하여 식별자가 보고할 비용 센터를 정의합니다.

자세한 내용과 예제 호출 및 응답은 엔터프라이즈를 위한 청구 사용 현황 보고 가져오기를 참조하세요.

이전 청구 플랫폼에 사용된 엔드포인트에서 마이그레이션

이전 청구 플랫폼은 사용량 현황 데이터에 대한 세 가지 엔드포인트를 제공했습니다.

향상된 청구 플랫폼으로 전환할 때 이러한 엔드포인트는 더 이상 정확한 사용량 정보를 반환하지 않습니다. 새 엔드포인트 GET /enterprises/{enterprise}/settings/billing/usage를 사용하여 이러한 엔드포인트를 사용하는 모든 자동화를 업그레이드해야 합니다. 아래 표에서는 청구 플랫폼을 사용하여 해당 정보를 검색하는 방법에 대한 자세한 설명을 제공합니다.

호출 정의의 변경 내용

fine-grained personal access token를 사용하여 이전 엔드포인트를 인증한 경우 새 엔드포인트로 인증하려면 personal access token (classic)을 만들어야 합니다.

또한 새 쿼리 매개 변수를 사용하여 기간이나 비용 센터를 지정할 수 있습니다.

새 응답 데이터에서 GitHub Actions 청구 데이터 가져오기

이전 응답의 예

{"total_minutes_used": 305, "total_paid_minutes_used": 0, "included_minutes": 3000, "minutes_used_breakdown": { "UBUNTU": 205, "MACOS": 10, "WINDOWS": 90 }  }

새 응답의 예

{ "usageItems": [ { "date": "2023-08-01", "product": "Actions", "sku": "Actions Linux", "quantity": 100, "unitType": "minutes", "pricePerUnit": 0.008, "grossAmount": 0.8, "discountAmount": 0, "netAmount": 0.8, "organizationName": "GitHub", "repositoryName": "github/example"} ] }

새 응답 데이터에서 동일한 값을 가져오려면 다음을 수행합니다.

이전 속성새 API 응답에서 계산
total_minutes_used
  • "product": "Actions""unitType": "minutes"에 따라 결과 필터링
  • 합계 quantity
total_paid_minutes_used이제 netAmount를 통해 $ 금액으로 표시됩니다.
  • "product": "Actions""unitType": "minutes"에 따라 결과 필터링
  • 합계 netAmount
included_minutes이제 discountAmount를 통해 $ 금액으로 표시됩니다.
  • "product": "Actions""unitType": "minutes"에 따라 결과 필터링
  • 합계 discountAmount
minutes_used_breakdown
  • "product": "Actions""unitType": "minutes"에 따라 결과 필터링
  • sku별로 그룹화된 합계 quantity

새 응답 데이터에서 GitHub Packages 청구 데이터 가져오기

이전 응답의 예

{ "total_gigabytes_bandwidth_used": 50, "total_paid_gigabytes_bandwidth_used": 40, "included_gigabytes_bandwidth": 10 }

새 응답의 예

{ "usageItems": [ { "date": "2023-08-01", "product": "Packages", "sku": "Packages data transfer", "quantity": 100, "unitType": "gigabytes", "pricePerUnit": 0.008, "grossAmount": 0.8, "discountAmount": 0, "netAmount": 0.8, "organizationName": "GitHub", "repositoryName": "github/example" } ] }
이전 속성새 API 응답에서 계산
total_gigabytes_bandwidth_used
  • "product": "Packages""unitType": "gigabytes"에 따라 결과 필터링
  • 합계 quantity
total_paid_gigabytes_bandwidth_used이제 netAmount를 통해 $ 금액으로 표시됩니다.
  • "product": "Packages""unitType": "gigabytes"에 따라 결과 필터링
  • 합계 netAmount
included_gigabytes_bandwidth이제 discountAmount를 통해 $ 금액으로 표시됩니다.
  • "product": "Packages""unitType": "gigabytes"에 따라 결과 필터링
  • 합계 discountAmount

새 응답 데이터에서 공유 스토리지 청구 가져오기

이전 응답의 예

{ "days_left_in_billing_cycle": 20, "estimated_paid_storage_for_month": 15, "estimated_storage_for_month": 40 }

새 응답의 예

{ "usageItems": [ { "date": "2023-08-01", "product": "Packages", "sku": "Packages storage", "quantity": 100, "unitType": "GigabyteHours", "pricePerUnit": 0.008, "grossAmount": 0.8, "discountAmount": 0, "netAmount": 0.8, "organizationName": "GitHub", "repositoryName": "github/example" } ] }
이전 속성새 API 응답에서 계산
days_left_in_billing_cycle사용할 수 없음. 이 정보는 현재 월의 일 수에서 해당 월의 현재 일을 빼서 유추할 수 있습니다.
estimated_paid_storage_for_month이제 netAmount를 통해 $ 금액으로 표시됩니다.

필수 구성 요소: monthyear 쿼리 매개 변수를 전달합니다.

Actions 스토리지의 경우
  • "product": "Actions""unitType": "GigabyteHours"에 따라 결과 필터링
  • 합계 netAmount
Packages 스토리지의 경우
  • "product": "Packages""unitType": "GigabyteHours"에 따라 결과 필터링
  • 합계 netAmount
estimated_storage_for_month필수 구성 요소: monthyear 쿼리 매개 변수를 전달합니다.

Actions 스토리지의 경우
  • "product": "Actions""unitType": "GigabyteHours"에 따라 결과 필터링
  • 합계 quantity
Packages 스토리지의 경우
  • "product": "Packages""unitType": "GigabyteHours"에 따라 결과 필터링
  • 합계 quantity