mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
Output from 'dep status': PROJECT CONSTRAINT VERSION REVISION LATEST PKGS USED cloud.google.com/go v0.23.0 v0.23.0 0fd7230 v0.23.0 1 github.com/briandowns/openweathermap ^0.11.0 0.11 1b87579 0.11 1 github.com/gdamore/encoding branch master branch master b23993c b23993c 1 github.com/gdamore/tcell ^1.0.0 v1.0.0 061d51a v1.0.0 2 github.com/go-test/deep ^1.0.1 v1.0.1 6592d9c v1.0.1 1 github.com/golang/protobuf v1.1.0 v1.1.0 b4deda0 v1.1.0 1 github.com/google/go-github branch master branch master 2ae5df7 2ae5df7 1 github.com/google/go-querystring branch master branch master 53e6ce1 53e6ce1 1 github.com/jessevdk/go-flags ^1.4.0 v1.4.0 c6ca198 v1.4.0 1 github.com/lucasb-eyer/go-colorful v1.0 v1.0 345fbb3 v1.0 1 github.com/mattn/go-runewidth v0.0.2 v0.0.2 9e777a8 v0.0.2 1 github.com/olebedev/config branch master branch master 9a10d05 9a10d05 1 github.com/radovskyb/watcher ^1.0.2 v1.0.2 6145e14 v1.0.2 1 github.com/rivo/tview branch master branch master 71ecf1f 71ecf1f 1 github.com/yfronto/newrelic branch master branch master f7fa0c6 f7fa0c6 1 golang.org/x/net branch master branch master 1e49130 1e49130 2 golang.org/x/oauth2 branch master branch master 1e0a3fa 1e0a3fa 5 golang.org/x/text v0.3.0 v0.3.0 f21a4df v0.3.0 5 google.golang.org/api branch master branch master 00e3bb8 00e3bb8 4 google.golang.org/appengine v1.0.0 v1.0.0 150dc57 v1.0.0 10 gopkg.in/yaml.v2 ^2.2.1 v2.2.1 5420a8b v2.2.1 1 See https://golang.github.io/dep/docs/daily-dep.html
258 lines
7.1 KiB
Go
258 lines
7.1 KiB
Go
// Copyright 2014 The go-github AUTHORS. All rights reserved.
|
||
//
|
||
// Use of this source code is governed by a BSD-style
|
||
// license that can be found in the LICENSE file.
|
||
|
||
package github
|
||
|
||
import (
|
||
"bytes"
|
||
"context"
|
||
"fmt"
|
||
"net/url"
|
||
)
|
||
|
||
// MarkdownOptions specifies optional parameters to the Markdown method.
|
||
type MarkdownOptions struct {
|
||
// Mode identifies the rendering mode. Possible values are:
|
||
// markdown - render a document as plain Markdown, just like
|
||
// README files are rendered.
|
||
//
|
||
// gfm - to render a document as user-content, e.g. like user
|
||
// comments or issues are rendered. In GFM mode, hard line breaks are
|
||
// always taken into account, and issue and user mentions are linked
|
||
// accordingly.
|
||
//
|
||
// Default is "markdown".
|
||
Mode string
|
||
|
||
// Context identifies the repository context. Only taken into account
|
||
// when rendering as "gfm".
|
||
Context string
|
||
}
|
||
|
||
type markdownRequest struct {
|
||
Text *string `json:"text,omitempty"`
|
||
Mode *string `json:"mode,omitempty"`
|
||
Context *string `json:"context,omitempty"`
|
||
}
|
||
|
||
// Markdown renders an arbitrary Markdown document.
|
||
//
|
||
// GitHub API docs: https://developer.github.com/v3/markdown/
|
||
func (c *Client) Markdown(ctx context.Context, text string, opt *MarkdownOptions) (string, *Response, error) {
|
||
request := &markdownRequest{Text: String(text)}
|
||
if opt != nil {
|
||
if opt.Mode != "" {
|
||
request.Mode = String(opt.Mode)
|
||
}
|
||
if opt.Context != "" {
|
||
request.Context = String(opt.Context)
|
||
}
|
||
}
|
||
|
||
req, err := c.NewRequest("POST", "markdown", request)
|
||
if err != nil {
|
||
return "", nil, err
|
||
}
|
||
|
||
buf := new(bytes.Buffer)
|
||
resp, err := c.Do(ctx, req, buf)
|
||
if err != nil {
|
||
return "", resp, err
|
||
}
|
||
|
||
return buf.String(), resp, nil
|
||
}
|
||
|
||
// ListEmojis returns the emojis available to use on GitHub.
|
||
//
|
||
// GitHub API docs: https://developer.github.com/v3/emojis/
|
||
func (c *Client) ListEmojis(ctx context.Context) (map[string]string, *Response, error) {
|
||
req, err := c.NewRequest("GET", "emojis", nil)
|
||
if err != nil {
|
||
return nil, nil, err
|
||
}
|
||
|
||
var emoji map[string]string
|
||
resp, err := c.Do(ctx, req, &emoji)
|
||
if err != nil {
|
||
return nil, resp, err
|
||
}
|
||
|
||
return emoji, resp, nil
|
||
}
|
||
|
||
// CodeOfConduct represents a code of conduct.
|
||
type CodeOfConduct struct {
|
||
Name *string `json:"name,omitempty"`
|
||
Key *string `json:"key,omitempty"`
|
||
URL *string `json:"url,omitempty"`
|
||
Body *string `json:"body,omitempty"`
|
||
}
|
||
|
||
func (c *CodeOfConduct) String() string {
|
||
return Stringify(c)
|
||
}
|
||
|
||
// ListCodesOfConduct returns all codes of conduct.
|
||
//
|
||
// GitHub API docs: https://developer.github.com/v3/codes_of_conduct/#list-all-codes-of-conduct
|
||
func (c *Client) ListCodesOfConduct(ctx context.Context) ([]*CodeOfConduct, *Response, error) {
|
||
req, err := c.NewRequest("GET", "codes_of_conduct", nil)
|
||
if err != nil {
|
||
return nil, nil, err
|
||
}
|
||
|
||
// TODO: remove custom Accept header when this API fully launches.
|
||
req.Header.Set("Accept", mediaTypeCodesOfConductPreview)
|
||
|
||
var cs []*CodeOfConduct
|
||
resp, err := c.Do(ctx, req, &cs)
|
||
if err != nil {
|
||
return nil, resp, err
|
||
}
|
||
|
||
return cs, resp, nil
|
||
}
|
||
|
||
// GetCodeOfConduct returns an individual code of conduct.
|
||
//
|
||
// https://developer.github.com/v3/codes_of_conduct/#get-an-individual-code-of-conduct
|
||
func (c *Client) GetCodeOfConduct(ctx context.Context, key string) (*CodeOfConduct, *Response, error) {
|
||
u := fmt.Sprintf("codes_of_conduct/%s", key)
|
||
req, err := c.NewRequest("GET", u, nil)
|
||
if err != nil {
|
||
return nil, nil, err
|
||
}
|
||
|
||
// TODO: remove custom Accept header when this API fully launches.
|
||
req.Header.Set("Accept", mediaTypeCodesOfConductPreview)
|
||
|
||
coc := new(CodeOfConduct)
|
||
resp, err := c.Do(ctx, req, coc)
|
||
if err != nil {
|
||
return nil, resp, err
|
||
}
|
||
|
||
return coc, resp, nil
|
||
}
|
||
|
||
// APIMeta represents metadata about the GitHub API.
|
||
type APIMeta struct {
|
||
// An Array of IP addresses in CIDR format specifying the addresses
|
||
// that incoming service hooks will originate from on GitHub.com.
|
||
Hooks []string `json:"hooks,omitempty"`
|
||
|
||
// An Array of IP addresses in CIDR format specifying the Git servers
|
||
// for GitHub.com.
|
||
Git []string `json:"git,omitempty"`
|
||
|
||
// Whether authentication with username and password is supported.
|
||
// (GitHub Enterprise instances using CAS or OAuth for authentication
|
||
// will return false. Features like Basic Authentication with a
|
||
// username and password, sudo mode, and two-factor authentication are
|
||
// not supported on these servers.)
|
||
VerifiablePasswordAuthentication *bool `json:"verifiable_password_authentication,omitempty"`
|
||
|
||
// An array of IP addresses in CIDR format specifying the addresses
|
||
// which serve GitHub Pages websites.
|
||
Pages []string `json:"pages,omitempty"`
|
||
|
||
// An Array of IP addresses specifying the addresses that source imports
|
||
// will originate from on GitHub.com.
|
||
Importer []string `json:"importer,omitempty"`
|
||
}
|
||
|
||
// APIMeta returns information about GitHub.com, the service. Or, if you access
|
||
// this endpoint on your organization’s GitHub Enterprise installation, this
|
||
// endpoint provides information about that installation.
|
||
//
|
||
// GitHub API docs: https://developer.github.com/v3/meta/
|
||
func (c *Client) APIMeta(ctx context.Context) (*APIMeta, *Response, error) {
|
||
req, err := c.NewRequest("GET", "meta", nil)
|
||
if err != nil {
|
||
return nil, nil, err
|
||
}
|
||
|
||
meta := new(APIMeta)
|
||
resp, err := c.Do(ctx, req, meta)
|
||
if err != nil {
|
||
return nil, resp, err
|
||
}
|
||
|
||
return meta, resp, nil
|
||
}
|
||
|
||
// Octocat returns an ASCII art octocat with the specified message in a speech
|
||
// bubble. If message is empty, a random zen phrase is used.
|
||
func (c *Client) Octocat(ctx context.Context, message string) (string, *Response, error) {
|
||
u := "octocat"
|
||
if message != "" {
|
||
u = fmt.Sprintf("%s?s=%s", u, url.QueryEscape(message))
|
||
}
|
||
|
||
req, err := c.NewRequest("GET", u, nil)
|
||
if err != nil {
|
||
return "", nil, err
|
||
}
|
||
|
||
buf := new(bytes.Buffer)
|
||
resp, err := c.Do(ctx, req, buf)
|
||
if err != nil {
|
||
return "", resp, err
|
||
}
|
||
|
||
return buf.String(), resp, nil
|
||
}
|
||
|
||
// Zen returns a random line from The Zen of GitHub.
|
||
//
|
||
// see also: http://warpspire.com/posts/taste/
|
||
func (c *Client) Zen(ctx context.Context) (string, *Response, error) {
|
||
req, err := c.NewRequest("GET", "zen", nil)
|
||
if err != nil {
|
||
return "", nil, err
|
||
}
|
||
|
||
buf := new(bytes.Buffer)
|
||
resp, err := c.Do(ctx, req, buf)
|
||
if err != nil {
|
||
return "", resp, err
|
||
}
|
||
|
||
return buf.String(), resp, nil
|
||
}
|
||
|
||
// ServiceHook represents a hook that has configuration settings, a list of
|
||
// available events, and default events.
|
||
type ServiceHook struct {
|
||
Name *string `json:"name,omitempty"`
|
||
Events []string `json:"events,omitempty"`
|
||
SupportedEvents []string `json:"supported_events,omitempty"`
|
||
Schema [][]string `json:"schema,omitempty"`
|
||
}
|
||
|
||
func (s *ServiceHook) String() string {
|
||
return Stringify(s)
|
||
}
|
||
|
||
// ListServiceHooks lists all of the available service hooks.
|
||
//
|
||
// GitHub API docs: https://developer.github.com/webhooks/#services
|
||
func (c *Client) ListServiceHooks(ctx context.Context) ([]*ServiceHook, *Response, error) {
|
||
u := "hooks"
|
||
req, err := c.NewRequest("GET", u, nil)
|
||
if err != nil {
|
||
return nil, nil, err
|
||
}
|
||
|
||
var hooks []*ServiceHook
|
||
resp, err := c.Do(ctx, req, &hooks)
|
||
if err != nil {
|
||
return nil, resp, err
|
||
}
|
||
|
||
return hooks, resp, nil
|
||
}
|