Documentation
¶
Overview ¶
Package github provides GitHub integration for querying PR status.
Package github provides GitHub integration.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FetchAllPRsForRepo ¶
FetchAllPRsForRepo fetches all open and recently merged PRs for a repo in a single API call. Returns a map of branch name -> PRInfo. This is much more efficient than fetching per-branch.
func IsNewerVersion ¶
IsNewerVersion returns true if latest is a newer version than current. Both should be semver strings, optionally prefixed with "v".
func MarshalPRInfo ¶
MarshalPRInfo converts a PRInfo to JSON string for database storage.
Types ¶
type AccountType ¶ added in v0.2.40
type AccountType string
AccountType classifies the identity that `gh` is authenticated as.
const ( // AccountTypeUnknown means we could not determine the identity. AccountTypeUnknown AccountType = "unknown" // AccountTypePersonal is a regular GitHub user account (e.g. via `gh auth login`). // Personal accounts share a single 5,000 pt/hr GraphQL bucket PER-USER across // every machine authenticated as that user — the root cause of bucket exhaustion. AccountTypePersonal AccountType = "personal" // AccountTypeApp is a GitHub App / bot identity (login ends in "[bot]", // API type "Bot"). Each App installation token gets its OWN GraphQL bucket, // so it does not contend with other servers. AccountTypeApp AccountType = "app" )
type AuthStatus ¶ added in v0.2.40
type AuthStatus struct {
GHInstalled bool
LoggedIn bool
TokenValid bool // false when the token is expired/revoked (401 Bad credentials)
Account string
AccountType AccountType
// GraphQL rate-limit headroom. Remaining/Limit are -1 when unknown.
GraphQLRemaining int
GraphQLLimit int
GraphQLResetAt time.Time
// Err holds an unexpected error encountered while probing (not auth state).
Err error
}
AuthStatus is the result of inspecting the local `gh` authentication.
func CheckAuth ¶ added in v0.2.40
func CheckAuth(ctx context.Context) AuthStatus
CheckAuth inspects the local `gh` CLI authentication and rate-limit headroom. It never returns an error for ordinary auth states (not installed, logged out, expired token); those are reported via the returned AuthStatus fields.
func (AuthStatus) Findings ¶ added in v0.2.40
func (s AuthStatus) Findings() []Finding
Findings translates the auth status into ordered diagnostic findings. The most severe issues come first. This is the data `ty doctor` renders.
func (AuthStatus) HasProblems ¶ added in v0.2.40
func (s AuthStatus) HasProblems() bool
HasProblems reports whether any finding is a warning or error.
type CheckState ¶
type CheckState string
CheckState represents the state of CI checks.
const ( CheckStatePending CheckState = "PENDING" CheckStatePassing CheckState = "SUCCESS" CheckStateFailing CheckState = "FAILURE" CheckStateNone CheckState = "" )
type LatestRelease ¶
LatestRelease holds information about the latest GitHub release.
func CLIVersionCheck ¶ added in v0.2.33
func CLIVersionCheck(currentVersion string) *LatestRelease
CLIVersionCheck checks if a newer version is available, using a 24h on-disk cache. Returns the latest release if an upgrade is available, nil otherwise. Skips the check entirely for "dev" builds.
func FetchLatestRelease ¶
func FetchLatestRelease() *LatestRelease
FetchLatestRelease queries the GitHub API for the latest release. Returns nil if the request fails or no release exists.
type PRCache ¶
type PRCache struct {
// contains filtered or unexported fields
}
PRCache caches PR information to avoid repeated API calls.
func (*PRCache) GetCachedPR ¶
GetCachedPR returns cached PR info without fetching. Returns nil if not cached or expired.
func (*PRCache) GetPRForBranch ¶
GetPRForBranch queries GitHub for a PR associated with the given branch. Uses caching to avoid repeated API calls. Returns nil if no PR exists or gh CLI is not available.
func (*PRCache) InvalidateCache ¶
InvalidateCache clears the cache for a specific branch.
type PRInfo ¶
type PRInfo struct {
Number int `json:"number"`
URL string `json:"url"`
State PRState `json:"state"`
IsDraft bool `json:"isDraft"`
Title string `json:"title"`
CheckState CheckState `json:"checkState"`
Mergeable string `json:"mergeable"` // "MERGEABLE", "CONFLICTING", "UNKNOWN"
UpdatedAt time.Time `json:"updatedAt"`
Additions int `json:"additions"` // Lines added
Deletions int `json:"deletions"` // Lines deleted
}
PRInfo contains information about a pull request.
func UnmarshalPRInfo ¶
UnmarshalPRInfo converts a JSON string from database back to PRInfo.
func (*PRInfo) StatusDescription ¶
StatusDescription returns a human-readable description.
func (*PRInfo) StatusIcon ¶
StatusIcon returns a unicode icon representing the PR state.