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
          [AUTOTITLE](/rest/billing/enhanced-billing?apiVersion=2022-11-28#get-billing-usage-report-for-a-user) |

| 조직 | 할당량 및 청구된 사용량에 대한 세부 정보가 포함된 프리미엄 요청 사용량 | 조직 소유자 및 청구 관리자 | /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 호출에 전달하세요. 자세한 내용은 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"`에 따라 결과 필터링</li><li>합계 `quantity`</li></ul>|

| 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"`에 따라 결과 필터링 </li><li>합계 `quantity`</li></ul> |

| 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 쿼리 매개 변수를 전달합니다.

          <i> Actions 스토리지의 경우 </i> <ul><li> 
          `"product": "Actions"` 및 `"unitType": "GigabyteHours"`에 따라 결과 필터링</li><li> 합계 `netAmount`</li></ul>  
          <i> Packages 스토리지의 경우 </i> <ul><li> 
          `"product": "Packages"` 및 `"unitType": "GigabyteHours"`에 따라 결과 필터링</li><li> 합계 `netAmount`</li></ul>|

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


Actions 스토리지의 경우

  • "product": "Actions""unitType": "GigabyteHours"에 따라 결과 필터링
  • 합계 quantity

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