sdk

package
v0.6.87 Latest Latest
Warning

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

Go to latest
Published: Oct 3, 2024 License: Apache-2.0 Imports: 32 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ContextKeyAttributes contextKey = "ce-attributes"
	ContextKeyType       contextKey = "ce-type"
	ContextKeySubject    contextKey = "ce-subject"
)

Define constants for the keys to use with context.WithValue.

View Source
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

func AttributeFromContext(ctx context.Context, key string) interface{}

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

func Serve

func Serve(b Bot)

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, 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) Close

func (c GitHubClient) Close(ctx context.Context) error

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) 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) RemoveLabel

func (c GitHubClient) RemoveLabel(ctx context.Context, pr *github.PullRequest, label string) error

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

type PushHandler func(ctx context.Context, pre github.PushEvent) error

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

func (*SecondaryRateLimitWaiter) RoundTrip added in v0.6.86

func (w *SecondaryRateLimitWaiter) RoundTrip(req *http.Request) (*http.Response, error)

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

Jump to

Keyboard shortcuts

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