thirdparty

package
v0.0.0-...-900fa13 Latest Latest
Warning

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

Go to latest
Published: Aug 11, 2015 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	GithubBase          = "https://github.com"
	NumGithubRetries    = 3
	GithubSleepTimeSecs = 1
	GithubAPIBase       = "https://api.github.com"
)

Variables

View Source
var (
	MaxRedirects = 10
)

Functions

func CopyS3File

func CopyS3File(awsAuth *aws.Auth, fromS3URL string, toS3URL string, permissionACL string) error

func GetGithubFileURL

func GetGithubFileURL(owner, repo, remotePath, revision string) string

GetGithubFileURL returns a URL that locates a github file given the owner, repo,remote path and revision

func GetGithubUser

func GetGithubUser(token string) (githubUser *GithubLoginUser, githubOrganizations []GithubOrganization, err error)

GetGithubUser does a GET from GitHub for the user, email, and organizations information and returns the GithubLoginUser and its associated GithubOrganizations after authentication

func GetS3File

func GetS3File(auth *aws.Auth, s3URL string) (io.ReadCloser, error)

func GetS3Location

func GetS3Location(s3URL string) (string, string, error)

This is used to get the bucket and filename, ignoring any username/password so that it can be securely printed in logs Returns: (bucket, filename, error)

func GitApplyNumstat

func GitApplyNumstat(patch string) (*bytes.Buffer, error)

GitApplyNumstat attempts to apply a given patch; it returns the patch's bytes if it is successful

func NewS3Session

func NewS3Session(auth *aws.Auth, region aws.Region) *s3.S3
func NextGithubPageLink(header http.Header) string

NextPageLink returns the link to the next page for a given header's "Link" key based on http://developer.github.com/v3/#pagination For full details see http://tools.ietf.org/html/rfc5988

func PutS3File

func PutS3File(pushAuth *aws.Auth, localFilePath, s3URL, contentType string) error

func S3CopyFile

func S3CopyFile(awsAuth *aws.Auth, fromS3Bucket, fromS3Path,
	toS3Bucket, toS3Path, permissionACL string) error

func SignAWSRequest

func SignAWSRequest(auth aws.Auth, canonicalPath string, req *http.Request)

Taken from https://github.com/mitchellh/goamz/blob/master/s3/sign.go Modified to access the headers/params on an HTTP req directly.

Types

type APIRequestError

type APIRequestError struct {
	Message          string `json:"message"`
	DocumentationUrl string `json:"documentation_url"`
}

When attempting to access the some API using authentication, requests may return 404 Not Found, instead of 403 Forbidden, under certain circumstances. For example, see https://developer.github.com/v3/#authentication. This struct should be used for errors in fetching a requested remote config.

func (APIRequestError) Error

func (are APIRequestError) Error() string

type APIResponseError

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

func (APIResponseError) Error

func (are APIResponseError) Error() string

type APIUnmarshalError

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

func (APIUnmarshalError) Error

func (ue APIUnmarshalError) Error() string

type AuthorDetails

type AuthorDetails struct {
	Login      string
	Id         int
	AvatarURL  string
	GravatarId string
	URL        string
}

type CommitAuthor

type CommitAuthor struct {
	Name  string
	Email string
	Date  time.Time
}

type CommitDetails

type CommitDetails struct {
	URL       string
	Author    CommitAuthor
	Committer CommitAuthor
	Message   string
	Tree      Tree
}

type CommitEvent

type CommitEvent struct {
	URL       string
	SHA       string
	Commit    CommitDetails
	Author    AuthorDetails
	Committer AuthorDetails
	Parents   []Tree
	Stats     Stats
	Files     []File
}

func GetCommitEvent

func GetCommitEvent(oauthToken, repoOwner, repo, githash string) (*CommitEvent,
	error)

type CopyObjectError

type CopyObjectError struct {
	XMLName   xml.Name `xml:"Error"`
	Code      string   `xml:"Code"`
	Message   string   `xml:"Message"`
	Resource  string   `xml:"Resource"`
	RequestId string   `xml:"RequestId"`
	ErrMsg    string
}

func (CopyObjectError) Error

func (e CopyObjectError) Error() string

type CopyObjectResult

type CopyObjectResult struct {
	XMLName      xml.Name `xml:"CopyObjectResult"`
	LastModified string   `xml:"LastModified"`
	ETag         string   `xml:"ETag"`
}

For our S3 copy operations, S3 either returns an CopyObjectResult or a CopyObjectError body. In order to determine what kind of response was returned we read the body returned from the API call

type CrowdUser

type CrowdUser struct {
	Active       bool   `json:"active"`
	DispName     string `json:"display-name"`
	EmailAddress string `json:"email"`
	FirstName    string `json:"first-name"`
	LastName     string `json:"last-name"`
	Name         string `json:"name"`
}

func (*CrowdUser) DisplayName

func (self *CrowdUser) DisplayName() string

func (*CrowdUser) Email

func (self *CrowdUser) Email() string

func (*CrowdUser) Username

func (self *CrowdUser) Username() string

type File

type File struct {
	FileName    string
	Additions   int
	Deletions   int
	Changes     int
	Status      string
	RawURL      string
	BlobURL     string
	ContentsURL string
	Patch       string
}

type FileDecodeError

type FileDecodeError struct {
	Message string
}

func (FileDecodeError) Error

func (f FileDecodeError) Error() string

type FileNotFoundError

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

This error should be returned when the requested remote configuration file can not be found.

func (FileNotFoundError) Error

func (nfe FileNotFoundError) Error() string

type GithubAuthParameters

type GithubAuthParameters struct {
	ClientId     string `json:"client_id"`
	ClientSecret string `json:"client_secret"`
	Code         string `json:"code"`
	RedirectUri  string `json:"redirect_uri"`
	State        string `json:"state"`
}

type GithubAuthResponse

type GithubAuthResponse struct {
	AccessToken string `json:"access_token"`
	Scope       string `json:"scope"`
	TokenType   string `json:"token_type"`
}

func GithubAuthenticate

func GithubAuthenticate(code, clientId, clientSecret string) (githubResponse *GithubAuthResponse, err error)

GithubAuthenticate does a POST to github with the code that it received, the ClientId, ClientSecret And returns the response which contains the accessToken associated with the user.

type GithubCommit

type GithubCommit struct {
	Url       string
	SHA       string
	Commit    CommitDetails
	Author    CommitAuthor
	Committer CommitAuthor
	Parents   []Parent
}

func GetGithubCommits

func GetGithubCommits(oauthToken, commitsURL string) (
	githubCommits []GithubCommit, header http.Header, err error)

GetGithubCommits returns a slice of GithubCommit objects from the given commitsURL when provided a valid oauth token

type GithubFile

type GithubFile struct {
	Name     string
	Path     string
	SHA      string
	Size     int
	URL      string
	HtmlURL  string
	GitURL   string
	Type     string
	Content  string
	Encoding string
	Links    Link
}

func GetGithubFile

func GetGithubFile(oauthToken, fileURL string) (
	githubFile *GithubFile, err error)

GetGithubFile returns a struct that contains the contents of files within a repository as Base64 encoded content.

type GithubLoginUser

type GithubLoginUser struct {
	Login            string
	Id               int
	Company          string
	EmailAddress     string `json:"email"`
	Name             string
	OrganizationsURL string
}

func (*GithubLoginUser) DisplayName

func (u *GithubLoginUser) DisplayName() string

func (*GithubLoginUser) Email

func (u *GithubLoginUser) Email() string

func (*GithubLoginUser) Username

func (u *GithubLoginUser) Username() string

type GithubOrganization

type GithubOrganization struct {
	Login string `json:"login"`
	Url   string `json:"url"`
}

type GithubUser

type GithubUser struct {
	Active       bool   `json:"active"`
	DispName     string `json:"display-name"`
	EmailAddress string `json:"email"`
	FirstName    string `json:"first-name"`
	LastName     string `json:"last-name"`
	Name         string `json:"name"`
}

type JiraHandler

type JiraHandler struct {
	MyHttp     httpGet
	JiraServer string
	UserName   string
	Password   string
}

func NewJiraHandler

func NewJiraHandler(server string, user string, password string) JiraHandler

func (*JiraHandler) GetJIRATicket

func (jiraHandler *JiraHandler) GetJIRATicket(key string) (*JiraTicket, error)

func (*JiraHandler) JQLSearch

func (jiraHandler *JiraHandler) JQLSearch(query string) (*JiraSearchResults, error)

JQLSearch runs the given JQL query against the given jira instance and returns the results in a JiraSearchResults

type JiraProject

type JiraProject struct {
	Key        string            `json:"key"`
	Name       string            `json:"name"`
	AvatarUrls map[string]string `json:"avatarUrls"`
	// contains filtered or unexported fields
}

type JiraSearchResults

type JiraSearchResults struct {
	Expand     string       `json:"expand"`
	StartAt    int          `json:"startAt"`
	MaxResults int          `json:"maxResults"`
	Total      int          `json:"total"`
	Issues     []JiraTicket `json:"issues"`
}

JiraSearchResults marshal to and unmarshal from the json search results returned by the rest api at /rest/api/2/search?jql={jql}

type JiraStatus

type JiraStatus struct {
	Name string `json:"name"`
	// contains filtered or unexported fields
}

type JiraTicket

type JiraTicket struct {
	Key    string        `json:"key"`
	Expand string        `json:"expand"`
	Fields *TicketFields `json:"fields"`
	// contains filtered or unexported fields
}

JiraTickets marshal to and unmarshal from the json issue returned by the rest api at /rest/api/latest/issue/{ticket_id}

type Link struct {
	Self string
	Git  string
	Html string
}

type Parent

type Parent struct {
	Url string
	Sha string
}

type PatchSummary

type PatchSummary struct {
	Name      string
	Additions int
	Deletions int
}

Github API response structs

type RESTCrowdService

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

func NewRESTCrowdService

func NewRESTCrowdService(crowdUsername string, crowdPassword string, baseUrl string) (*RESTCrowdService, error)

func (*RESTCrowdService) CreateSession

func (self *RESTCrowdService) CreateSession(username, password string) (*Session, error)

func (*RESTCrowdService) GetUser

func (self *RESTCrowdService) GetUser(username string) (*CrowdUser, error)

func (*RESTCrowdService) GetUserFromToken

func (self *RESTCrowdService) GetUserFromToken(token string) (*CrowdUser, error)

type ResponseReadError

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

func (ResponseReadError) Error

func (re ResponseReadError) Error() string

type Session

type Session struct {
	Expand      string      `json:"active"`
	CreatedDate int64       `json:"created-date"`
	ExpiryDate  int64       `json:"expiry-date"`
	User        SessionUser `json:"user"`
	Link        SessionLink `json:"link"`
	Token       string      `json:"token"`
}
type SessionLink struct {
	Href string `json:"href"`
	Rel  string `json:"rel"`
}

type SessionUser

type SessionUser struct {
	Name string      `json:"name"`
	Link SessionLink `json:"link"`
}

type Stats

type Stats struct {
	Additions int
	Deletions int
	Total     int
}

type Summary

type Summary struct {
	Name      string `bson:"filename"`
	Additions int    `bson:"additions"`
	Deletions int    `bson:"deletions"`
}

this stores summary patch information

func ParseGitSummary

func ParseGitSummary(gitOutput *bytes.Buffer) (summaries []Summary, err error)

ParseGitSummary takes in a buffer of data and parses it into a slice of git summaries. It returns an error if it is unable to parse the data

type TicketFields

type TicketFields struct {
	IssueType   *TicketType  `json:"issuetype"`
	Summary     string       `json:"summary"`
	Description string       `json:"description"`
	Reporter    *User        `json:"reporter"`
	Assignee    *User        `json:"assignee"`
	Project     *JiraProject `json:"project"`
	Created     string       `json:"created"`
	Updated     string       `json:"updated"`
	Status      *JiraStatus  `json:"status"`
}

type TicketType

type TicketType struct {
	Description string `json:"description"`
	IconUrl     string `json:"iconUrl"`
	Name        string `json:"name"`
	Subtask     bool   `json:"subtask"`
	// contains filtered or unexported fields
}

type Tree

type Tree struct {
	URL string
	SHA string
}

type User

type User struct {
	Self         string            `json:"self"`
	Name         string            `json:"name"`
	EmailAddress string            `json:"emailAddress"`
	DisplayName  string            `json:"displayName"`
	Active       bool              `json:"active"`
	TimeZone     string            `json:"timeZone"`
	AvatarUrls   map[string]string `json:"avatarUrls"`
}

type WrapCrowdUser

type WrapCrowdUser struct {
	User CrowdUser `json:"user"`
}

type YAMLFormatError

type YAMLFormatError struct {
	Message string
}

func (YAMLFormatError) Error

func (y YAMLFormatError) Error() string

Jump to

Keyboard shortcuts

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