go-githubactions: github.com/sethvargo/go-githubactions Index | Examples | Files

package githubactions

import "github.com/sethvargo/go-githubactions"

Package githubactions provides an SDK for authoring GitHub Actions in Go. It has no external dependencies and provides a Go-like interface for interacting with GitHub Actions' build system.

Index

Examples

Package Files

actions.go actions_root.go command.go

func AddMask Uses

func AddMask(p string)

AddMask adds a new field mask for the given string "p". After called, future attempts to log "p" will be replaced with "***" in log output.

func AddMatcher Uses

func AddMatcher(p string)

AddMatcher adds a new matcher with the given file path.

func AddPath Uses

func AddPath(p string)

AddPath adds the string "p" to the path for the invocation.

func Debugf Uses

func Debugf(msg string, args ...interface{})

Debugf prints a debug-level message. The arguments follow the standard Printf arguments.

func EndGroup Uses

func EndGroup()

EndGroup ends the current group.

func Errorf Uses

func Errorf(msg string, args ...interface{})

Errorf prints a error-level message. The arguments follow the standard Printf arguments.

func Fatalf Uses

func Fatalf(msg string, args ...interface{})

Fatalf prints a error-level message and exits. This is equivalent to Errorf followed by os.Exit(1).

func GetInput Uses

func GetInput(i string) string

GetInput gets the input by the given name.

func Group Uses

func Group(t string)

Group starts a new collapsable region up to the next ungroup invocation.

func IssueCommand Uses

func IssueCommand(cmd *Command)

IssueCommand issues an arbitrary GitHub actions Command.

func IssueFileCommand Uses

func IssueFileCommand(cmd *Command) error

IssueFileCommand issues a new GitHub actions Command using environment files.

func RemoveMatcher Uses

func RemoveMatcher(o string)

RemoveMatcher removes a matcher with the given owner name.

func SaveState Uses

func SaveState(k, v string)

SaveState saves state to be used in the "finally" post job entry point.

func SetEnv Uses

func SetEnv(k, v string)

SetEnv sets an environment variable.

func SetOutput Uses

func SetOutput(k, v string)

SetOutput sets an output parameter.

func Warningf Uses

func Warningf(msg string, args ...interface{})

Warningf prints a warning-level message. The arguments follow the standard Printf arguments.

type Action Uses

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

Action is an internal wrapper around GitHub Actions' output and magic strings.

func New Uses

func New() *Action

New creates a new wrapper with helpers for outputting information in GitHub actions format.

Code:

a = githubactions.New()

func NewWithWriter Uses

func NewWithWriter(w io.Writer) *Action

NewWithWriter creates a wrapper using the given writer. This is useful for tests. The given writer cannot add any prefixes to the string, since GitHub requires these special strings to match a very particular format.

func WithFieldsMap Uses

func WithFieldsMap(m map[string]string) *Action

WithFieldsMap includes the provided fields in log output. The fields in "m" are automatically converted to k=v pairs and sorted.

func WithFieldsSlice Uses

func WithFieldsSlice(f []string) *Action

WithFieldsSlice includes the provided fields in log output. "f" must be a slice of k=v pairs. The given slice will be sorted.

func (*Action) AddMask Uses

func (c *Action) AddMask(p string)

AddMask adds a new field mask for the given string "p". After called, future attempts to log "p" will be replaced with "***" in log output.

Code:

a := githubactions.New()
a.AddMask("my-password")

func (*Action) AddMatcher Uses

func (c *Action) AddMatcher(p string)

AddMatcher adds a new matcher with the given file path.

func (*Action) AddPath Uses

func (c *Action) AddPath(p string)

AddPath adds the string "p" to the path for the invocation. It attempts to issue a file command at first. If that fails, it falls back to the regular (now deprecated) 'add-path' command, which may stop working in the future. The deprecated fallback may be useful for users running an older version of GitHub runner.

https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/

Code:

a := githubactions.New()
a.AddPath("/tmp/myapp")

func (*Action) Debugf Uses

func (c *Action) Debugf(msg string, args ...interface{})

Debugf prints a debug-level message. The arguments follow the standard Printf arguments.

Code:

a := githubactions.New()
a.Debugf("a debug message")

Code:

a := githubactions.New()
m := map[string]string{
    "file": "app.go",
    "line": "100",
}
a.WithFieldsMap(m).Debugf("a debug message")

Code:

a := githubactions.New()
s := []string{"file=app.go", "line=100"}
a.WithFieldsSlice(s).Debugf("a debug message")

func (*Action) EndGroup Uses

func (c *Action) EndGroup()

EndGroup ends the current group.

func (*Action) Errorf Uses

func (c *Action) Errorf(msg string, args ...interface{})

Errorf prints a error-level message. The arguments follow the standard Printf arguments.

Code:

a := githubactions.New()
a.Errorf("an error message")

Code:

a := githubactions.New()
m := map[string]string{
    "file": "app.go",
    "line": "100",
}
a.WithFieldsMap(m).Errorf("an error message")

Code:

a := githubactions.New()
s := []string{"file=app.go", "line=100"}
a.WithFieldsSlice(s).Errorf("an error message")

func (*Action) Fatalf Uses

func (c *Action) Fatalf(msg string, args ...interface{})

Fatalf prints a error-level message and exits. This is equivalent to Errorf followed by os.Exit(1).

func (*Action) GetInput Uses

func (c *Action) GetInput(i string) string

GetInput gets the input by the given name.

func (*Action) Group Uses

func (c *Action) Group(t string)

Group starts a new collapsable region up to the next ungroup invocation.

func (*Action) IssueCommand Uses

func (c *Action) IssueCommand(cmd *Command)

IssueCommand issues a new GitHub actions Command.

func (*Action) IssueFileCommand Uses

func (c *Action) IssueFileCommand(cmd *Command) error

IssueFileCommand issues a new GitHub actions Command using environment files.

https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#environment-files

The TypeScript equivalent function:

https://github.com/actions/toolkit/blob/4f7fb6513a355689f69f0849edeb369a4dc81729/packages/core/src/file-command.ts#L10-L23

IssueFileCommand currently ignores the 'CommandProperties' field provided with the 'Command' argument as it's scope is unclear in the current TypeScript implementation.

func (*Action) RemoveMatcher Uses

func (c *Action) RemoveMatcher(o string)

RemoveMatcher removes a matcher with the given owner name.

func (*Action) SaveState Uses

func (c *Action) SaveState(k, v string)

SaveState saves state to be used in the "finally" post job entry point.

func (*Action) SetEnv Uses

func (c *Action) SetEnv(k, v string)

SetEnv sets an environment variable. It attempts to issue a file command at first. If that fails, it falls back to the regular (now deprecated) 'set-env' command, which may stop working in the future. The deprecated fallback may be useful for users running an older version of GitHub runner.

https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/

Code:

a := githubactions.New()
a.SetEnv("MY_THING", "my value")

func (*Action) SetOutput Uses

func (c *Action) SetOutput(k, v string)

SetOutput sets an output parameter.

Code:

a := githubactions.New()
a.SetOutput("filepath", "/tmp/file-xyz1234")

func (*Action) Warningf Uses

func (c *Action) Warningf(msg string, args ...interface{})

Warningf prints a warning-level message. The arguments follow the standard Printf arguments.

Code:

a := githubactions.New()
a.Warningf("a warning message")

Code:

a := githubactions.New()
m := map[string]string{
    "file": "app.go",
    "line": "100",
}
a.WithFieldsMap(m).Warningf("a warning message")

Code:

a := githubactions.New()
s := []string{"file=app.go", "line=100"}
a.WithFieldsSlice(s).Warningf("a warning message")

func (*Action) WithFieldsMap Uses

func (c *Action) WithFieldsMap(m map[string]string) *Action

WithFieldsMap includes the provided fields in log output. The fields in "m" are automatically converted to k=v pairs and sorted.

func (*Action) WithFieldsSlice Uses

func (c *Action) WithFieldsSlice(f []string) *Action

WithFieldsSlice includes the provided fields in log output. "f" must be a slice of k=v pairs. The given slice will be sorted. It panics if any of the string in the given slice does not construct a valid 'key=value' pair.

type Command Uses

type Command struct {
    Name       string
    Message    string
    Properties CommandProperties
}

Command can be issued by a GitHub action by writing to `stdout` with following format.

::name key=value,key=value::message

Examples:
  ::warning::This is the message
  ::set-env name=MY_VAR::some value

func (*Command) String Uses

func (cmd *Command) String() string

String encodes the Command to a string in the following format:

::name key=value,key=value::message

type CommandProperties Uses

type CommandProperties map[string]string

CommandProperties is a named "map[string]string" type to hold key-value pairs passed to an actions command.

func (*CommandProperties) String Uses

func (props *CommandProperties) String() string

String encodes the CommandProperties to a string as comma separated 'key=value' pairs. The pairs are joined in a chronological order.

Package githubactions imports 6 packages (graph). Updated 2020-11-04. Refresh now. Tools for package owners.