/go-github-client

a package to integrate Github REST API in go applications

Primary LanguageGoBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

go-github-client: Github v3 API Client for Go

Description

go-github-client is a Go package that aims to smoothly integrate Github Rest API in Go applications.

WARNING: This software is alpha quality so use it at your risks ;-)

We've extracted and refactored this package from cocode.io, our real-time web collaborative code editor integrated with GitHub Gist. The package is currently under active development because we're enhancing the integration between cocode.io and GitHub.

To keep you updated about future development, please feel free to watch this project on GitHub and to follow us on:

Of course, we're looking forward for your feedback & patches :)

Quickstart Examples

go get & go install

Download go-gothub-client and install go-github-client/client:

$ go get github.com/alcacoop/go-github-client/client

This command clone all the repository in "$GOPATH/src/github.com/alcacoop/go-github-client" and install "github.com/alcacoop/go-github-client/client" package in "$GOPATH/pkg/ARCH/github.com/alcacoop/go-github-client/client.a"

Now you can "go install" all the other subpackage (or just what you want):

$ go install github.com/alcacoop/go-github-client/users

$ go install github.com/alcacoop/go-github-client/gists

$ go install github.com/alcacoop/go-github-client/issues

go-github-client command line example applications

You can build and install some example applications using "go install":

$ go install github.com/alcacoop/go-github-client/examples/gh_get_userinfo

$ $GOPATH/bin/gh_get_userinfo
...

Create an authenticated GitHub API Client using Basic Authentication method

import (
  ghclient "github.com/alcacoop/go-github-client/client"
)

...

ghc, _ := ghclient.NewGitHubClient("testuser", "password", AUTH_USER_PASSWORD)

Get information about the authenticated user

import (
  ghusers "github.com/alcacoop/go-github-client/users"
)

usersc = ghusers.NewUsers(ghc)
res, err := usersc.GetUserInfo(*userinfo)
jr, err := res.Json()
name := jr.GetString("login")

Paginate public gists

import (
  ghgist "github.com/alcacoop/go-github-client/gists"
)

gistsc = ghgists.NewUsers(ghc)
res, err := gistsc.GetPublicGists()
jr, err := res.Json()

res2, err := res.NextPage()
jr2, err := res.Json()

More Info

API Reference

Examples