...

Package gh

import "github.com/cli/go-gh/v2"
Overview
Index
Examples
Subdirectories

Overview ▾

Package gh is a library for CLI Go applications to help interface with the gh CLI tool, and the GitHub API.

Note that the examples in this package assume gh and git are installed. They do not run in the Go Playground used by pkg.go.dev.

func Exec

func Exec(args ...string) (stdout, stderr bytes.Buffer, err error)

Exec invokes a gh command in a subprocess and captures the output and error streams.

Example

Execute 'gh issue list -R cli/cli', and print the output.

Code:

args := []string{"issue", "list", "-R", "cli/cli"}
stdOut, stdErr, err := gh.Exec(args...)
if err != nil {
    log.Fatal(err)
}
fmt.Println(stdOut.String())
fmt.Println(stdErr.String())

func ExecContext

func ExecContext(ctx context.Context, args ...string) (stdout, stderr bytes.Buffer, err error)

ExecContext invokes a gh command in a subprocess and captures the output and error streams.

func ExecInteractive

func ExecInteractive(ctx context.Context, args ...string) error

Exec invokes a gh command in a subprocess with its stdin, stdout, and stderr streams connected to those of the parent process. This is suitable for running gh commands with interactive prompts.

func Path

func Path() (string, error)

Path searches for an executable named "gh" in the directories named by the PATH environment variable. If the executable is found the result is an absolute path.

Subdirectories

Name Synopsis
..
pkg
api Package api is a set of types for interacting with the GitHub API.
asciisanitizer Package asciisanitizer implements an ASCII control character sanitizer for UTF-8 strings.
auth Package auth is a set of functions for retrieving authentication tokens and authenticated hosts.
browser Package browser facilitates opening of URLs in a web browser.
config Package config is a set of types for interacting with the gh configuration files.
jq Package jq facilitates processing of JSON strings using jq expressions.
jsonpretty Package jsonpretty implements a terminal pretty-printer for JSON.
markdown Package markdown facilitates rendering markdown in the terminal.
prompter Package prompter provides various methods for prompting the user with questions for input.
repository Package repository is a set of types and functions for modeling and interacting with GitHub repositories.
ssh Package ssh resolves local SSH hostname aliases.
tableprinter Package tableprinter facilitates rendering column-formatted data to a terminal and TSV-formatted data to a script or a file.
template Package template facilitates processing of JSON strings using Go templates.
term Package term provides information about the terminal that the current process is connected to (if any), for example measuring the dimensions of the terminal and inspecting whether it's safe to output color.
text Package text is a set of utility functions for text processing and outputting to the terminal.