Skip to content
/ go-gh Public
forked from cli/go-gh

A Go module for interacting with gh and the GitHub API from the command line.

License

Notifications You must be signed in to change notification settings

mszostok/go-gh

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

go-gh beta

This project is in beta! Feedback is welcome.

A Go module for CLI Go applications and gh extensions that want a convenient way to interact with gh, and the GitHub API using gh environment configuration.

go-gh supports multiple ways of getting access to gh functionality:

  • Helpers that automatically read a gh config to authenticate themselves
  • gh.Exec shells out to a gh install on your machine

If you'd like to use go-gh on systems without gh installed and configured, you can provide custom authentication details to the go-gh API helpers.

Installation

go get github.com/cli/go-gh

Usage

package main
import (
	"fmt"
	"github.com/cli/go-gh"
)

func main() {
	// These examples assume `gh` is installed and has been authenticated

	// Execute `gh issue list -R cli/cli`, and print the output.
	args := []string{"issue", "list", "-R", "cli/cli"}
	stdOut, _, err := gh.Exec(args...)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(stdOut.String())
	
	// Use an API helper to grab repository tags
	client, err := gh.RESTClient(nil)
	if err != nil {
		fmt.Println(err)
		return
	}
	response := []struct{ Name string }{}
	err = client.Get("repos/cli/cli/tags", &response)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(response)
}

See examples for more use cases.

Reference Documentation

Full reference docs can be found on pkg.go.dev.

Contributing

If anything feels off, or if you feel that some functionality is missing, please check out the contributing page. There you will find instructions for sharing your feedback, and submitting pull requests to the project.

About

A Go module for interacting with gh and the GitHub API from the command line.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%