Documentation ¶
Index ¶
- Constants
- Variables
- func CopyS3File(awsAuth *aws.Auth, fromS3URL string, toS3URL string, permissionACL string) error
- func GetGithubFileURL(owner, repo, remotePath, revision string) string
- func GetGithubUser(token string) (githubUser *GithubLoginUser, githubOrganizations []GithubOrganization, ...)
- func GetS3File(auth *aws.Auth, s3URL string) (io.ReadCloser, error)
- func GetS3Location(s3URL string) (string, string, error)
- func GitApplyNumstat(patch string) (*bytes.Buffer, error)
- func NewS3Session(auth *aws.Auth, region aws.Region) *s3.S3
- func NextGithubPageLink(header http.Header) string
- func PutS3File(pushAuth *aws.Auth, localFilePath, s3URL, contentType string) error
- func S3CopyFile(awsAuth *aws.Auth, ...) error
- func SignAWSRequest(auth aws.Auth, canonicalPath string, req *http.Request)
- type APIRequestError
- type APIResponseError
- type APIUnmarshalError
- type AuthorDetails
- type CommitAuthor
- type CommitDetails
- type CommitEvent
- type CopyObjectError
- type CopyObjectResult
- type CrowdUser
- type File
- type FileDecodeError
- type FileNotFoundError
- type GithubAuthParameters
- type GithubAuthResponse
- type GithubCommit
- type GithubFile
- type GithubLoginUser
- type GithubOrganization
- type GithubUser
- type JiraHandler
- type JiraProject
- type JiraSearchResults
- type JiraStatus
- type JiraTicket
- type Link
- type Parent
- type PatchSummary
- type RESTCrowdService
- type ResponseReadError
- type Session
- type SessionLink
- type SessionUser
- type Stats
- type Summary
- type TicketFields
- type TicketType
- type Tree
- type User
- type WrapCrowdUser
- type YAMLFormatError
Constants ¶
const ( GithubBase = "https://github.com" NumGithubRetries = 3 GithubSleepTimeSecs = 1 GithubAPIBase = "https://api.github.com" )
Variables ¶
var (
MaxRedirects = 10
)
Functions ¶
func CopyS3File ¶
func GetGithubFileURL ¶
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 GetS3Location ¶
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 ¶
GitApplyNumstat attempts to apply a given patch; it returns the patch's bytes if it is successful
func NextGithubPageLink ¶
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 S3CopyFile ¶
func SignAWSRequest ¶
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 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 ¶
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 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 GithubUser ¶
type JiraHandler ¶
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 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 PatchSummary ¶
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 ¶
type SessionUser ¶
type SessionUser struct { Name string `json:"name"` Link SessionLink `json:"link"` }
type Summary ¶
type Summary struct { Name string `bson:"filename"` Additions int `bson:"additions"` Deletions int `bson:"deletions"` }
this stores summary patch information
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 WrapCrowdUser ¶
type WrapCrowdUser struct {
User CrowdUser `json:"user"`
}
type YAMLFormatError ¶
type YAMLFormatError struct {
Message string
}
func (YAMLFormatError) Error ¶
func (y YAMLFormatError) Error() string