Documentation
¶
Index ¶
- Constants
- type RateLimitMetrics
- func (m *RateLimitMetrics) APICallsCountForTest(org, appID, installationID, method string) float64
- func (m *RateLimitMetrics) ForgetRepository(org, repo string)
- func (m *RateLimitMetrics) PicksCountForTest(org, appID, installationID, reason string) float64
- func (m *RateLimitMetrics) RecordAPICall(org, appID, installationID, method string)
- func (m *RateLimitMetrics) RecordAppUnhealthy(org, appID, installationID string)
- func (m *RateLimitMetrics) RecordPickerPick(org, appID, installationID, reason string)
- func (m *RateLimitMetrics) RecordRateLimitInfo(resp *github.Response, org, appID, installationID string)
- func (m *RateLimitMetrics) RepositoryUnreconcilableForTest() *prometheus.GaugeVec
- func (m *RateLimitMetrics) SetRepositoryUnreconcilable(org, repo, dimension string, unreconcilable bool)
Constants ¶
const ( DimensionCollaborators = "collaborators" DimensionBranchProtection = "branch_protection" DimensionArchived = "archived" DimensionSettings = "settings" DimensionRulesetsForbidden = "rulesets_forbidden" DimensionRulesetParameters = "ruleset_parameters" DimensionRulesetSpec = "ruleset_spec" )
Dimensions of declared repository state that stays unapplied: state GitHub refuses to apply, and rulesets whose spec lists a ref pattern or bypass actor twice.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type RateLimitMetrics ¶
type RateLimitMetrics struct {
// contains filtered or unexported fields
}
RateLimitMetrics holds only the essential Prometheus metrics for GitHub rate limiting
func NewForTest ¶
func NewForTest() *RateLimitMetrics
NewForTest builds a RateLimitMetrics instance without registering it with the default Prometheus registry. Exported for cross-package tests that need to drive the metrics through real wrapper code.
func NewRateLimitMetrics ¶
func NewRateLimitMetrics(_ ctrl.Manager) *RateLimitMetrics
NewRateLimitMetrics creates and registers only essential Prometheus metrics for GitHub rate limiting
func (*RateLimitMetrics) APICallsCountForTest ¶
func (m *RateLimitMetrics) APICallsCountForTest(org, appID, installationID, method string) float64
APICallsCountForTest returns the current value of github_api_calls_total for the given labels. Exposed for cross-package test verification of the wrapper → telemetry wiring; production code should not need it.
func (*RateLimitMetrics) ForgetRepository ¶
func (m *RateLimitMetrics) ForgetRepository(org, repo string)
ForgetRepository deletes every github_repository_unreconcilable series of the repository.
func (*RateLimitMetrics) PicksCountForTest ¶
func (m *RateLimitMetrics) PicksCountForTest(org, appID, installationID, reason string) float64
PicksCountForTest returns the current value of github_app_picker_picks_total for the given labels. Same testing-only caveat as APICallsCountForTest.
func (*RateLimitMetrics) RecordAPICall ¶
func (m *RateLimitMetrics) RecordAPICall(org, appID, installationID, method string)
RecordAPICall increments the github_api_calls_total counter for the given call. Counts every attempt, regardless of outcome.
func (*RateLimitMetrics) RecordAppUnhealthy ¶
func (m *RateLimitMetrics) RecordAppUnhealthy(org, appID, installationID string)
RecordAppUnhealthy increments the github_app_unhealthy_total counter for the given (organization, app, installation). Call when a GitHub API call returns no HTTP response but an error.
func (*RateLimitMetrics) RecordPickerPick ¶
func (m *RateLimitMetrics) RecordPickerPick(org, appID, installationID, reason string)
RecordPickerPick increments the github_app_picker_picks_total counter for the given credential and pick reason.
func (*RateLimitMetrics) RecordRateLimitInfo ¶
func (m *RateLimitMetrics) RecordRateLimitInfo(resp *github.Response, org, appID, installationID string)
RecordRateLimitInfo records the rate-limit information from a GitHub API response. The org is the GitHub organization the call targeted; appID is the GitHub App ID; installationID is the GitHub App Installation ID. The (appID, installationID) pair uniquely identifies a credential.
func (*RateLimitMetrics) RepositoryUnreconcilableForTest ¶
func (m *RateLimitMetrics) RepositoryUnreconcilableForTest() *prometheus.GaugeVec
RepositoryUnreconcilableForTest exposes the gauge vec to cross-package tests.
func (*RateLimitMetrics) SetRepositoryUnreconcilable ¶
func (m *RateLimitMetrics) SetRepositoryUnreconcilable(org, repo, dimension string, unreconcilable bool)
SetRepositoryUnreconcilable publishes 1 when GitHub won't apply the dimension's declared state, else 0.