Documentation
¶
Overview ¶
Package provider defines the CI/CD provider interface and related types.
Index ¶
- func FormatCheckRunName(action, stack, component string) string
- type ApplyOutputOptions
- type BranchStatus
- type CheckRun
- type CheckRunState
- type CheckStatus
- type CheckStatusState
- type Context
- type CreateCheckRunOptions
- type FileOutputWriter
- type NoopOutputWriter
- type OutputHelpers
- type OutputWriter
- type PRInfo
- type PRStatus
- type PlanOutputOptions
- type Provider
- type Status
- type StatusOptions
- type UpdateCheckRunOptions
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FormatCheckRunName ¶
FormatCheckRunName creates a standardized check run name for Atmos.
Types ¶
type ApplyOutputOptions ¶
ApplyOutputOptions contains options for writing apply outputs.
type BranchStatus ¶
type BranchStatus struct {
// Branch is the branch name.
Branch string
// PullRequest is the PR associated with this branch (nil if none).
PullRequest *PRStatus
// CommitSHA is the HEAD commit SHA.
CommitSHA string
// Checks are the status checks for this branch/commit.
Checks []*CheckStatus
}
BranchStatus contains status information for a specific branch.
type CheckRun ¶
type CheckRun struct {
// ID is the unique identifier for this check run.
ID int64
// Name is the check run name (e.g., "atmos/plan: plat-ue2-dev/vpc").
Name string
// Status is the current state of the check run.
Status CheckRunState
// Conclusion is the final conclusion (success, failure, etc.).
Conclusion string
// Title is a short title for the check run output.
Title string
// Summary is a markdown summary of the check run results.
Summary string
// DetailsURL is a link back to the CI run details.
DetailsURL string
// StartedAt is when the check run started.
StartedAt time.Time
// CompletedAt is when the check run completed.
CompletedAt time.Time
}
CheckRun represents a status check on a commit (like Atlantis status checks).
type CheckRunState ¶
type CheckRunState string
CheckRunState represents the state of a check run.
const ( // CheckRunStatePending indicates the check run has not started. CheckRunStatePending CheckRunState = "pending" // CheckRunStateInProgress indicates the check run is in progress. CheckRunStateInProgress CheckRunState = "in_progress" // CheckRunStateSuccess indicates the check run completed successfully. CheckRunStateSuccess CheckRunState = "success" // CheckRunStateFailure indicates the check run failed. CheckRunStateFailure CheckRunState = "failure" // CheckRunStateError indicates an error occurred during the check run. CheckRunStateError CheckRunState = "error" // CheckRunStateCancelled indicates the check run was cancelled. CheckRunStateCancelled CheckRunState = "cancelled" )
type CheckStatus ¶
type CheckStatus struct {
// Name is the check name.
Name string
// Status is the check status (e.g., "queued", "in_progress", "completed").
Status string
// Conclusion is the check conclusion (e.g., "success", "failure", "neutral").
Conclusion string
// DetailsURL is a link to the check details.
DetailsURL string
}
CheckStatus contains status information for a single check.
func (*CheckStatus) CheckState ¶
func (c *CheckStatus) CheckState() CheckStatusState
CheckState returns the simplified state for display.
type CheckStatusState ¶
type CheckStatusState string
CheckStatusState represents the simplified state for display.
const ( // CheckStatusStatePending indicates the check is pending or in progress. CheckStatusStatePending CheckStatusState = "pending" // CheckStatusStateSuccess indicates the check passed. CheckStatusStateSuccess CheckStatusState = "success" // CheckStatusStateFailure indicates the check failed. CheckStatusStateFailure CheckStatusState = "failure" // CheckStatusStateCancelled indicates the check was cancelled. CheckStatusStateCancelled CheckStatusState = "cancelled" // CheckStatusStateSkipped indicates the check was skipped. CheckStatusStateSkipped CheckStatusState = "skipped" )
type Context ¶
type Context struct {
// Provider is the name of the CI provider (e.g., "github-actions").
Provider string
// RunID is the unique identifier for this CI run.
RunID string
// RunNumber is the run number (increments per workflow).
RunNumber int
// Workflow is the name of the workflow.
Workflow string
// Job is the name of the current job.
Job string
// Actor is the user or app that triggered the workflow.
Actor string
// EventName is the event that triggered the workflow (e.g., "push", "pull_request").
EventName string
// Ref is the git ref (e.g., "refs/heads/main").
Ref string
// Branch is the branch name (e.g., "main", "feature/foo").
Branch string
// SHA is the git commit SHA.
SHA string
// Repository is the full repository name (e.g., "owner/repo").
Repository string
// RepoOwner is the repository owner.
RepoOwner string
// RepoName is the repository name.
RepoName string
// PullRequest contains PR info if this is a pull request event.
PullRequest *PRInfo
}
Context contains CI run metadata.
type CreateCheckRunOptions ¶
type CreateCheckRunOptions struct {
// Owner is the repository owner.
Owner string
// Repo is the repository name.
Repo string
// SHA is the commit SHA to create the check run on.
SHA string
// Name is the check run name (e.g., "atmos/plan: plat-ue2-dev/vpc").
Name string
// Status is the initial status (typically "queued" or "in_progress").
Status CheckRunState
// Title is a short title for the check run output.
Title string
// Summary is a markdown summary of the check run.
Summary string
// DetailsURL is a link back to the CI run.
DetailsURL string
// ExternalID is an optional external reference ID.
ExternalID string
}
CreateCheckRunOptions contains options for creating a new check run.
type FileOutputWriter ¶
FileOutputWriter writes outputs to a file (like $GITHUB_OUTPUT).
func NewFileOutputWriter ¶
func NewFileOutputWriter(outputPath, summaryPath string) *FileOutputWriter
NewFileOutputWriter creates a new FileOutputWriter.
func (*FileOutputWriter) WriteOutput ¶
func (w *FileOutputWriter) WriteOutput(key, value string) error
WriteOutput writes a key-value pair to the output file. Format: key=value (single line) or key<<EOF\nvalue\nEOF (multiline).
func (*FileOutputWriter) WriteSummary ¶
func (w *FileOutputWriter) WriteSummary(content string) error
WriteSummary appends content to the job summary file.
type NoopOutputWriter ¶
type NoopOutputWriter struct{}
NoopOutputWriter is an OutputWriter that does nothing. Used when not running in CI or when CI outputs are disabled.
func (*NoopOutputWriter) WriteOutput ¶
func (w *NoopOutputWriter) WriteOutput(_, _ string) error
WriteOutput implements OutputWriter.
func (*NoopOutputWriter) WriteSummary ¶
func (w *NoopOutputWriter) WriteSummary(_ string) error
WriteSummary implements OutputWriter.
type OutputHelpers ¶
type OutputHelpers struct {
Writer OutputWriter
}
OutputHelpers provides helper methods for common CI output patterns.
func NewOutputHelpers ¶
func NewOutputHelpers(writer OutputWriter) *OutputHelpers
NewOutputHelpers creates a new OutputHelpers.
func (*OutputHelpers) WriteApplyOutputs ¶
func (h *OutputHelpers) WriteApplyOutputs(opts ApplyOutputOptions) error
WriteApplyOutputs writes standard apply output variables.
func (*OutputHelpers) WritePlanOutputs ¶
func (h *OutputHelpers) WritePlanOutputs(opts PlanOutputOptions) error
WritePlanOutputs writes standard plan output variables.
type OutputWriter ¶
type OutputWriter interface {
// WriteOutput writes a key-value pair to CI outputs (e.g., $GITHUB_OUTPUT).
WriteOutput(key, value string) error
// WriteSummary writes content to the job summary (e.g., $GITHUB_STEP_SUMMARY).
WriteSummary(content string) error
}
OutputWriter writes CI outputs (environment variables, job summaries, etc.).
type PRInfo ¶
type PRInfo struct {
// Number is the PR number.
Number int
// HeadRef is the source branch.
HeadRef string
// BaseRef is the target branch.
BaseRef string
// URL is the PR URL.
URL string
}
PRInfo contains pull request metadata.
type PRStatus ¶
type PRStatus struct {
// Number is the PR number.
Number int
// Title is the PR title.
Title string
// Branch is the head branch name.
Branch string
// BaseBranch is the target branch name.
BaseBranch string
// URL is the PR URL.
URL string
// Checks are the status checks for this PR.
Checks []*CheckStatus
// AllPassed is true if all checks have passed.
AllPassed bool
}
PRStatus contains status information for a pull request.
type PlanOutputOptions ¶
type PlanOutputOptions struct {
HasChanges bool
HasAdditions bool
AdditionsCount int
ChangesCount int
HasDestructions bool
DestructionsCount int
ExitCode int
ArtifactKey string
}
PlanOutputOptions contains options for writing plan outputs.
type Provider ¶
type Provider interface {
// Name returns the provider name (e.g., "github-actions", "generic").
Name() string
// Detect returns true if this provider is active in the current environment.
Detect() bool
// Context returns CI metadata (run ID, PR info, etc.).
Context() (*Context, error)
// GetStatus returns PR/commit status for the current branch.
GetStatus(ctx context.Context, opts StatusOptions) (*Status, error)
// CreateCheckRun creates a new check run on a commit (like Atlantis status checks).
CreateCheckRun(ctx context.Context, opts *CreateCheckRunOptions) (*CheckRun, error)
// UpdateCheckRun updates an existing check run.
UpdateCheckRun(ctx context.Context, opts *UpdateCheckRunOptions) (*CheckRun, error)
// OutputWriter returns a writer for CI outputs ($GITHUB_OUTPUT, etc.).
OutputWriter() OutputWriter
}
Provider represents a CI/CD provider (GitHub Actions, GitLab CI, etc.).
type Status ¶
type Status struct {
// Repository is the full repository name (e.g., "owner/repo").
Repository string
// CurrentBranch contains status for the current branch.
CurrentBranch *BranchStatus
// CreatedByUser contains PRs created by the authenticated user.
CreatedByUser []*PRStatus
// ReviewRequests contains PRs requesting review from the user.
ReviewRequests []*PRStatus
}
Status represents the CI status for display (like gh pr status).
type StatusOptions ¶
type StatusOptions struct {
// Owner is the repository owner.
Owner string
// Repo is the repository name.
Repo string
// Branch is the branch to check (optional, defaults to current branch).
Branch string
// SHA is the commit SHA to check (optional, defaults to HEAD).
SHA string
// IncludeUserPRs includes PRs created by the authenticated user.
IncludeUserPRs bool
// IncludeReviewRequests includes PRs requesting review from the user.
IncludeReviewRequests bool
}
StatusOptions contains options for fetching CI status.
type UpdateCheckRunOptions ¶
type UpdateCheckRunOptions struct {
// Owner is the repository owner.
Owner string
// Repo is the repository name.
Repo string
// CheckRunID is the ID of the check run to update.
CheckRunID int64
// Name is the check run name (required for GitHub API updates).
Name string
// Status is the new status.
Status CheckRunState
// Conclusion is the final conclusion (required when status is "completed").
Conclusion string
// Title is the output title (distinct from the check run name).
Title string
// Summary is an updated markdown summary.
Summary string
// CompletedAt is when the check run completed.
CompletedAt *time.Time
}
UpdateCheckRunOptions contains options for updating an existing check run.