api

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 30, 2025 License: Unlicense Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AggregatedMetrics

type AggregatedMetrics struct {
	Period                           string // YYYY-WW for week, YYYY-MM for month
	StartDate                        time.Time
	EndDate                          time.Time
	PRCount                          int
	AvgCommitCount                   float64
	AvgCommentCount                  float64
	AvgReviewCount                   float64
	AvgApprovalCount                 float64
	AvgAdditions                     float64
	AvgDeletions                     float64
	AvgChangedFiles                  float64
	AvgFirstCommitToCreateHours      float64
	AvgCreateToLastCommitHours       float64
	AvgCommitCountDuringPR           float64
	AvgFirstCommitToMergeHours       float64
	AvgLastCommitToMergeHours        float64
	AvgCreatedToFirstCommentHours    float64
	AvgTimeToApprovalHours           float64
	AvgTotalPRLifetimeHours          float64
	AvgMaxNoCommentPeriodHours       float64
	AvgMaxNoCommitPeriodHours        float64
	AvgMaxNoActivityPeriodHours      float64
	MedianCommitCount                float64
	MedianCommentCount               float64
	MedianReviewCount                float64
	MedianApprovalCount              float64
	MedianAdditions                  float64
	MedianDeletions                  float64
	MedianChangedFiles               float64
	MedianFirstCommitToCreateHours   float64
	MedianCreateToLastCommitHours    float64
	MedianCommitCountDuringPR        float64
	MedianFirstCommitToMergeHours    float64
	MedianLastCommitToMergeHours     float64
	MedianCreatedToFirstCommentHours float64
	MedianTimeToApprovalHours        float64
	MedianTotalPRLifetimeHours       float64
	MedianMaxNoCommentPeriodHours    float64
	MedianMaxNoCommitPeriodHours     float64
	MedianMaxNoActivityPeriodHours   float64
}

Contains statistical summaries of PR metrics over a time period

type Client

type Client struct {
	// contains filtered or unexported fields
}

Wraps GitHub API with authentication and enterprise server support

func NewClient

func NewClient(apiURL, token string, logger *utils.Logger) (*Client, error)

Configures GitHub API client with authentication and custom base URL support

func (*Client) GetPRComments

func (c *Client) GetPRComments(owner, repo string, number int) ([]*github.PullRequestComment, error)

Fetches all review comments for a PR using paginated requests

func (*Client) GetPRCommits

func (c *Client) GetPRCommits(owner, repo string, number int) ([]*github.RepositoryCommit, error)

Fetches all commits associated with a PR using paginated requests

func (*Client) GetPRDetails

func (c *Client) GetPRDetails(owner, repo string, number int) (*github.PullRequest, error)

Fetches additions, deletions, and changed files count for a specific PR

func (*Client) GetPRReviews

func (c *Client) GetPRReviews(owner, repo string, number int) ([]*github.PullRequestReview, error)

Fetches all code reviews for a PR using paginated requests

func (*Client) GetPullRequests

func (c *Client) GetPullRequests(owner, repo string, startDate, endDate time.Time) ([]*github.PullRequest, error)

Fetches all PRs created within date range using paginated API calls

type PRMetrics

type PRMetrics struct {
	Number                     int
	Title                      string
	Author                     string
	Milestone                  string
	CreatedAt                  time.Time
	MergedAt                   time.Time
	State                      string
	CommitCount                int
	FirstCommitAt              time.Time
	LastCommitAt               time.Time
	FirstCommitToCreateHours   float64
	CreateToLastCommitHours    float64
	CommitCountDuringPR        int
	FirstCommitToMergeHours    float64
	LastCommitToMergeHours     float64
	CommentCount               int
	FirstCommentAt             time.Time
	CreatedToFirstCommentHours float64
	ReviewCount                int
	Additions                  int
	Deletions                  int
	ChangedFiles               int
	ApprovalCount              int
	TimeToApprovalHours        float64
	TotalPRLifetimeHours       float64
	MaxNoCommentPeriodHours    float64
	MaxNoCommitPeriodHours     float64
	MaxNoActivityPeriodHours   float64
}

Contains comprehensive analytics data for a single pull request

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL