Documentation
¶
Overview ¶
Package graphql provides GitHub GraphQL API utilities.
Index ¶
- func NewClient(ctx context.Context, token string) *githubv4.Client
- func NewEnterpriseClient(ctx context.Context, token, baseURL string) *githubv4.Client
- func NewTokenClient(ctx context.Context, token string) *http.Client
- type CommitStats
- type ContributionStats
- type MonthlyCommitStats
- type MonthlyContribution
- type RepoCommitStats
- type Visibility
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewEnterpriseClient ¶
NewEnterpriseClient creates a GitHub GraphQL client for GitHub Enterprise.
Types ¶
type CommitStats ¶
type CommitStats struct {
Username string
From time.Time
To time.Time
Visibility Visibility
TotalCommits int
Additions int
Deletions int
ByMonth []MonthlyCommitStats
ByRepo []RepoCommitStats
}
CommitStats represents detailed commit statistics including additions and deletions.
func GetCommitStats ¶
func GetCommitStats(ctx context.Context, client *githubv4.Client, username string, from, to time.Time, visibility Visibility) (*CommitStats, error)
GetCommitStats retrieves detailed commit statistics including additions and deletions. This method iterates through all repositories the user has contributed to and aggregates commit data. Use the visibility parameter to filter by public/private repositories.
type ContributionStats ¶
type ContributionStats struct {
Username string
From time.Time
To time.Time
TotalCommitContributions int
TotalIssueContributions int
TotalPRContributions int
TotalPRReviewContributions int
TotalRepositoryContributions int
RestrictedContributions int // All private contributions (not just commits)
ContributionsByMonth []MonthlyContribution
}
ContributionStats represents aggregated contribution statistics from the contributionsCollection query. This provides quick stats similar to what's shown on a user's GitHub profile page.
Note: RestrictedContributions includes all private contribution types (commits, issues, PRs, reviews), not just commits.
func GetContributionStats ¶
func GetContributionStats(ctx context.Context, client *githubv4.Client, username string, from, to time.Time) (*ContributionStats, error)
GetContributionStats retrieves contribution statistics for a user within a date range. The GitHub API limits queries to a maximum of 1 year at a time.
func GetContributionStatsMultiYear ¶
func GetContributionStatsMultiYear(ctx context.Context, client *githubv4.Client, username string, from, to time.Time) (*ContributionStats, error)
GetContributionStatsMultiYear retrieves contribution statistics spanning multiple years. It automatically handles the 1-year limit by making multiple queries.
type MonthlyCommitStats ¶
type MonthlyCommitStats struct {
Year int
Month time.Month
Commits int
Additions int
Deletions int
}
MonthlyCommitStats represents commit statistics for a specific month.
func (MonthlyCommitStats) YearMonth ¶
func (mcs MonthlyCommitStats) YearMonth() string
YearMonth returns a formatted string like "2024-01".
type MonthlyContribution ¶
MonthlyContribution represents contribution counts for a specific month.
func (MonthlyContribution) YearMonth ¶
func (mc MonthlyContribution) YearMonth() string
YearMonth returns a formatted string like "2024-01".
type RepoCommitStats ¶
type RepoCommitStats struct {
Owner string
Name string
IsPrivate bool
Commits int
Additions int
Deletions int
}
RepoCommitStats represents commit statistics for a specific repository.
type Visibility ¶
type Visibility int
Visibility represents repository visibility for filtering.
const ( // VisibilityAll includes both public and private repositories. VisibilityAll Visibility = iota // VisibilityPublic includes only public repositories. VisibilityPublic // VisibilityPrivate includes only private repositories. VisibilityPrivate )