sdk

package
v0.7.5 Latest Latest
Warning

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

Go to latest
Published: Oct 4, 2025 License: Apache-2.0 Imports: 34 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.5.156

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.5.156

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.5.156

func NewBot(name string, opts ...BotOptions) Bot

func (*Bot) RegisterHandler added in v0.5.156

func (b *Bot) RegisterHandler(handler EventHandlerFunc)

type BotOptions added in v0.5.156

type BotOptions func(*Bot)

func BotWithHandler added in v0.5.156

func BotWithHandler(handler EventHandlerFunc) BotOptions

type CheckRunHandler added in v0.5.156

type CheckRunHandler func(ctx context.Context, pre github.CheckRunEvent) error

func (CheckRunHandler) EventType added in v0.5.156

func (r CheckRunHandler) EventType() EventType

type CheckSuiteHandler added in v0.5.156

type CheckSuiteHandler func(ctx context.Context, pre github.CheckSuiteEvent) error

func (CheckSuiteHandler) EventType added in v0.5.156

func (r CheckSuiteHandler) EventType() EventType

type CloneOpts added in v0.5.156

type CloneOpts struct {
	// Shallow indicates whether to perform a shallow clone (depth 1).
	Shallow bool
}

CloneOpts contains options for cloning a repository.

type EventHandlerFunc added in v0.5.156

type EventHandlerFunc interface {
	EventType() EventType
}

type EventType added in v0.5.156

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"
	IssuesEvent             EventType = "dev.chainguard.github.issues"
	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 NewInstallationClient added in v0.5.156

func NewInstallationClient(ctx context.Context, org, repo string, tr *ghinstallation.Transport, opts ...GitHubClientOption) GitHubClient

func (GitHubClient) AddComment added in v0.5.156

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.5.156

func (c GitHubClient) CloneRepo(ctx context.Context, ref, destDir string, opts *CloneOpts) (*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. destDir is the directory to clone the repository into. It will be created if it doesn't exist. if opts is nil, a full clone will be performed.

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.5.156

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.5.156

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.5.156

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.5.156

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.5.156

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.5.156

func (c GitHubClient) GetWorkflowRunLogs(ctx context.Context, wre github.WorkflowRunEvent) ([]byte, error)

Deprecated: use FetchWorkflowRunLogs instead.

func (GitHubClient) GetWorkloadRunPullRequestNumber added in v0.5.156

func (c GitHubClient) GetWorkloadRunPullRequestNumber(ctx context.Context, wre github.WorkflowRunEvent) (int, error)

func (GitHubClient) GitAuth added in v0.5.156

func (c GitHubClient) GitAuth() (transport.AuthMethod, error)

GitAuth returns a go-git transport.AuthMethod using the GitHubClient's credentials. This is useful for authentication in go-git operations like cloning and fetching repositories.

func (GitHubClient) ListArtifactsFunc added in v0.5.156

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.5.156

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) RepoURL added in v0.5.156

func (c GitHubClient) RepoURL() (string, error)

RepoURL returns the HTTPS git URL of the GitHubClient's configured repository.

func (GitHubClient) SearchContentInFilename added in v0.5.156

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.5.156

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.5.156

type GitHubClientOption func(*GitHubClient)

GitHubClientOption configures the client, these are ran after the default setup.

func WithBufferSize added in v0.5.156

func WithBufferSize(bufSize int) GitHubClientOption

func WithClient added in v0.5.156

func WithClient(client *github.Client) GitHubClientOption

WithClient sets the inner GitHub client to the given client useful for testing

func WithSecondaryRateLimitWaiter added in v0.5.156

func WithSecondaryRateLimitWaiter() GitHubClientOption

type IssueCommentHandler added in v0.5.156

type IssueCommentHandler func(ctx context.Context, ice github.IssueCommentEvent) error

func (IssueCommentHandler) EventType added in v0.5.156

func (r IssueCommentHandler) EventType() EventType

type IssuesHandler added in v0.5.156

type IssuesHandler func(ctx context.Context, ice github.IssueEvent) error

func (IssuesHandler) EventType added in v0.5.156

func (r IssuesHandler) EventType() EventType

type ProjectV2Item added in v0.5.156

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.5.156

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.5.156

type ProjectsV2ItemHandler func(ctx context.Context, pie ProjectsV2ItemEvent) error

func (ProjectsV2ItemHandler) EventType added in v0.5.156

func (r ProjectsV2ItemHandler) EventType() EventType

type PullRequestHandler added in v0.5.156

type PullRequestHandler func(ctx context.Context, pre github.PullRequestEvent) error

func (PullRequestHandler) EventType added in v0.5.156

func (r PullRequestHandler) EventType() EventType

type PushHandler added in v0.5.156

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

func (PushHandler) EventType added in v0.5.156

func (r PushHandler) EventType() EventType

type SecondaryRateLimitWaiter added in v0.5.156

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

SecondaryRateLimitWaiter

func (*SecondaryRateLimitWaiter) RoundTrip added in v0.5.156

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

type WorkflowRunArtifactHandler added in v0.5.156

type WorkflowRunArtifactHandler func(ctx context.Context, wre github.WorkflowRunEvent) error

func (WorkflowRunArtifactHandler) EventType added in v0.5.156

func (r WorkflowRunArtifactHandler) EventType() EventType

type WorkflowRunHandler added in v0.5.156

type WorkflowRunHandler func(ctx context.Context, wre github.WorkflowRunEvent) error

func (WorkflowRunHandler) EventType added in v0.5.156

func (r WorkflowRunHandler) EventType() EventType

type WorkflowRunLogsHandler added in v0.5.156

type WorkflowRunLogsHandler func(ctx context.Context, wre github.WorkflowRunEvent) error

func (WorkflowRunLogsHandler) EventType added in v0.5.156

func (r WorkflowRunLogsHandler) EventType() EventType

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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