Documentation
¶
Index ¶
- Constants
- func AttributeFromContext(ctx context.Context, key string) interface{}
- func NewSecondaryRateLimitWaiterClient(base http.RoundTripper) *http.Client
- func Serve(b Bot)
- type Bot
- type BotOptions
- type CheckRunHandler
- type CheckSuiteHandler
- type EventHandlerFunc
- type EventType
- type GitHubClient
- func (c GitHubClient) AddComment(ctx context.Context, pr *github.PullRequest, botName, content string) error
- func (c GitHubClient) AddLabel(ctx context.Context, pr *github.PullRequest, label string) error
- func (c GitHubClient) Client() *github.Client
- func (c GitHubClient) CloneRepo(ctx context.Context, ref, destDir string) (*git.Repository, error)
- func (c GitHubClient) Close(ctx context.Context) error
- func (c GitHubClient) FetchWorkflowRunArtifact(ctx context.Context, wr *github.WorkflowRun, name string) (*zip.Reader, error)
- func (c GitHubClient) FetchWorkflowRunLogs(ctx context.Context, wr *github.WorkflowRun, store httpreaderat.Store) (*zip.Reader, error)
- func (c GitHubClient) GetFileContent(ctx context.Context, owner, repo, path, ref string) (string, error)
- func (c GitHubClient) GetRelease(ctx context.Context, owner, repo, tag string) (*github.RepositoryRelease, error)
- func (c GitHubClient) GetWorkflowRunArtifact(ctx context.Context, wr *github.WorkflowRun, name string) (*zip.Reader, error)deprecated
- func (c GitHubClient) GetWorkflowRunLogs(ctx context.Context, wre github.WorkflowRunEvent) ([]byte, error)deprecated
- func (c GitHubClient) GetWorkloadRunPullRequestNumber(ctx context.Context, wre github.WorkflowRunEvent) (int, error)
- func (c GitHubClient) ListArtifactsFunc(ctx context.Context, wr *github.WorkflowRun, opt *github.ListOptions, ...) error
- func (c GitHubClient) ListFiles(ctx context.Context, owner, repo, path, ref string) ([]*github.RepositoryContent, error)
- func (c GitHubClient) RemoveLabel(ctx context.Context, pr *github.PullRequest, label string) error
- func (c GitHubClient) SearchContentInFilename(ctx context.Context, owner, repo, path, content string, ...) (*github.CodeSearchResult, error)
- func (c GitHubClient) SearchFilenameInRepository(ctx context.Context, owner, repo, path string, opt *github.ListOptions) (*github.CodeSearchResult, error)
- func (c GitHubClient) SetComment(ctx context.Context, pr *github.PullRequest, botName, content string) error
- type GitHubClientOption
- type IssueCommentHandler
- type ProjectV2Item
- type ProjectsV2ItemEvent
- type ProjectsV2ItemHandler
- type PullRequestHandler
- type PushHandler
- type SecondaryRateLimitWaiter
- type WorkflowRunArtifactHandler
- type WorkflowRunHandler
- type WorkflowRunLogsHandler
Constants ¶
const ( ContextKeyAttributes contextKey = "ce-attributes" ContextKeyType contextKey = "ce-type" ContextKeySubject contextKey = "ce-subject" )
Define constants for the keys to use with context.WithValue.
const ( HeaderRetryAfter = "Retry-After" // The time at which the current rate limit window resets, in UTC epoch seconds HeaderXRateLimitReset = "X-Ratelimit-Reset" // The number of requests remaining in the current rate limit window HeaderXRateLimitRemaining = "X-Ratelimit-Remaining" )
https://docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api?apiVersion=2022-11-28#checking-the-status-of-your-rate-limit NOTE: Use the go canonical form (capitals) for these headers, even though they are lowercase in the docs.
Variables ¶
This section is empty.
Functions ¶
func AttributeFromContext ¶ added in v0.6.5
AttributeFromContext retrieves an attribute by key from the context. Returns nil if the attribute does not exist.
func NewSecondaryRateLimitWaiterClient ¶ added in v0.6.86
func NewSecondaryRateLimitWaiterClient(base http.RoundTripper) *http.Client
Types ¶
type Bot ¶
type Bot struct { Name string Handlers map[EventType]EventHandlerFunc }
func NewBot ¶ added in v0.6.0
func NewBot(name string, opts ...BotOptions) Bot
func (*Bot) RegisterHandler ¶ added in v0.6.0
func (b *Bot) RegisterHandler(handler EventHandlerFunc)
type BotOptions ¶ added in v0.6.0
type BotOptions func(*Bot)
func BotWithHandler ¶ added in v0.6.0
func BotWithHandler(handler EventHandlerFunc) BotOptions
type CheckRunHandler ¶ added in v0.6.75
type CheckRunHandler func(ctx context.Context, pre github.CheckRunEvent) error
func (CheckRunHandler) EventType ¶ added in v0.6.75
func (r CheckRunHandler) EventType() EventType
type CheckSuiteHandler ¶ added in v0.6.75
type CheckSuiteHandler func(ctx context.Context, pre github.CheckSuiteEvent) error
func (CheckSuiteHandler) EventType ¶ added in v0.6.75
func (r CheckSuiteHandler) EventType() EventType
type EventHandlerFunc ¶ added in v0.6.0
type EventHandlerFunc interface {
EventType() EventType
}
type EventType ¶ added in v0.6.0
type EventType string
const ( // GitHub events (https://github.com/chainguard-dev/terraform-infra-common/tree/main/modules/github-events) PullRequestEvent EventType = "dev.chainguard.github.pull_request" WorkflowRunEvent EventType = "dev.chainguard.github.workflow_run" IssueCommentEvent EventType = "dev.chainguard.github.issue_comment" PushEvent EventType = "dev.chainguard.github.push" CheckRunEvent EventType = "dev.chainguard.github.check_run" CheckSuiteEvent EventType = "dev.chainguard.github.check_suite" ProjectsV2ItemEventType EventType = "dev.chainguard.github.projects_v2_item" // LoFo events WorkflowRunArtifactEvent EventType = "dev.chainguard.lofo.workflow_run_artifacts" WorkflowRunLogsEvent EventType = "dev.chainguard.lofo.workflow_run_logs" )
type GitHubClient ¶
type GitHubClient struct {
// contains filtered or unexported fields
}
func NewGitHubClient ¶
func NewGitHubClient(ctx context.Context, org, repo, policyName string, opts ...GitHubClientOption) GitHubClient
NewGitHubClient creates a new GitHub client, using a new token from OctoSTS, for the given org, repo and policy name.
A new token is created for each client, and is not refreshed. It can be revoked with Close.
func (GitHubClient) AddComment ¶ added in v0.6.33
func (c GitHubClient) AddComment(ctx context.Context, pr *github.PullRequest, botName, content string) error
AddComment adds a new comment to the given pull request.
func (GitHubClient) AddLabel ¶
func (c GitHubClient) AddLabel(ctx context.Context, pr *github.PullRequest, label string) error
func (GitHubClient) Client ¶
func (c GitHubClient) Client() *github.Client
func (GitHubClient) CloneRepo ¶ added in v0.6.61
func (c GitHubClient) CloneRepo(ctx context.Context, ref, destDir string) (*git.Repository, error)
CloneRepo clones the repository into a destination directory, and checks out a ref.
ref should be "refs/heads/<branch>" or "refs/tags/<tag>" or "refs/pull/<pr>/merge" or a commit SHA.
It returns the git.Repository object for the cloned repository.
func (GitHubClient) FetchWorkflowRunArtifact ¶ added in v0.6.15
func (c GitHubClient) FetchWorkflowRunArtifact(ctx context.Context, wr *github.WorkflowRun, name string) (*zip.Reader, error)
FetchWorkflowRunArtifact returns a zip reader for the artifact with `name` from the given WorkflowRun.
func (GitHubClient) FetchWorkflowRunLogs ¶ added in v0.6.15
func (c GitHubClient) FetchWorkflowRunLogs(ctx context.Context, wr *github.WorkflowRun, store httpreaderat.Store) (*zip.Reader, error)
FetchWorkflowRunLogs returns a Reader for the logs of the given WorkflowRun
func (GitHubClient) GetFileContent ¶ added in v0.6.99
func (c GitHubClient) GetFileContent(ctx context.Context, owner, repo, path, ref string) (string, error)
GetFileContent fetches the content of a file at a given ref
func (GitHubClient) GetRelease ¶ added in v0.6.99
func (c GitHubClient) GetRelease(ctx context.Context, owner, repo, tag string) (*github.RepositoryRelease, error)
GetRelease fetches the release by tag
func (GitHubClient) GetWorkflowRunArtifact
deprecated
added in
v0.6.12
func (c GitHubClient) GetWorkflowRunArtifact(ctx context.Context, wr *github.WorkflowRun, name string) (*zip.Reader, error)
Deprecated: Use FetchWorkflowRunArtifact instead.
func (GitHubClient) GetWorkflowRunLogs
deprecated
added in
v0.6.4
func (c GitHubClient) GetWorkflowRunLogs(ctx context.Context, wre github.WorkflowRunEvent) ([]byte, error)
Deprecated: use FetchWorkflowRunLogs instead.
func (GitHubClient) GetWorkloadRunPullRequestNumber ¶ added in v0.6.4
func (c GitHubClient) GetWorkloadRunPullRequestNumber(ctx context.Context, wre github.WorkflowRunEvent) (int, error)
func (GitHubClient) ListArtifactsFunc ¶ added in v0.6.19
func (c GitHubClient) ListArtifactsFunc(ctx context.Context, wr *github.WorkflowRun, opt *github.ListOptions, f func(artifact *github.Artifact) (bool, error)) error
ListArtifactsFunc executes a paginated list of all artifacts for a given workflow run and executes the provided function on each of the artifacts. The provided function should return a boolean to indicate whether the list operation can stop making API calls.
func (GitHubClient) ListFiles ¶ added in v0.6.105
func (c GitHubClient) ListFiles(ctx context.Context, owner, repo, path, ref string) ([]*github.RepositoryContent, error)
ListFiles lists the files in a directory at a given ref
func (GitHubClient) RemoveLabel ¶
func (c GitHubClient) RemoveLabel(ctx context.Context, pr *github.PullRequest, label string) error
func (GitHubClient) SearchContentInFilename ¶ added in v0.6.113
func (c GitHubClient) SearchContentInFilename(ctx context.Context, owner, repo, path, content string, opt *github.ListOptions) (*github.CodeSearchResult, error)
SearchContentInFilename searches for a text in a filename in a specific repository
func (GitHubClient) SearchFilenameInRepository ¶ added in v0.6.106
func (c GitHubClient) SearchFilenameInRepository(ctx context.Context, owner, repo, path string, opt *github.ListOptions) (*github.CodeSearchResult, error)
SearchFilenameInRepository searches for a filename in a specific repository
func (GitHubClient) SetComment ¶
func (c GitHubClient) SetComment(ctx context.Context, pr *github.PullRequest, botName, content string) error
SetComment adds or replaces a bot comment on the given pull request.
type GitHubClientOption ¶ added in v0.6.86
type GitHubClientOption func(*GitHubClient)
GitHubClientOption configures the client, these are ran after the default setup.
func WithBufferSize ¶ added in v0.6.86
func WithBufferSize(bufSize int) GitHubClientOption
func WithSecondaryRateLimitWaiter ¶ added in v0.6.86
func WithSecondaryRateLimitWaiter() GitHubClientOption
type IssueCommentHandler ¶ added in v0.6.9
type IssueCommentHandler func(ctx context.Context, ice github.IssueCommentEvent) error
func (IssueCommentHandler) EventType ¶ added in v0.6.9
func (r IssueCommentHandler) EventType() EventType
type ProjectV2Item ¶ added in v0.6.85
type ProjectV2Item struct { ID int64 `json:"id,omitempty"` NodeID string `json:"node_id,omitempty"` ProjectNodeID string `json:"project_node_id,omitempty"` ContentNodeID string `json:"content_node_id,omitempty"` ContentType string `json:"content_type,omitempty"` CreatedAt *github.Timestamp `json:"created_at,omitempty"` UpdatedAt *github.Timestamp `json:"updated_at,omitempty"` ArchivedAt *github.Timestamp `json:"archived_at,omitempty"` }
https://github.com/google/go-github/blob/v60.0.0/github/event_types.go#L1085
type ProjectsV2ItemEvent ¶ added in v0.6.85
type ProjectsV2ItemEvent struct { Action string `json:"action,omitempty"` Changes json.RawMessage `json:"changes,omitempty"` ProjectV2Item *ProjectV2Item `json:"projects_v2_item,omitempty"` Organization *github.Organization `json:"organization,omitempty"` Sender *github.User `json:"sender,omitempty"` }
https://github.com/google/go-github/blob/v60.0.0/github/event_types.go#L1062
ProjectsV2ItemEvent represents a project_v2_item event. It's copied from go-github since their version only supports the `archived` action.
type ProjectsV2ItemHandler ¶ added in v0.6.85
type ProjectsV2ItemHandler func(ctx context.Context, pie ProjectsV2ItemEvent) error
func (ProjectsV2ItemHandler) EventType ¶ added in v0.6.85
func (r ProjectsV2ItemHandler) EventType() EventType
type PullRequestHandler ¶ added in v0.6.0
type PullRequestHandler func(ctx context.Context, pre github.PullRequestEvent) error
func (PullRequestHandler) EventType ¶ added in v0.6.0
func (r PullRequestHandler) EventType() EventType
type PushHandler ¶ added in v0.6.52
func (PushHandler) EventType ¶ added in v0.6.52
func (r PushHandler) EventType() EventType
type SecondaryRateLimitWaiter ¶ added in v0.6.86
type SecondaryRateLimitWaiter struct {
// contains filtered or unexported fields
}
SecondaryRateLimitWaiter
type WorkflowRunArtifactHandler ¶ added in v0.6.17
type WorkflowRunArtifactHandler func(ctx context.Context, wre github.WorkflowRunEvent) error
func (WorkflowRunArtifactHandler) EventType ¶ added in v0.6.17
func (r WorkflowRunArtifactHandler) EventType() EventType
type WorkflowRunHandler ¶ added in v0.6.0
type WorkflowRunHandler func(ctx context.Context, wre github.WorkflowRunEvent) error
func (WorkflowRunHandler) EventType ¶ added in v0.6.0
func (r WorkflowRunHandler) EventType() EventType
type WorkflowRunLogsHandler ¶ added in v0.6.33
type WorkflowRunLogsHandler func(ctx context.Context, wre github.WorkflowRunEvent) error
func (WorkflowRunLogsHandler) EventType ¶ added in v0.6.33
func (r WorkflowRunLogsHandler) EventType() EventType