本文整理匯總了Golang中github.com/google/go-github/github.Client類的典型用法代碼示例。如果您正苦於以下問題:Golang Client類的具體用法?Golang Client怎麽用?Golang Client使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了Client類的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: allIssuesInRepo
func allIssuesInRepo(client *github.Client, owner, repo string) []github.Issue {
rate, _, err := client.RateLimits()
if err != nil {
fmt.Printf("error fetching rate limit (%v)\n", err)
} else {
fmt.Printf("API Rate Limit: %s\n", rate)
}
opt := &github.IssueListByRepoOptions{
State: "all",
ListOptions: github.ListOptions{
PerPage: 100,
},
}
var issues []github.Issue
for i := 0; ; i++ {
is, resp, err := client.Issues.ListByRepo(owner, repo, opt)
if err != nil {
fmt.Printf("error listing issues (%v)\n", err)
os.Exit(1)
}
issues = append(issues, is...)
if resp.NextPage == 0 {
break
}
opt.ListOptions.Page = resp.NextPage
fmt.Printf("list %d issues...\n", len(issues))
}
return issues
}
示例2: printRateLimit
func printRateLimit(client github.Client) {
rate, _, err := client.RateLimit()
if err != nil {
fmt.Println("Error fetching rate limit:", err)
} else {
remaining := int(rate.Reset.Sub(time.Now()).Seconds())
mins := remaining / 60
secs := remaining % 60
fmt.Printf("API Rate Limit: %d/%d remaining for %dm %ds \n\n", rate.Remaining, rate.Limit, mins, secs)
}
}
示例3: AsciiCat
func AsciiCat(cl *github.Client) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
msg := "Hello, Go In 5 Minutes Viewer!"
cat, _, err := cl.Octocat(msg)
if err != nil {
jsonErr(w, http.StatusInternalServerError, err)
return
}
w.WriteHeader(http.StatusOK)
w.Write([]byte(cat))
})
}
示例4: exceededRateLimit
func exceededRateLimit(client *github.Client) bool {
rate, _, err := client.RateLimit()
if err != nil {
fmt.Printf("Error checking rate limit: %s\n", err)
return false
}
// Check for a margin sufficient to run both examples.
if rate.Remaining < 4 {
fmt.Printf("Exceeded (or almost exceeded) GitHub API rate limit: %s. Try again later.\n", rate)
return true
}
return false
}
示例5: GetHookSchema
func GetHookSchema(c *github.Client, name string) (*HookSchema, *github.Response, error) {
req, err := c.NewRequest("GET", fmt.Sprintf("hooks/%v", name), nil)
if err != nil {
return nil, nil, err
}
hookSchema := new(HookSchema)
resp, err := c.Do(req, hookSchema)
if err != nil {
return nil, resp, err
}
return hookSchema, resp, err
}
示例6: GetHookSchemas
func GetHookSchemas(c *github.Client) ([]HookSchema, *github.Response, error) {
req, err := c.NewRequest("GET", "hooks", nil)
if err != nil {
return nil, nil, err
}
hookSchemas := new([]HookSchema)
resp, err := c.Do(req, hookSchemas)
if err != nil {
return nil, resp, err
}
return *hookSchemas, resp, err
}
示例7: GitCommitStatuses
func GitCommitStatuses(client *github.Client, owner, repo, sha string) (interface{}, *github.Response, error) {
u := fmt.Sprintf("repos/%v/%v/commits/%v/statuses", owner, repo, sha)
req, err := client.NewRequest("GET", u, nil)
if err != nil {
return nil, nil, err
}
var c interface{}
resp, err := client.Do(req, &c)
if err != nil {
return nil, resp, err
}
return c, resp, err
}
示例8: simulateAPIRequest
func simulateAPIRequest(t *testing.T, c *gh.Client) []*http.Request {
var requests []*http.Request
mux := http.NewServeMux()
mux.HandleFunc("/rate_limit", func(w http.ResponseWriter, req *http.Request) {
requests = append(requests, req)
w.Write([]byte("{}"))
})
srv := httptest.NewServer(mux)
defer srv.Close()
c.BaseURL, _ = url.Parse(srv.URL)
if _, _, err := c.RateLimits(); err != nil {
t.Fatalf("failed to retrieve rate limits; %v", err)
}
return requests
}
示例9: PutGitCommitStatus
func PutGitCommitStatus(client *github.Client, owner, repo, sha string, body *CommitStatus) (interface{}, *github.Response, error) {
u := fmt.Sprintf("repos/%v/%v/statuses/%v", owner, repo, sha)
if body == nil {
body = &CommitStatus{}
}
req, err := client.NewRequest("POST", u, body)
if err != nil {
return nil, nil, err
}
var c interface{}
resp, err := client.Do(req, c)
if err != nil {
return nil, resp, err
}
return c, resp, err
}
示例10: DownloadAsset
func DownloadAsset(client *github.Client, asset *github.ReleaseAsset) error {
req, _ := client.NewRequest("GET", *asset.URL, nil)
req.Header.Set("Accept", "application/octet-stream")
apiResponse, err := client.Do(req, nil)
assetResponse, err := http.Get(apiResponse.Response.Request.URL.String())
if err != nil {
return err
}
f, err := os.Create(flags.Output)
if err != nil {
return err
}
defer f.Close()
io.Copy(f, assetResponse.Body)
return nil
}