Skip to main content

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

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

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

Enterprise owners, organization owners, and billing managers

이제 모든 사용자가 새 청구 플랫폼을 사용할 수 있습니다.

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

엔드포인트 개요

계정 유형 및 원하는 정보 수준에 따라 다른 엔드포인트를 사용하여 데이터를 수집해야 합니다.

어카운트보고서Access엔드포인트추가 정보
Users모든 유료 제품의 사용량 현황 데이터계정 소유자/users/{username}/settings/billing/usage향상된 청구 플랫폼
조직할당량 및 청구된 사용량에 대한 세부 정보가 포함된 프리미엄 요청 사용량조직 소유자 및 청구 관리자/organizations/{org}/settings/billing/premium_request/usage향상된 청구 플랫폼
조직모든 유료 제품의 사용량 현황 데이터조직 소유자 및 청구 관리자/organizations/{org}/settings/billing/usage향상된 청구 플랫폼
엔터프라이즈할당량 및 청구된 사용량에 대한 세부 정보가 포함된 프리미엄 요청 사용량엔터프라이즈 소유자 및 청구 관리자/enterprises/{enterprise}/settings/billing/premium_request/usage엔터프라이즈 청구를 위한 REST API 엔드포인트
엔터프라이즈모든 유료 제품의 사용량 현황 데이터엔터프라이즈 소유자 및 청구 관리자/enterprises/{enterprise}/settings/billing/usage엔터프라이즈 청구를 위한 REST API 엔드포인트

프리미엄 요청 사용량 확인하기

  1. 다음 방법 중 하나를 사용하여 GitHub로 인증합니다.

    • GitHub CLI:gh auth login 명령을 사용하여 인증을 수행하세요.GitHub CLI 빠른 시작을 참조하세요.
    • personal access token (classic)을 만들고, 생성된 토큰을 API 호출에 전달하세요. 자세한 내용은 personal access token (classic) 만들기를 참조하세요.
  2. 필요한premium_request/usage 엔드포인트를 호출하여 데이터를 원하는 엔터프라이즈, 조직 또는 사용자를 지정합니다.

모든 유료 제품에 대한 사용량 현황 데이터 가져오기

  1. 다음 방법 중 하나를 사용하여 GitHub로 인증합니다.

    • GitHub CLI:gh auth login 명령을 사용하여 인증을 수행하세요. 자세한 내용은GitHub CLI 빠른 시작을 참조하세요.
    • personal access token (classic)를 생성하고 API 호출에 토큰을 전달합니다. Creating a personal access token (classic)를 참조하세요.
  2. 필요한usage 엔드포인트를 호출하여 데이터를 원하는 엔터프라이즈, 조직 또는 사용자를 지정합니다.

  3. 기본적으로 현재 연도의 모든 제품에 대한 데이터가 보고됩니다. 기업의 경우 비용 센터와 연결되지 않은 데이터만 보고됩니다.

    쿼리 매개 변수를 사용하여 보다 구체적인 데이터를 요청할 수 있습니다.

    • 다음 매개 변수year``month``day``hour중 하나 이상을 설정하여 기간을 지정합니다.
    • 쿼리 매개 변수cost_center_id를 사용하여 식별자로 비용 센터를 지정합니다. 이 구문은 엔터프라이즈 엔드포인트에서만 사용할 수 있습니다.

자세한 정보 및 예제 호출 및 응답은 다음을 참조하세요.

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

요금제 청구로 전환한 후 이전 청구 플랫폼에서 데이터를 가져오는 데 사용한 엔드포인트는 더 이상 정확한 사용량 정보를 반환하지 않습니다.

  • 다음과 같은 형태의 모든 호출을 업그레이드합니다:/ACCOUNT-TYPE/NAME/settings/billing/PRODUCT
  • 해당하는/ACCOUNT-TYPE/NAME/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"에 따라 결과 필터링
  • quantity별로 그룹화된 합계sku

새 응답 데이터로부터 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