githubactions

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Jan 10, 2023 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ArchX86   = "X86"
	ArchX64   = "X64"
	ArchARM   = "ARM"
	ArchARM64 = "ARM64"
)
View Source
const (
	DefaultBranch = "main"
	DefaultRemote = "origin"
)
View Source
const (
	EnvVarCI              = "CI"
	EnvVarWorkflow        = "GITHUB_WORKFLOW"
	EnvVarRunID           = "GITHUB_RUN_ID"
	EnvVarRunNumber       = "GITHUB_RUN_NUMBER"
	EnvVarRunAttempt      = "GITHUB_RUN_ATTEMPT"
	EnvVarJob             = "GITHUB_JOB"
	EnvVarAction          = "GITHUB_ACTION"
	EnvVarActionPath      = "GITHUB_ACTION_PATH"
	EnvVarActions         = "GITHUB_ACTIONS"
	EnvVarActor           = "GITHUB_ACTOR"
	EnvVarRepository      = "GITHUB_REPOSITORY"
	EnvVarEventName       = "GITHUB_EVENT_NAME"
	EnvVarEventPath       = "GITHUB_EVENT_PATH"
	EnvVarWorkspace       = "GITHUB_WORKSPACE"
	EnvVarSha             = "GITHUB_SHA"
	EnvVarRef             = "GITHUB_REF"
	EnvVarRefName         = "GITHUB_REF_NAME"
	EnvVarRefProtected    = "GITHUB_REF_PROTECTED"
	EnvVarRefType         = "GITHUB_REF_TYPE"
	EnvVarHeadRef         = "GITHUB_HEAD_REF"
	EnvVarBaseRef         = "GITHUB_BASE_REF"
	EnvVarServerURL       = "GITHUB_SERVER_URL"
	EnvVarAPIURL          = "GITHUB_API_URL"
	EnvVarGraphQLURL      = "GITHUB_GRAPHQL_URL"
	EnvVarRunnerName      = "RUNNER_NAME"
	EnvVarRunnerOS        = "RUNNER_OS"
	EnvVarRunnerArch      = "RUNNER_ARCH"
	EnvVarRunnerTemp      = "RUNNER_TEMP"
	EnvVarRunnerToolCache = "RUNNER_TOOL_CACHE"

	EnvVarEnv  = "GITHUB_ENV"
	EnvVarPath = "GITHUB_PATH"

	EnvVarToken = "GITHUB_TOKEN" //nolint:gosec

	EnvVarRepositoryOwner  = "GITHUB_REPOSITORY_OWNER"
	EnvVarRetentionDays    = "GITHUB_RETENTION_DAYS"
	EnvVarStepSummary      = "GITHUB_STEP_SUMMARY"
	EnvVarActionRepository = "GITHUB_ACTION_REPOSITORY"
)
View Source
const (
	RunsUsingDockerfileImage   = "Dockerfile"
	RunsUsingDockerImagePrefix = "docker://"
	RunsUsingDocker            = "docker"
	RunsUsingComposite         = "composite"
	RunsUsingNode12            = "node12"
	RunsUsingNode16            = "node16"
)
View Source
const (
	OSLinux   = "Linux"
	OSWindows = "Windows"
	OSDarwin  = "macOS"
)
View Source
const (
	RefTypeTag    = "tag"
	RefTypeBranch = "branch"
)
View Source
const (
	SecretActionsStepDebug   = "ACTIONS_STEP_DEBUG"
	SecretActionsRunnerDebug = "ACTIONS_RUNNER_DEBUG"
	SecretDebugValue         = "true"
)
View Source
const (
	CommandDebug        = "debug"
	CommandGroup        = "group"
	CommandEndGroup     = "endgroup"
	CommandSaveState    = "save-state"
	CommandSetOutput    = "set-output"
	CommandNotice       = "notice"
	CommandWarning      = "warning"
	CommandError        = "error"
	CommandAddMask      = "add-mask"
	CommandEcho         = "echo"
	CommandStopCommands = "stop-commands"
)

Variables

View Source
var (
	ErrNotAnAction         = errors.New("action.yaml/action.yml not found")
	ErrNotAWorkflowCommand = errors.New("not a workflow command")
)
View Source
var (
	DefaultURL        *url.URL
	DefaultAPIURL     *url.URL
	DefaultGraphQLURL *url.URL
)
View Source
var ActionYAMLFilenames = []string{"action.yml", "action.yaml"}
View Source
var ErrMissingRequiredInput = errors.New("required input missing")

Functions

func APIURLFromBaseURL

func APIURLFromBaseURL(base *url.URL) (*url.URL, error)

func Expand

func Expand(b []byte, mapping ExpandFunc) (p []byte)

func ExpandString

func ExpandString(s string, mapping ExpandFunc) string

func GetGitHubAPIURL

func GetGitHubAPIURL() *url.URL

func GetGitHubServerURL

func GetGitHubServerURL() *url.URL

func GetGitHubURL

func GetGitHubURL() *url.URL

func GetGraphQLURL

func GetGraphQLURL() *url.URL

func GraphQLURLFromBaseURL

func GraphQLURLFromBaseURL(base *url.URL) (*url.URL, error)

func IsErrNotAWorkflowCommand

func IsErrNotAWorkflowCommand(err error) bool

func IsErrNotAnAction

func IsErrNotAnAction(err error) bool

func NewWorkflowCommandWriter

func NewWorkflowCommandWriter(callback func(*WorkflowCommand) []byte, w io.Writer) io.Writer

func OpenDirectoryMetadata

func OpenDirectoryMetadata(dir string) (_ io.Reader, err error)

func OpenUsesMetadata

func OpenUsesMetadata(uses *Uses) (io.Reader, error)

func WithGlobalContext

func WithGlobalContext(ctx context.Context, globalContext *GlobalContext) context.Context

Types

type CheckoutOpts

type CheckoutOpts struct {
	Path      string
	Insecure  bool
	GitHubURL *url.URL
}

type ExpandFunc

type ExpandFunc func(string) string

type Expander

type Expander struct {
	ExpandFunc
}

func NewExpander

func NewExpander(f ExpandFunc) *Expander

func (*Expander) Expand

func (e *Expander) Expand(b []byte) []byte

func (*Expander) ExpandString

func (e *Expander) ExpandString(s string) string

type GitHubContext

type GitHubContext struct {
	Action          string `json:"action,omitempty"`
	ActionPath      string `json:"action_path,omitempty"`
	Actor           string `json:"actor,omitempty"`
	BaseRef         string `json:"base_ref,omitempty"`
	Event           string `json:"event,omitempty"`
	EventName       string `json:"event_name,omitempty"`
	EventPath       string `json:"event_path,omitempty"`
	HeadRef         string `json:"head_ref,omitempty"`
	Job             string `json:"job,omitempty"`
	Ref             string `json:"ref,omitempty"`
	RefName         string `json:"ref_name,omitempty"`
	RefProtected    bool   `json:"ref_protected,omitempty"`
	RefType         string `json:"ref_type,omitempty"`
	Repository      string `json:"repository,omitempty"`
	RepositoryOwner string `json:"repository_owner,omitempty"`
	RunID           string `json:"run_id,omitempty"`
	RunNumber       int64  `json:"run_number,omitempty"`
	RunAttempt      int64  `json:"run_attempt,omitempty"`
	ServerURL       string `json:"server_url,omitempty"`
	Sha             string `json:"sha,omitempty"`
	Token           string `json:"token,omitempty"`
	Workflow        string `json:"workflow,omitempty"`
	Workspace       string `json:"workspace,omitempty"`
}

func (*GitHubContext) GetString

func (c *GitHubContext) GetString(key string) string

type GlobalContext

type GlobalContext struct {
	GitHubContext  *GitHubContext          `json:"git_hub_context,omitempty"`
	EnvContext     map[string]string       `json:"env_context,omitempty"`
	JobContext     *JobContext             `json:"job_context,omitempty"`
	StepsContext   map[string]*StepContext `json:"steps_context,omitempty"`
	RunnerContext  *RunnerContext          `json:"runner_context,omitempty"`
	InputsContext  map[string]string       `json:"inputs_context,omitempty"`
	SecretsContext map[string]string       `json:"secrets_context,omitempty"`
	NeedsContext   map[string]*NeedContext `json:"needs_context,omitempty"`
}

func GlobalContextFrom

func GlobalContextFrom(ctx context.Context) (globalContext *GlobalContext, ok bool)

func NewGlobalContextFromEnv

func NewGlobalContextFromEnv() *GlobalContext

func NewGlobalContextFromPath

func NewGlobalContextFromPath(ctx context.Context, path string) (*GlobalContext, error)

func (*GlobalContext) AddEnv

func (c *GlobalContext) AddEnv(env map[string]string)

func (*GlobalContext) Env

func (c *GlobalContext) Env() []string

func (*GlobalContext) GetString

func (c *GlobalContext) GetString(key string) string

type JobContext

type JobContext struct {
	Container *JobContextContainer          `json:"container,omitempty"`
	Services  map[string]*JobContextService `json:"services,omitempty"`
	Status    string                        `json:"status,omitempty"`
}

func (*JobContext) GetString

func (c *JobContext) GetString(key string) string

type JobContextContainer

type JobContextContainer struct {
	ID      string `json:"id,omitempty"`
	Network string `json:"network,omitempty"`
}

type JobContextService

type JobContextService struct {
	ID      string            `json:"id,omitempty"`
	Network string            `json:"network,omitempty"`
	Ports   map[string]string `json:"ports,omitempty"`
}

type Metadata

type Metadata struct {
	Name        string                     `json:"name,omitempty"`
	Author      string                     `json:"author,omitempty"`
	Description string                     `json:"description,omitempty"`
	Inputs      map[string]*MetadataInput  `json:"inputs,omitempty"`
	Output      map[string]*MetadataOutput `json:"output,omitempty"`
	Runs        *MetadataRuns              `json:"runs,omitempty"`
}

func CheckoutUses

func CheckoutUses(ctx context.Context, u *Uses, opts *CheckoutOpts) (*Metadata, error)

func GetUsesMetadata

func GetUsesMetadata(ctx context.Context, uses *Uses, dir string) (*Metadata, error)

func NewMetadataFromReader

func NewMetadataFromReader(r io.Reader) (*Metadata, error)

func (*Metadata) InputsFromWith

func (m *Metadata) InputsFromWith(with map[string]string) (map[string]string, error)

func (*Metadata) IsComposite

func (m *Metadata) IsComposite() bool

func (*Metadata) IsDockerfile

func (m *Metadata) IsDockerfile() bool

type MetadataInput

type MetadataInput struct {
	Description        string `json:"description,omitempty"`
	Required           bool   `json:"required,omitempty"`
	Default            string `json:"default,omitempty"`
	DeprecationMessage string `json:"deprecation_message,omitempty"`
}

type MetadataOutput

type MetadataOutput struct {
	Description string `json:"description,omitempty"`
}

type MetadataRuns

type MetadataRuns struct {
	Plugin         string            `json:"plugin,omitempty"`
	Using          string            `json:"using,omitempty"`
	Pre            string            `json:"pre,omitempty"`
	Main           string            `json:"main,omitempty"`
	Post           string            `json:"post,omitempty"`
	Image          string            `json:"image,omitempty"`
	PreEntrypoint  string            `json:"pre_entrypoint,omitempty"`
	Entrypoint     string            `json:"entrypoint,omitempty"`
	PostEntrypoint string            `json:"post_entrypoint,omitempty"`
	Args           []string          `json:"args,omitempty"`
	Env            map[string]string `json:"env,omitempty"`
	Steps          []*Step           `json:"steps,omitempty"`
}

type NeedContext

type NeedContext struct {
	Outputs map[string]string `json:"outputs,omitempty"`
}

func (*NeedContext) GetString

func (c *NeedContext) GetString(key string) string

type RunnerContext

type RunnerContext struct {
	Name      string `json:"name,omitempty"`
	OS        string `json:"os,omitempty"`
	Arch      string `json:"arch,omitempty"`
	Temp      string `json:"temp,omitempty"`
	ToolCache string `json:"tool_cache,omitempty"`
}

func (*RunnerContext) GetString

func (c *RunnerContext) GetString(key string) string

type Step

type Step struct {
	Shell      string            `json:"shell,omitempty"`
	If         string            `json:"if,omitempty"`
	Name       string            `json:"name,omitempty"`
	ID         string            `json:"id,omitempty"`
	Env        map[string]string `json:"env,omitempty"`
	WorkingDir string            `json:"working_dir,omitempty"`
	Uses       string            `json:"uses,omitempty"`
	With       map[string]string `json:"with,omitempty"`
	Run        string            `json:"run,omitempty"`
}

type StepContext

type StepContext struct {
	Outputs    map[string]string `json:"outputs,omitempty"`
	Conclusion string            `json:"conclusion,omitempty"`
	Outcome    string            `json:"outcome,omitempty"`
}

func (*StepContext) GetString

func (c *StepContext) GetString(key string) string

type Uses

type Uses struct {
	Path    string `json:"path,omitempty"`
	Version string `json:"version,omitempty"`
}

func Parse

func Parse(uses string) (*Uses, error)

TODO regexp.

func (*Uses) GetActionPath

func (u *Uses) GetActionPath() string

func (*Uses) GetRepository

func (u *Uses) GetRepository() string

func (*Uses) GoString

func (u *Uses) GoString() string

func (*Uses) IsLocal

func (u *Uses) IsLocal() bool

func (*Uses) IsRemote

func (u *Uses) IsRemote() bool

func (*Uses) MarshalJSON

func (u *Uses) MarshalJSON() ([]byte, error)

func (*Uses) UsesString

func (u *Uses) UsesString() string

type WorkflowCommand

type WorkflowCommand struct {
	Command    string            `json:"command,omitempty"`
	Parameters map[string]string `json:"parameters,omitempty"`
	Value      string            `json:"value,omitempty"`
}

func ParseWorkflowCommand

func ParseWorkflowCommand(b []byte) (*WorkflowCommand, error)

func ParseWorkflowCommandString

func ParseWorkflowCommandString(workflowCommand string) (*WorkflowCommand, error)

TODO regexp.

func (*WorkflowCommand) GetName

func (c *WorkflowCommand) GetName() string

func (*WorkflowCommand) GoString

func (c *WorkflowCommand) GoString() string

func (*WorkflowCommand) String

func (c *WorkflowCommand) String() string

Jump to

Keyboard shortcuts

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