github

package
v2.3.0-pre3+incompatible Latest Latest
Warning

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

Go to latest
Published: Aug 21, 2016 License: MIT Imports: 29 Imported by: 0

Documentation

Index

Constants

View Source
const (
	GitHubHost    string = "github.com"
	GitHubApiHost string = "api.github.com"
	OAuthAppURL   string = "http://hub.github.com/"
)

Variables

View Source
var (
	GitHubHostEnv = os.Getenv("GITHUB_HOST")
)
View Source
var (
	OriginNamesInLookupOrder = []string{"upstream", "github", "origin"}
)
View Source
var UserAgent = "Hub " + version.Version

Functions

func CaptureCrash

func CaptureCrash()

func DefaultGitHubHost

func DefaultGitHubHost() string

func FormatError

func FormatError(action string, err error) (ee error)

func GetIssueTemplate

func GetIssueTemplate() string

func GetPullRequestTemplate

func GetPullRequestTemplate() string

func IsHttpsProtocol

func IsHttpsProtocol() bool

func SanitizeProjectName

func SanitizeProjectName(name string) string

Types

type AuthError

type AuthError struct {
	Err error
}

func (*AuthError) Error

func (e *AuthError) Error() string

func (*AuthError) IsDuplicatedTokenError

func (e *AuthError) IsDuplicatedTokenError() bool

func (*AuthError) IsRequired2FACodeError

func (e *AuthError) IsRequired2FACodeError() bool

type Branch

type Branch struct {
	Repo *GitHubRepo
	Name string
}

func (*Branch) IsMaster

func (b *Branch) IsMaster() bool

func (*Branch) IsRemote

func (b *Branch) IsRemote() bool

func (*Branch) LongName

func (b *Branch) LongName() string

func (*Branch) PushTarget

func (b *Branch) PushTarget(owner string, preferUpstream bool) (branch *Branch)

func (*Branch) RemoteName

func (b *Branch) RemoteName() string

func (*Branch) ShortName

func (b *Branch) ShortName() string

func (*Branch) Upstream

func (b *Branch) Upstream() (u *Branch, err error)

type CIStatus

type CIStatus struct {
	State     string `json:"state"`
	Context   string `json:"context"`
	TargetUrl string `json:"target_url"`
}

type CIStatusResponse

type CIStatusResponse struct {
	State    string     `json:"state"`
	Statuses []CIStatus `json:"statuses"`
}

type Client

type Client struct {
	Host *Host
}

func NewClient

func NewClient(h string) *Client

func NewClientWithHost

func NewClientWithHost(host *Host) *Client

func (*Client) CommitPatch

func (client *Client) CommitPatch(project *Project, sha string) (patch io.ReadCloser, err error)

func (*Client) CreateIssue

func (client *Client) CreateIssue(project *Project, params interface{}) (issue *Issue, err error)

func (*Client) CreatePullRequest

func (client *Client) CreatePullRequest(project *Project, params map[string]interface{}) (pr *PullRequest, err error)

func (*Client) CreateRelease

func (client *Client) CreateRelease(project *Project, releaseParams *Release) (release *Release, err error)

func (*Client) CreateRepository

func (client *Client) CreateRepository(project *Project, description, homepage string, isPrivate bool) (repo *octokit.Repository, err error)

func (*Client) CurrentUser

func (client *Client) CurrentUser() (user *octokit.User, err error)

func (*Client) DeleteReleaseAsset

func (client *Client) DeleteReleaseAsset(asset *ReleaseAsset) (err error)

func (*Client) DownloadReleaseAsset

func (client *Client) DownloadReleaseAsset(url string) (asset io.ReadCloser, err error)

func (*Client) EditRelease

func (client *Client) EditRelease(release *Release, releaseParams map[string]interface{}) (updatedRelease *Release, err error)

func (*Client) FetchCIStatus

func (client *Client) FetchCIStatus(project *Project, sha string) (status *CIStatusResponse, err error)

func (*Client) FetchIssues

func (client *Client) FetchIssues(project *Project, filterParams map[string]interface{}) (issues []Issue, err error)

func (*Client) FetchRelease

func (client *Client) FetchRelease(project *Project, tagName string) (foundRelease *Release, err error)

func (*Client) FetchReleases

func (client *Client) FetchReleases(project *Project) (response []Release, err error)

func (*Client) FindOrCreateToken

func (client *Client) FindOrCreateToken(user, password, twoFactorCode string) (token string, err error)

func (*Client) ForkRepository

func (client *Client) ForkRepository(project *Project) (repo *Repository, err error)

func (*Client) GhLatestTagName

func (client *Client) GhLatestTagName() (tagName string, err error)

func (*Client) GistPatch

func (client *Client) GistPatch(id string) (patch io.ReadCloser, err error)

func (*Client) IsRepositoryExist

func (client *Client) IsRepositoryExist(project *Project) bool

func (*Client) PullRequest

func (client *Client) PullRequest(project *Project, id string) (pr *PullRequest, err error)

func (*Client) PullRequestPatch

func (client *Client) PullRequestPatch(project *Project, id string) (patch io.ReadCloser, err error)

func (*Client) Repository

func (client *Client) Repository(project *Project) (repo *octokit.Repository, err error)

func (*Client) UpdateIssue

func (client *Client) UpdateIssue(project *Project, issueNumber int, params map[string]interface{}) (err error)

func (*Client) UploadReleaseAsset

func (client *Client) UploadReleaseAsset(release *Release, filename, label string) (asset *ReleaseAsset, err error)

type Config

type Config struct {
	Hosts []*Host `toml:"hosts"`
}

func CreateTestConfigs

func CreateTestConfigs(user, token string) *Config

Public for testing purpose

func CurrentConfig

func CurrentConfig() *Config

func (*Config) DefaultHost

func (c *Config) DefaultHost() (host *Host, err error)

func (*Config) DetectToken

func (c *Config) DetectToken() string

func (*Config) Find

func (c *Config) Find(host string) *Host

func (*Config) PromptForHost

func (c *Config) PromptForHost(host string) (h *Host, err error)

func (*Config) PromptForOTP

func (c *Config) PromptForOTP() string

func (*Config) PromptForPassword

func (c *Config) PromptForPassword(host, user string) (pass string)

func (*Config) PromptForUser

func (c *Config) PromptForUser(host string) (user string)

type Editor

type Editor struct {
	Program string
	Topic   string
	File    string
	Message string
	CS      string
	// contains filtered or unexported fields
}

func NewEditor

func NewEditor(filePrefix, topic, message string) (editor *Editor, err error)

func (*Editor) DeleteFile

func (e *Editor) DeleteFile() error

func (*Editor) EditTitleAndBody

func (e *Editor) EditTitleAndBody() (title, body string, err error)

type GitHubRepo

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

func LocalRepo

func LocalRepo() (repo *GitHubRepo, err error)

func (*GitHubRepo) CurrentBranch

func (r *GitHubRepo) CurrentBranch() (branch *Branch, err error)

func (*GitHubRepo) CurrentProject

func (r *GitHubRepo) CurrentProject() (project *Project, err error)

func (*GitHubRepo) MainProject

func (r *GitHubRepo) MainProject() (project *Project, err error)

func (*GitHubRepo) MainRemote

func (r *GitHubRepo) MainRemote() (remote *Remote, err error)

func (*GitHubRepo) MasterBranch

func (r *GitHubRepo) MasterBranch() (branch *Branch)

func (*GitHubRepo) OriginRemote

func (r *GitHubRepo) OriginRemote() (remote *Remote, err error)

func (*GitHubRepo) RemoteBranchAndProject

func (r *GitHubRepo) RemoteBranchAndProject(owner string, preferUpstream bool) (branch *Branch, project *Project, err error)

func (*GitHubRepo) RemoteByName

func (r *GitHubRepo) RemoteByName(name string) (*Remote, error)

func (*GitHubRepo) RemoteForRepo

func (r *GitHubRepo) RemoteForRepo(repo *Repository) (*Remote, error)

func (*GitHubRepo) UpstreamProject

func (r *GitHubRepo) UpstreamProject() (project *Project, err error)

type GithubHostError

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

func (*GithubHostError) Error

func (e *GithubHostError) Error() string

type Host

type Host struct {
	Host        string `toml:"host"`
	User        string `toml:"user"`
	AccessToken string `toml:"access_token"`
	Protocol    string `toml:"protocol"`
}

type Issue

type Issue struct {
	Number      int          `json:"number"`
	State       string       `json:"state"`
	Title       string       `json:"title"`
	Body        string       `json:"body"`
	User        *User        `json:"user"`
	Assignees   []User       `json:"assignees"`
	Labels      []IssueLabel `json:"labels"`
	PullRequest *PullRequest `json:"pull_request"`
	HtmlUrl     string       `json:"html_url"`
	Comments    int          `json:"comments"`
	Milestone   *Milestone   `json:"milestone"`
	CreatedAt   time.Time    `json:"created_at"`
	UpdatedAt   time.Time    `json:"updated_at"`
}

type IssueLabel

type IssueLabel struct {
	Name  string `json:"name"`
	Color string `json:"color"`
}

type Milestone

type Milestone struct {
	Number int    `json:"number"`
	Title  string `json:"title"`
}

type Project

type Project struct {
	Name     string
	Owner    string
	Host     string
	Protocol string
}

func NewProject

func NewProject(owner, name, host string) *Project

func NewProjectFromURL

func NewProjectFromURL(url *url.URL) (p *Project, err error)

func (*Project) GitURL

func (p *Project) GitURL(name, owner string, isSSH bool) (url string)

func (*Project) SameAs

func (p *Project) SameAs(other *Project) bool

func (Project) String

func (p Project) String() string

func (*Project) WebURL

func (p *Project) WebURL(name, owner, path string) string

type PullRequest

type PullRequest struct {
	ApiUrl  string           `json:"url"`
	Number  int              `json:"number"`
	HtmlUrl string           `json:"html_url"`
	Title   string           `json:"title"`
	Head    *PullRequestSpec `json:"head"`
	Base    *PullRequestSpec `json:"base"`
}

func (*PullRequest) IsSameRepo

func (pr *PullRequest) IsSameRepo() bool

type PullRequestSpec

type PullRequestSpec struct {
	Label string      `json:"label"`
	Ref   string      `json:"ref"`
	Sha   string      `json:"sha"`
	Repo  *Repository `json:"repo"`
}

type Release

type Release struct {
	Name            string         `json:"name"`
	TagName         string         `json:"tag_name"`
	TargetCommitish string         `json:"target_commitish"`
	Body            string         `json:"body"`
	Draft           bool           `json:"draft"`
	Prerelease      bool           `json:"prerelease"`
	Assets          []ReleaseAsset `json:"assets"`
	TarballUrl      string         `json:"tarball_url"`
	ZipballUrl      string         `json:"zipball_url"`
	HtmlUrl         string         `json:"html_url"`
	UploadUrl       string         `json:"upload_url"`
	ApiUrl          string         `json:"url"`
}

type ReleaseAsset

type ReleaseAsset struct {
	Name        string `json:"name"`
	Label       string `json:"label"`
	DownloadUrl string `json:"browser_download_url"`
	ApiUrl      string `json:"url"`
}

type Remote

type Remote struct {
	Name    string
	URL     *url.URL
	PushURL *url.URL
}

func Remotes

func Remotes() (remotes []Remote, err error)

func (*Remote) Project

func (remote *Remote) Project() (*Project, error)

func (*Remote) String

func (remote *Remote) String() string

type Repository

type Repository struct {
	Name        string                 `json:"name"`
	Parent      *Repository            `json:"parent"`
	Owner       *User                  `json:"owner"`
	Private     bool                   `json:"private"`
	Permissions *RepositoryPermissions `json:"permissions"`
	HtmlUrl     string                 `json:"html_url"`
}

type RepositoryPermissions

type RepositoryPermissions struct {
	Admin bool `json:"admin"`
	Push  bool `json:"push"`
	Pull  bool `json:"pull"`
}

type URL

type URL struct {
	url.URL
	*Project
}

func ParseURL

func ParseURL(rawurl string) (*URL, error)

func (URL) ProjectPath

func (url URL) ProjectPath() (projectPath string)

type User

type User struct {
	Login string `json:"login"`
}

Jump to

Keyboard shortcuts

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