Documentation ¶
Index ¶
- Constants
- Variables
- func CaptureCrash()
- func CheckWriteable(filename string) error
- func DefaultGitHubHost() string
- func FormatError(action string, err error) (ee error)
- func IsHttpsProtocol() bool
- func ReadTemplate(kind, workdir string) (body string, err error)
- func SanitizeProjectName(name string) string
- type AuthorizationEntry
- type Branch
- func (b *Branch) IsMaster() bool
- func (b *Branch) IsRemote() bool
- func (b *Branch) LongName() string
- func (b *Branch) PushTarget(owner string, preferUpstream bool) (branch *Branch)
- func (b *Branch) RemoteName() string
- func (b *Branch) ShortName() string
- func (b *Branch) Upstream() (u *Branch, err error)
- type CIStatus
- type CIStatusResponse
- type CheckRun
- type CheckRunsResponse
- type Client
- func (client *Client) CommitPatch(project *Project, sha string) (patch io.ReadCloser, err error)
- func (client *Client) CreateIssue(project *Project, params interface{}) (issue *Issue, err error)
- func (client *Client) CreatePullRequest(project *Project, params map[string]interface{}) (pr *PullRequest, err error)
- func (client *Client) CreateRelease(project *Project, releaseParams *Release) (release *Release, err error)
- func (client *Client) CreateRepository(project *Project, description, homepage string, isPrivate bool) (repo *Repository, err error)
- func (client *Client) CurrentUser() (user *User, err error)
- func (client *Client) DeleteRelease(release *Release) (err error)
- func (client *Client) DeleteReleaseAsset(asset *ReleaseAsset) (err error)
- func (client *Client) DeleteRepository(project *Project) error
- func (client *Client) DownloadReleaseAsset(url string) (asset io.ReadCloser, err error)
- func (client *Client) EditRelease(release *Release, releaseParams map[string]interface{}) (updatedRelease *Release, err error)
- func (client *Client) FetchCIStatus(project *Project, sha string) (status *CIStatusResponse, err error)
- func (client *Client) FetchComments(project *Project, number string) (comments []Comment, err error)
- func (client *Client) FetchIssue(project *Project, number string) (issue *Issue, err error)
- func (client *Client) FetchIssues(project *Project, filterParams map[string]interface{}, limit int, ...) (issues []Issue, err error)
- func (client *Client) FetchLabels(project *Project) (labels []IssueLabel, err error)
- func (client *Client) FetchMilestones(project *Project) (milestones []Milestone, err error)
- func (client *Client) FetchPullRequests(project *Project, filterParams map[string]interface{}, limit int, ...) (pulls []PullRequest, err error)
- func (client *Client) FetchRelease(project *Project, tagName string) (*Release, error)
- func (client *Client) FetchReleases(project *Project, limit int, filter func(*Release) bool) (releases []Release, err error)
- func (client *Client) FindOrCreateToken(user, password, twoFactorCode string) (token string, err error)
- func (client *Client) ForkRepository(project *Project, params map[string]interface{}) (repo *Repository, err error)
- func (client *Client) GistPatch(id string) (patch io.ReadCloser, err error)
- func (client *Client) PullRequest(project *Project, id string) (pr *PullRequest, err error)
- func (client *Client) PullRequestPatch(project *Project, id string) (patch io.ReadCloser, err error)
- func (client *Client) Repository(project *Project) (repo *Repository, err error)
- func (client *Client) RequestReview(project *Project, prNumber int, params map[string]interface{}) (err error)
- func (client *Client) UpdateIssue(project *Project, issueNumber int, params map[string]interface{}) (err error)
- func (client *Client) UploadReleaseAsset(release *Release, filename, label string) (asset *ReleaseAsset, err error)
- type Comment
- type Config
- func (c *Config) DefaultHost() (host *Host, err error)
- func (c *Config) DetectToken() string
- func (c *Config) Find(host string) *Host
- func (c *Config) PromptForHost(host string) (h *Host, err error)
- func (c *Config) PromptForOTP() string
- func (c *Config) PromptForPassword(host, user string) (pass string)
- func (c *Config) PromptForUser(host string) (user string)
- type Editor
- type Gist
- type GistFile
- type GitHubRepo
- func (r *GitHubRepo) CurrentBranch() (branch *Branch, err error)
- func (r *GitHubRepo) CurrentProject() (project *Project, err error)
- func (r *GitHubRepo) DefaultBranch(remote *Remote) *Branch
- func (r *GitHubRepo) MainProject() (*Project, error)
- func (r *GitHubRepo) MainRemote() (*Remote, error)
- func (r *GitHubRepo) MasterBranch() *Branch
- func (r *GitHubRepo) RemoteBranchAndProject(owner string, preferUpstream bool) (branch *Branch, project *Project, err error)
- func (r *GitHubRepo) RemoteByName(name string) (*Remote, error)
- func (r *GitHubRepo) RemoteForProject(project *Project) (*Remote, error)
- func (r *GitHubRepo) RemoteForRepo(repo *Repository) (*Remote, error)
- func (r *GitHubRepo) UpstreamProject() (project *Project, err error)
- type GithubHostError
- type Host
- type Issue
- type IssueLabel
- type MessageBuilder
- type Milestone
- type Project
- type PullRequest
- type PullRequestSpec
- type Release
- type ReleaseAsset
- type Remote
- type Repository
- type RepositoryPermissions
- type Team
- type URL
- type User
Constants ¶
View Source
const ( GitHubHost string = "github.com" OAuthAppURL string = "https://hub.github.com/" )
View Source
const ( PullRequestTemplate = "pull_request_template" IssueTemplate = "issue_template" )
View Source
const Scissors = "------------------------ >8 ------------------------"
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 CheckWriteable ¶
CheckWriteable checks if config file is writeable. This should be called before asking for credentials and only if current operation needs to update the file. See issue #1314 for details.
func DefaultGitHubHost ¶
func DefaultGitHubHost() string
func FormatError ¶
func IsHttpsProtocol ¶
func IsHttpsProtocol() bool
func ReadTemplate ¶
func SanitizeProjectName ¶
Types ¶
type AuthorizationEntry ¶
type AuthorizationEntry struct {
Token string `json:"token"`
}
type Branch ¶
type Branch struct { Repo *GitHubRepo Name string }
func (*Branch) PushTarget ¶
func (*Branch) RemoteName ¶
type CIStatusResponse ¶
type CheckRunsResponse ¶
type CheckRunsResponse struct {
CheckRuns []CheckRun `json:"check_runs"`
}
type Client ¶
type Client struct {
Host *Host
}
func NewClientWithHost ¶
func (*Client) CommitPatch ¶
func (*Client) CreateIssue ¶
func (*Client) CreatePullRequest ¶
func (client *Client) CreatePullRequest(project *Project, params map[string]interface{}) (pr *PullRequest, err error)
func (*Client) CreateRelease ¶
func (*Client) CreateRepository ¶
func (*Client) CurrentUser ¶
func (*Client) DeleteRelease ¶
func (*Client) DeleteReleaseAsset ¶
func (client *Client) DeleteReleaseAsset(asset *ReleaseAsset) (err error)
func (*Client) DeleteRepository ¶
func (*Client) DownloadReleaseAsset ¶
func (client *Client) DownloadReleaseAsset(url string) (asset io.ReadCloser, err error)
func (*Client) EditRelease ¶
func (*Client) FetchCIStatus ¶
func (client *Client) FetchCIStatus(project *Project, sha string) (status *CIStatusResponse, err error)
func (*Client) FetchComments ¶
func (*Client) FetchIssue ¶
func (*Client) FetchIssues ¶
func (*Client) FetchLabels ¶
func (client *Client) FetchLabels(project *Project) (labels []IssueLabel, err error)
func (*Client) FetchMilestones ¶
func (*Client) FetchPullRequests ¶
func (client *Client) FetchPullRequests(project *Project, filterParams map[string]interface{}, limit int, filter func(*PullRequest) bool) (pulls []PullRequest, err error)
func (*Client) FetchRelease ¶
func (*Client) FetchReleases ¶
func (*Client) FindOrCreateToken ¶
func (*Client) ForkRepository ¶
func (client *Client) ForkRepository(project *Project, params map[string]interface{}) (repo *Repository, err error)
func (*Client) GistPatch ¶
func (client *Client) GistPatch(id string) (patch io.ReadCloser, err error)
func (*Client) PullRequest ¶
func (client *Client) PullRequest(project *Project, id string) (pr *PullRequest, err error)
func (*Client) PullRequestPatch ¶
func (*Client) Repository ¶
func (client *Client) Repository(project *Project) (repo *Repository, err error)
func (*Client) RequestReview ¶
func (*Client) UpdateIssue ¶
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 ¶
Public for testing purpose
func CurrentConfig ¶
func CurrentConfig() *Config
func (*Config) DefaultHost ¶
func (*Config) DetectToken ¶
func (*Config) PromptForOTP ¶
func (*Config) PromptForPassword ¶
func (*Config) PromptForUser ¶
type Editor ¶
type Editor struct { Program string Topic string File string Message string CS string // contains filtered or unexported fields }
func (*Editor) AddCommentedSection ¶
func (*Editor) DeleteFile ¶
func (*Editor) EditContent ¶
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) DefaultBranch ¶
func (r *GitHubRepo) DefaultBranch(remote *Remote) *Branch
func (*GitHubRepo) MainProject ¶
func (r *GitHubRepo) MainProject() (*Project, error)
func (*GitHubRepo) MainRemote ¶
func (r *GitHubRepo) MainRemote() (*Remote, error)
func (*GitHubRepo) MasterBranch ¶
func (r *GitHubRepo) MasterBranch() *Branch
func (*GitHubRepo) RemoteBranchAndProject ¶
func (*GitHubRepo) RemoteByName ¶
func (r *GitHubRepo) RemoteByName(name string) (*Remote, error)
func (*GitHubRepo) RemoteForProject ¶
func (r *GitHubRepo) RemoteForProject(project *Project) (*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 Issue ¶
type Issue struct { Number int `json:"number"` State string `json:"state"` Title string `json:"title"` Body string `json:"body"` User *User `json:"user"` PullRequest *PullRequest `json:"pull_request"` Head *PullRequestSpec `json:"head"` Base *PullRequestSpec `json:"base"` MergeCommitSha string `json:"merge_commit_sha"` MaintainerCanModify bool `json:"maintainer_can_modify"` Comments int `json:"comments"` Labels []IssueLabel `json:"labels"` Assignees []User `json:"assignees"` Milestone *Milestone `json:"milestone"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` MergedAt time.Time `json:"merged_at"` RequestedReviewers []User `json:"requested_reviewers"` RequestedTeams []Team `json:"requested_teams"` ApiUrl string `json:"url"` HtmlUrl string `json:"html_url"` ClosedBy *User `json:"closed_by"` }
type IssueLabel ¶
type MessageBuilder ¶
type MessageBuilder struct { Title string Filename string Message string Edit bool // contains filtered or unexported fields }
func (*MessageBuilder) AddCommentedSection ¶
func (b *MessageBuilder) AddCommentedSection(section string)
func (*MessageBuilder) Cleanup ¶
func (b *MessageBuilder) Cleanup()
func (*MessageBuilder) Extract ¶
func (b *MessageBuilder) Extract() (title, body string, err error)
type Project ¶
func NewProject ¶
func NewProjectFromRepo ¶
func NewProjectFromRepo(repo *Repository) (p *Project, err error)
type PullRequest ¶
type PullRequest Issue
func (*PullRequest) HasRequestedReviewer ¶
func (pr *PullRequest) HasRequestedReviewer(name string) bool
func (*PullRequest) HasRequestedTeam ¶
func (pr *PullRequest) HasRequestedTeam(name string) bool
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"` CreatedAt time.Time `json:"created_at"` PublishedAt time.Time `json:"published_at"` }
type ReleaseAsset ¶
type Repository ¶
type Repository struct { Name string `json:"name"` FullName string `json:"full_name"` Parent *Repository `json:"parent"` Owner *User `json:"owner"` Private bool `json:"private"` HasWiki bool `json:"has_wiki"` Permissions *RepositoryPermissions `json:"permissions"` HtmlUrl string `json:"html_url"` DefaultBranch string `json:"default_branch"` }
type RepositoryPermissions ¶
type URL ¶
func (URL) ProjectPath ¶
Click to show internal directories.
Click to hide internal directories.