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 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 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.