Versions in this module Expand all Collapse all v0 v0.4.0 Oct 8, 2026 v0.3.0 Oct 7, 2026 Changes in this version + const ActorOperator + const ActorVirtualSession + const AssignmentHeader + const LogFile + const OutcomeFailed + const OutcomeOK + const RoutePrefix + const ToolChecksListForRef + const ToolGitGetRef + const ToolIssuesAddBlockedByDependency + const ToolIssuesCreate + const ToolIssuesCreateComment + const ToolIssuesGet + const ToolIssuesListComments + const ToolIssuesListForRepo + const ToolIssuesUpdate + const ToolMarkPullRequestReady + const ToolPullsCreate + const ToolPullsGet + const ToolPullsList + const ToolPullsMerge + const ToolPullsUpdate + const ToolReposGetCommit + const ToolReposListWebhookDeliveries + const ToolReposListWebhooks + var DefaultMergePolicy = MergePolicy + var ErrChecksRequired = errors.New("github tools: the merge policy requires passing checks") + var ErrGoldenMetrics = errors.New("github tools: the golden metrics refuse the merge") + var ErrHeldBranch = errors.New("this branch is held") + var ErrInvalidOption = errors.New("github tools: invalid option") + var ErrNoClient = errors.New("github tools: a GitHub client is required") + var ErrNoStateDirectory = errors.New("github tools: a state directory is required") + type ActorKind string + type CallCollector struct + func NewCallCollector(state string) *CallCollector + func (collector *CallCollector) Collect(output chan<- prometheus.Metric) + func (collector *CallCollector) Describe(output chan<- *prometheus.Desc) + type CallCounts struct + Calls map[CallKey]int + RateLimit int + RateRemaining int + func CountCalls(stateDirectory string) (CallCounts, error) + type CallKey struct + Actor ActorKind + Operation string + Outcome string + type CallRecord struct + Actor ActorKind + Assignment string + Error string + Number int + Operation string + Outcome string + Policy *MergePolicy + RateLimit int + RateRemaining int + Repository string + Time time.Time + type ChecksListForRefInput struct + Owner string + Params *github.CheckslistForRefParams + Ref string + Repo string + type GitGetRefInput struct + Owner string + Ref string + Repo string + type GitHubTools struct + func NewGitHubTools(options ...GitHubToolsOption) (*GitHubTools, error) + func (tools *GitHubTools) Invoke(ctx context.Context, name string, input []byte) ([]byte, error) + func (tools *GitHubTools) MergePolicy() MergePolicy + func (tools *GitHubTools) Names() []string + func (tools *GitHubTools) Register(router gin.IRouter) + func (tools *GitHubTools) Tools() []csf.Option + type GitHubToolsOption func(tools *GitHubTools) error + func WithClient(client *github.GitHubClient) GitHubToolsOption + func WithClock(source clock.IClock) GitHubToolsOption + func WithGoldenMetrics(measurer GoldenMeasurer) GitHubToolsOption + func WithLogger(logger *slog.Logger) GitHubToolsOption + func WithMergeGuard(guard MergeGuard) GitHubToolsOption + func WithMergePolicy(policy MergePolicy) GitHubToolsOption + func WithStateDirectory(directory string) GitHubToolsOption + type GoldenMeasurer func(ctx context.Context, owner, repo, revision string) (prod.Reading, error) + type IssuesAddBlockedByDependencyInput struct + Body github.IssuesaddBlockedByDependencyJSONRequestBody + IssueNumber int + Owner string + Repo string + type IssuesCreateCommentInput struct + Body github.IssuescreateCommentJSONRequestBody + IssueNumber int + Owner string + Repo string + type IssuesCreateInput struct + Body github.IssuescreateJSONRequestBody + Owner string + Repo string + type IssuesGetInput struct + IssueNumber int + Owner string + Repo string + type IssuesListCommentsInput struct + IssueNumber int + Owner string + Params *github.IssueslistCommentsParams + Repo string + type IssuesListForRepoInput struct + Owner string + Params *github.IssueslistForRepoParams + Repo string + type IssuesUpdateInput struct + Body github.IssuesupdateJSONRequestBody + IssueNumber int + Owner string + Repo string + type ListOutput struct + Items json.RawMessage + type MarkPullRequestReadyInput struct + Owner string + PullNumber int + Repo string + type MergeGuard func(ctx context.Context, branch string) (reason string, held bool, err error) + type MergePolicy struct + Method github.PullsmergeJSONBodyMergeMethod + RequireChecks bool + RuledAt string + Ruling string + type PullsCreateInput struct + Body github.PullscreateJSONRequestBody + Owner string + Repo string + type PullsGetInput struct + Owner string + PullNumber int + Repo string + type PullsListInput struct + Owner string + Params *github.PullslistParams + Repo string + type PullsMergeInput struct + Body github.PullsmergeJSONRequestBody + Owner string + PullNumber int + Repo string + type PullsUpdateInput struct + Body github.PullsupdateJSONRequestBody + Owner string + PullNumber int + Repo string + type ReposGetCommitInput struct + Owner string + Params *github.ReposgetCommitParams + Ref string + Repo string + type ReposListWebhookDeliveriesInput struct + HookId int + Owner string + Params *github.ReposlistWebhookDeliveriesParams + Repo string + type ReposListWebhooksInput struct + Owner string + Params *github.ReposlistWebhooksParams + Repo string