gits

package
v2.1.65 Latest Latest
Warning

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

Go to latest
Published: Jun 11, 2020 License: Apache-2.0 Imports: 39 Imported by: 9

Documentation

Index

Constants

View Source
const (
	// KindBitBucketCloud git kind for BitBucket Cloud
	KindBitBucketCloud = "bitbucketcloud"
	// KindBitBucketServer git kind for BitBucket Server
	KindBitBucketServer = "bitbucketserver"
	// KindGitea git kind for gitea
	KindGitea = "gitea"
	// KindGitlab git kind for gitlab
	KindGitlab = "gitlab"
	// KindGitHub git kind for github
	KindGitHub = "github"
	// KindGitFake git kind for fake git
	KindGitFake = "fakegit"
	// KindUnknown git kind for unknown git
	KindUnknown = "unknown"

	// BitbucketCloudURL the default URL for BitBucket Cloud
	BitbucketCloudURL = "https://bitbucket.org"

	// FakeGitURL the default URL for the fake git provider
	FakeGitURL = "https://fake.git"

	ProjectOpen   = "open"   // the state of an open project
	ProjectClosed = "closed" // the stat of a closed project
)
View Source
const (
	GitHubHost = "github.com"
	GitHubURL  = "https://github.com"
)
View Source
const (
	CommitStatusPending CommitStatus = "pending"
	CommitSatusSuccess               = "success"
	CommitStatusError                = "error"
	CommitStatusFailure              = "failure"
)
View Source
const (
	// LabelUpdatebot is the label applied to PRs created by updatebot
	LabelUpdatebot = "updatebot"
)

Variables

View Source
var (
	// BaseWebHooks are webhooks we enable on all versions
	BaseWebHooks = []string{"repo:refs_changed", "repo:modified", "repo:forked", "repo:comment:added", "repo:comment:edited", "repo:comment:deleted", "pr:opened", "pr:reviewer:approved", "pr:reviewer:unapproved", "pr:reviewer:needs_work", "pr:merged", "pr:declined", "pr:deleted", "pr:comment:added", "pr:comment:edited", "pr:comment:deleted", "pr:modified"}
	// Ver7WebHooks are additional webhooks we enable on server versions >= 7.x
	Ver7WebHooks = []string{"pr:from_ref_updated"}
)
View Source
var (

	// ConventionalCommitTitles textual descriptions for
	// Conventional Commit types: https://conventionalcommits.org/
	ConventionalCommitTitles = map[string]*CommitGroup{
		"feat":     createCommitGroup("New Features"),
		"fix":      createCommitGroup("Bug Fixes"),
		"perf":     createCommitGroup("Performance Improvements"),
		"refactor": createCommitGroup("Code Refactoring"),
		"docs":     createCommitGroup("Documentation"),
		"test":     createCommitGroup("Tests"),
		"revert":   createCommitGroup("Reverts"),
		"style":    createCommitGroup("Styles"),
		"chore":    createCommitGroup("Chores"),
		"":         createCommitGroup(""),
	}
)
View Source
var (
	// PullRequestOpen is the state a pull request is in when it is open
	PullRequestOpen = "open"
)

Functions

func AddUserToURL

func AddUserToURL(gitURL string, user string) (string, error)

AddUserToURL adds the specified user to the given git URL and returns the new URL. An error is returned if the specified git URL is not valid. In this case the return URL is empty.

func BitBucketCloudAccessTokenURL

func BitBucketCloudAccessTokenURL(url string, username string) string

func BitBucketServerAccessTokenURL

func BitBucketServerAccessTokenURL(url string) string

func EnsureUserAndEmailSetup

func EnsureUserAndEmailSetup(gitter Gitter) (string, string, error)

EnsureUserAndEmailSetup returns the user name and email for the gitter lazily setting them if they are blank either from the environment variables `GIT_AUTHOR_NAME` and `GIT_AUTHOR_EMAIL` or using default values

func FetchAndMergeSHAs

func FetchAndMergeSHAs(SHAs []string, baseBranch string, baseSha string, remote string, dir string,
	gitter Gitter) error

FetchAndMergeSHAs merges any SHAs into the baseBranch which has a tip of baseSha, fetching the commits from remote for the git repo in dir. It will try to fetch individual commits ( if the remote repo supports it - see https://github. com/git/git/commit/68ee628932c2196742b77d2961c5e16360734a62) otherwise it uses git remote update to pull down the whole repo.

func FindTagForVersion

func FindTagForVersion(dir string, version string, gitter Gitter) (string, error)

FindTagForVersion will find a tag for a version number (first fetching the tags, then looking for a tag <version> then trying the common convention v<version>). It will return the tag or an error if the tag can't be found.

func ForkAndPullRepo

func ForkAndPullRepo(gitURL string, dir string, baseRef string, branchName string, provider GitProvider, gitter Gitter, forkName string) (string, string, *GitRepository, *GitRepository, error)

ForkAndPullRepo pulls the specified gitUrl into dir using gitter, creating a remote fork if needed using the git provider

If there are existing files in dir (and dir is already a git clone), the existing files will pushed into the stash and then popped at the end. If they cannot be popped then an error will be returned which can be checked for using IsCouldNotPopTheStashError

func GenerateMarkdown

func GenerateMarkdown(releaseSpec *v1.ReleaseSpec, gitInfo *GitRepository) (string, error)

GenerateMarkdown generates the markdown document for the commits

func GetGitInfoFromDirectory

func GetGitInfoFromDirectory(dir string, gitter Gitter) (string, string, error)

GetGitInfoFromDirectory obtains remote origin HTTPS and current branch of a given directory and fails if it's not a git repository

func GetHost

func GetHost(gitProvider GitProvider) (string, error)

GetHost returns the Git Provider hostname, e.g github.com

func GetOrganizations

func GetOrganizations(orgLister OrganisationLister, userName string) []string

GetOrganizations gets the organisation

func GetOwner

func GetOwner(batchMode bool, provider OrganisationLister, gitUsername string, handles util.IOFileHandles) (string, error)

func GetOwnerNamespaceID

func GetOwnerNamespaceID(g *gitlab.Client, owner string) (int, error)

func GetRemoteForURL

func GetRemoteForURL(repoDir string, remoteURL string, gitter Gitter) (string, error)

GetRemoteForURL returns the remote name for the specified remote URL. The empty string is returned if the remoteURL is not known. An error is returned if there are errors processing the git repository data.

func GetRepoName

func GetRepoName(batchMode, allowExistingRepo bool, provider GitProvider, defaultRepoName, owner string, handles util.IOFileHandles) (string, error)

func GetSimpleIndentedStashPopErrorMessage

func GetSimpleIndentedStashPopErrorMessage(err error) string

GetSimpleIndentedStashPopErrorMessage gets the output of a failed git stash pop without duplication or additional content, with each line indented four characters.

func GitHubAccessTokenURL

func GitHubAccessTokenURL(url string) string

func GitHubEnterpriseApiEndpointURL

func GitHubEnterpriseApiEndpointURL(u string) string

func GitProviderURL

func GitProviderURL(text string) string

GitProviderURL returns the git provider host URL for the SourceRepository which is something like either `https://hostname` or `http://hostname`

func GiteaAccessTokenURL

func GiteaAccessTokenURL(url string) string

func GitlabAccessTokenURL

func GitlabAccessTokenURL(url string) string

GitlabAccessTokenURL returns the URL to click on to generate a personal access token for the Git provider

func HttpCloneURL

func HttpCloneURL(repo *GitRepository, kind string) string

HttpCloneURL returns the HTTPS git URL this repository

func IsCouldNotPopTheStashError

func IsCouldNotPopTheStashError(err error) bool

IsCouldNotPopTheStashError returns true if the error is due to the stash not being able to be popped, often because whatever is in the stash cannot be applied to the new state

func IsCouldntFindRemoteRefError

func IsCouldntFindRemoteRefError(err error, ref string) bool

IsCouldntFindRemoteRefError returns true if the error is due to the remote ref not being found

func IsDefaultBootConfigURL

func IsDefaultBootConfigURL(url string) (bool, error)

IsDefaultBootConfigURL checks if the given URL corresponds to the default boot config URL

func IsEmptyCommitError

func IsEmptyCommitError(err error) bool

IsEmptyCommitError checks if the error during git rebase is caused by the commit being empty at the end of the cherry-pick

func IsGitHubServerURL

func IsGitHubServerURL(u string) bool

func IsGitLabServerURL

func IsGitLabServerURL(u string) bool

func IsGitRepoStatusFailed

func IsGitRepoStatusFailed(statuses ...*GitRepoStatus) bool

IsGitRepoStatusFailed returns true if any of the statuses have failed

func IsGitRepoStatusSuccess

func IsGitRepoStatusSuccess(statuses ...*GitRepoStatus) bool

IsGitRepoStatusSuccess returns true if all the statuses are successful

func IsNoStashEntriesError

func IsNoStashEntriesError(err error) bool

IsNoStashEntriesError returns true if the error is due to no stash entries found

func IsOwnerGitHubUser

func IsOwnerGitHubUser(owner string, gitHubUser string) bool

IsOwnerGitHubUser checks to see if the owner is the GitHub User

func IsRepoStatusUpToDate

func IsRepoStatusUpToDate(provider GitProvider, owner string, repo string, sha string, commitStatus *GitRepoStatus) (bool, error)

IsRepoStatusUpToDate takes a provider, an owner, repo, sha, and GitRepoStatus, and checks if there's an existing commit status for the owner/repo/sha/context (from the GitRepoStatus) with the GitRepoStatus's status, target URL, and description

func IsRepositoryNotExportedError

func IsRepositoryNotExportedError(err error) bool

IsRepositoryNotExportedError checks if the clone error happens because the repository is not exported

func IsUnadvertisedObjectError

func IsUnadvertisedObjectError(err error) bool

IsUnadvertisedObjectError returns true if the reason for the error is that the request was for an object that is unadvertised (i.e. doesn't exist)

func PickOrganisation

func PickOrganisation(orgLister OrganisationLister, userName string, handles util.IOFileHandles) (string, error)

PickOrganisation picks an organisations login if there is one available

func PickOwner

func PickOwner(orgLister OrganisationLister, userName string, handles util.IOFileHandles) (string, error)

PickOwner allows to select a potential owner of a repository

func ProviderAccessTokenURL

func ProviderAccessTokenURL(kind string, url string, username string) string

func RefIsBranch

func RefIsBranch(dir string, ref string, gitter Gitter) (bool, error)

RefIsBranch looks for remove branches in ORIGIN for the provided directory and returns true if ref is found

func SaasGitKind

func SaasGitKind(gitServiceUrl string) string

SaasGitKind returns the kind for SaaS Git providers or "" if the URL could not be deduced

func SourceRepositoryProviderURL

func SourceRepositoryProviderURL(gitProvider GitProvider) string

SourceRepositoryProviderURL returns the git provider URL for the SourceRepository which is something like either `https://hostname` or `http://hostname`

func SquashIntoSingleCommit

func SquashIntoSingleCommit(repoDir string, commitMsg string, gitter Gitter) error

SquashIntoSingleCommit takes the git repository in the specified directory and squashes all commits into a single one using the specified message.

func Unshallow

func Unshallow(dir string, gitter Gitter) error

Unshallow converts a shallow git repo (one cloned with --depth=n) into one has full depth for the current branch and all tags. Note that remote branches are still not fetched, you need to do this manually. It checks if the repo is shallow or not before trying to unshallow it.

Types

type BitbucketCloudProvider

type BitbucketCloudProvider struct {
	Client   *bitbucket.APIClient
	Username string
	Context  context.Context

	Server auth.AuthServer
	User   auth.UserAuth
	Git    Gitter
}

BitbucketCloudProvider implements GitProvider interface for bitbucket.org

func (*BitbucketCloudProvider) AcceptInvitation

func (b *BitbucketCloudProvider) AcceptInvitation(ID int64) (*github.Response, error)

func (*BitbucketCloudProvider) AddCollaborator

func (b *BitbucketCloudProvider) AddCollaborator(user string, organisation string, repo string) error

func (*BitbucketCloudProvider) AddLabelsToIssue

func (b *BitbucketCloudProvider) AddLabelsToIssue(owner, repo string, number int, labels []string) error

AddLabelsToIssue adds labels to issues or pullrequests

func (*BitbucketCloudProvider) AddPRComment

func (b *BitbucketCloudProvider) AddPRComment(pr *GitPullRequest, comment string) error

func (*BitbucketCloudProvider) BranchArchiveURL

func (b *BitbucketCloudProvider) BranchArchiveURL(org string, name string, branch string) string

func (*BitbucketCloudProvider) ConfigureFeatures

func (b *BitbucketCloudProvider) ConfigureFeatures(owner string, repo string, issues *bool, projects *bool, wikis *bool) (*GitRepository, error)

ConfigureFeatures sets specific features as enabled or disabled for owner/repo

func (*BitbucketCloudProvider) CreateIssue

func (b *BitbucketCloudProvider) CreateIssue(owner string, repo string, issue *GitIssue) (*GitIssue, error)

func (*BitbucketCloudProvider) CreateIssueComment

func (b *BitbucketCloudProvider) CreateIssueComment(owner string, repo string, number int, comment string) error

func (*BitbucketCloudProvider) CreatePullRequest

func (b *BitbucketCloudProvider) CreatePullRequest(
	data *GitPullRequestArguments,
) (*GitPullRequest, error)

func (*BitbucketCloudProvider) CreateRepository

func (b *BitbucketCloudProvider) CreateRepository(
	org string,
	name string,
	private bool,
) (*GitRepository, error)

func (*BitbucketCloudProvider) CreateWebHook

func (b *BitbucketCloudProvider) CreateWebHook(data *GitWebHookArguments) error

func (*BitbucketCloudProvider) CurrentUsername

func (b *BitbucketCloudProvider) CurrentUsername() string

CurrentUsername the current user name

func (*BitbucketCloudProvider) DeleteRepository

func (b *BitbucketCloudProvider) DeleteRepository(org string, name string) error

func (*BitbucketCloudProvider) ForkRepository

func (b *BitbucketCloudProvider) ForkRepository(
	originalOrg string,
	name string,
	destinationOrg string,
) (*GitRepository, error)

func (*BitbucketCloudProvider) GetBranch

func (b *BitbucketCloudProvider) GetBranch(owner string, repo string, branch string) (*GitBranch, error)

GetBranch returns the branch information for an owner/repo, including the commit at the tip

func (*BitbucketCloudProvider) GetContent

func (b *BitbucketCloudProvider) GetContent(org string, name string, path string, ref string) (*GitFileContent, error)

func (*BitbucketCloudProvider) GetIssue

func (b *BitbucketCloudProvider) GetIssue(org string, name string, number int) (*GitIssue, error)

func (*BitbucketCloudProvider) GetLatestRelease

func (b *BitbucketCloudProvider) GetLatestRelease(org string, name string) (*GitRelease, error)

GetLatestRelease fetches the latest release from the git provider for org and name

func (*BitbucketCloudProvider) GetProjects

func (b *BitbucketCloudProvider) GetProjects(owner string, repo string) ([]GitProject, error)

GetProjects returns all the git projects in owner/repo

func (*BitbucketCloudProvider) GetPullRequest

func (b *BitbucketCloudProvider) GetPullRequest(owner string, repoInfo *GitRepository, number int) (*GitPullRequest, error)

GetPullRequest returns the PR

func (*BitbucketCloudProvider) GetPullRequestCommits

func (b *BitbucketCloudProvider) GetPullRequestCommits(owner string, repository *GitRepository, number int) ([]*GitCommit, error)

func (*BitbucketCloudProvider) GetRelease

func (b *BitbucketCloudProvider) GetRelease(org string, name string, tag string) (*GitRelease, error)

GetRelease is not supported on BitBucket Cloud

func (*BitbucketCloudProvider) GetRepository

func (b *BitbucketCloudProvider) GetRepository(
	org string,
	name string,
) (*GitRepository, error)

func (*BitbucketCloudProvider) GitIssueToBitbucketIssue

func (b *BitbucketCloudProvider) GitIssueToBitbucketIssue(gIssue GitIssue) bitbucket.Issue

func (*BitbucketCloudProvider) HasIssues

func (b *BitbucketCloudProvider) HasIssues() bool

func (*BitbucketCloudProvider) IsBitbucketCloud

func (b *BitbucketCloudProvider) IsBitbucketCloud() bool

func (*BitbucketCloudProvider) IsBitbucketServer

func (b *BitbucketCloudProvider) IsBitbucketServer() bool

func (*BitbucketCloudProvider) IsGerrit

func (b *BitbucketCloudProvider) IsGerrit() bool

func (*BitbucketCloudProvider) IsGitHub

func (b *BitbucketCloudProvider) IsGitHub() bool

func (*BitbucketCloudProvider) IsGitea

func (b *BitbucketCloudProvider) IsGitea() bool

func (*BitbucketCloudProvider) IsWikiEnabled

func (b *BitbucketCloudProvider) IsWikiEnabled(owner string, repo string) (bool, error)

IsWikiEnabled returns true if a wiki is enabled for owner/repo

func (*BitbucketCloudProvider) IssueURL

func (b *BitbucketCloudProvider) IssueURL(org string, name string, number int, isPull bool) string

IssueURL returns the issue URL

func (*BitbucketCloudProvider) JenkinsWebHookPath

func (b *BitbucketCloudProvider) JenkinsWebHookPath(gitURL string, secret string) string

Exposed by Jenkins plugin; this one is for https://wiki.jenkins.io/display/JENKINS/BitBucket+Plugin

func (*BitbucketCloudProvider) Kind

func (b *BitbucketCloudProvider) Kind() string

func (*BitbucketCloudProvider) Label

func (b *BitbucketCloudProvider) Label() string

func (*BitbucketCloudProvider) ListCommitStatus

func (b *BitbucketCloudProvider) ListCommitStatus(org string, repo string, sha string) ([]*GitRepoStatus, error)

func (*BitbucketCloudProvider) ListCommits

func (b *BitbucketCloudProvider) ListCommits(owner, repo string, opt *ListCommitsArguments) ([]*GitCommit, error)

ListCommits lists the commits for the specified repo and owner

func (*BitbucketCloudProvider) ListInvitations

func (*BitbucketCloudProvider) ListOpenPullRequests

func (b *BitbucketCloudProvider) ListOpenPullRequests(owner string, repo string) ([]*GitPullRequest, error)

ListOpenPullRequests lists the open pull requests

func (*BitbucketCloudProvider) ListOrganisations

func (b *BitbucketCloudProvider) ListOrganisations() ([]GitOrganisation, error)

func (*BitbucketCloudProvider) ListReleases

func (b *BitbucketCloudProvider) ListReleases(org string, name string) ([]*GitRelease, error)

ListReleases lists the releases

func (*BitbucketCloudProvider) ListRepositories

func (b *BitbucketCloudProvider) ListRepositories(org string) ([]*GitRepository, error)

func (*BitbucketCloudProvider) ListWebHooks

func (b *BitbucketCloudProvider) ListWebHooks(owner string, repo string) ([]*GitWebHookArguments, error)

ListWebHooks lists the webhooks

func (*BitbucketCloudProvider) MergePullRequest

func (b *BitbucketCloudProvider) MergePullRequest(pr *GitPullRequest, message string) error

func (*BitbucketCloudProvider) PullRequestLastCommitStatus

func (b *BitbucketCloudProvider) PullRequestLastCommitStatus(pr *GitPullRequest) (string, error)

func (*BitbucketCloudProvider) RenameRepository

func (b *BitbucketCloudProvider) RenameRepository(
	org string,
	name string,
	newName string,
) (*GitRepository, error)

func (*BitbucketCloudProvider) SearchIssues

func (b *BitbucketCloudProvider) SearchIssues(org string, name string, query string) ([]*GitIssue, error)

func (*BitbucketCloudProvider) SearchIssuesClosedSince

func (b *BitbucketCloudProvider) SearchIssuesClosedSince(org string, name string, t time.Time) ([]*GitIssue, error)

func (*BitbucketCloudProvider) ServerURL

func (b *BitbucketCloudProvider) ServerURL() string

func (*BitbucketCloudProvider) ShouldForkForPullRequest

func (b *BitbucketCloudProvider) ShouldForkForPullRequest(originalOwner string, repoName string, username string) bool

ShouldForkForPullReques treturns true if we should create a personal fork of this repository before creating a pull request

func (*BitbucketCloudProvider) UpdateCommitStatus

func (b *BitbucketCloudProvider) UpdateCommitStatus(org string, repo string, sha string, status *GitRepoStatus) (*GitRepoStatus, error)

func (*BitbucketCloudProvider) UpdatePullRequest

func (b *BitbucketCloudProvider) UpdatePullRequest(data *GitPullRequestArguments, number int) (*GitPullRequest, error)

UpdatePullRequest updates pull request number with data

func (*BitbucketCloudProvider) UpdatePullRequestStatus

func (b *BitbucketCloudProvider) UpdatePullRequestStatus(pr *GitPullRequest) error

func (*BitbucketCloudProvider) UpdateRelease

func (b *BitbucketCloudProvider) UpdateRelease(owner string, repo string, tag string, releaseInfo *GitRelease) error

func (*BitbucketCloudProvider) UpdateReleaseStatus

func (b *BitbucketCloudProvider) UpdateReleaseStatus(owner string, repo string, tag string, releaseInfo *GitRelease) error

UpdateReleaseStatus is not supported for this git provider

func (*BitbucketCloudProvider) UpdateWebHook

func (b *BitbucketCloudProvider) UpdateWebHook(data *GitWebHookArguments) error

UpdateWebHook updates the webhook

func (*BitbucketCloudProvider) UploadReleaseAsset

func (b *BitbucketCloudProvider) UploadReleaseAsset(org string, repo string, id int64, name string, asset *os.File) (*GitReleaseAsset, error)

UploadReleaseAsset will upload an asset to org/repo to a release with id, giving it a name, it will return the release asset from the git provider

func (*BitbucketCloudProvider) UserAuth

func (b *BitbucketCloudProvider) UserAuth() auth.UserAuth

UserAuth returns the user auth

func (*BitbucketCloudProvider) UserInfo

func (b *BitbucketCloudProvider) UserInfo(username string) *GitUser

UserInfo returns the user info

func (*BitbucketCloudProvider) ValidateRepositoryName

func (b *BitbucketCloudProvider) ValidateRepositoryName(org string, name string) error

type BitbucketServerProvider

type BitbucketServerProvider struct {
	Client   *bitbucket.APIClient
	Username string
	Context  context.Context

	Server auth.AuthServer
	User   auth.UserAuth
	Git    Gitter
}

BitbucketServerProvider implements GitProvider interface for a bitbucket server

func (*BitbucketServerProvider) AcceptInvitation

func (b *BitbucketServerProvider) AcceptInvitation(ID int64) (*github.Response, error)

func (*BitbucketServerProvider) AddCollaborator

func (b *BitbucketServerProvider) AddCollaborator(user string, organisation string, repo string) error

func (*BitbucketServerProvider) AddLabelsToIssue

func (b *BitbucketServerProvider) AddLabelsToIssue(owner, repo string, number int, labels []string) error

AddLabelsToIssue adds labels to issues or pullrequests

func (*BitbucketServerProvider) AddPRComment

func (b *BitbucketServerProvider) AddPRComment(pr *GitPullRequest, comment string) error

func (*BitbucketServerProvider) BranchArchiveURL

func (b *BitbucketServerProvider) BranchArchiveURL(org string, name string, branch string) string

func (*BitbucketServerProvider) ConfigureFeatures

func (b *BitbucketServerProvider) ConfigureFeatures(owner string, repo string, issues *bool, projects *bool, wikis *bool) (*GitRepository, error)

ConfigureFeatures sets specific features as enabled or disabled for owner/repo

func (*BitbucketServerProvider) CreateIssue

func (b *BitbucketServerProvider) CreateIssue(owner string, repo string, issue *GitIssue) (*GitIssue, error)

func (*BitbucketServerProvider) CreateIssueComment

func (b *BitbucketServerProvider) CreateIssueComment(owner string, repo string, number int, comment string) error

func (*BitbucketServerProvider) CreatePullRequest

func (b *BitbucketServerProvider) CreatePullRequest(data *GitPullRequestArguments) (*GitPullRequest, error)

func (*BitbucketServerProvider) CreateRepository

func (b *BitbucketServerProvider) CreateRepository(org, name string, private bool) (*GitRepository, error)

func (*BitbucketServerProvider) CreateWebHook

func (b *BitbucketServerProvider) CreateWebHook(data *GitWebHookArguments) error

CreateWebHook adds a new webhook to a git repository

func (*BitbucketServerProvider) CurrentUsername

func (b *BitbucketServerProvider) CurrentUsername() string

func (*BitbucketServerProvider) DeleteRepository

func (b *BitbucketServerProvider) DeleteRepository(org, name string) error

func (*BitbucketServerProvider) ForkRepository

func (b *BitbucketServerProvider) ForkRepository(originalOrg, name, destinationOrg string) (*GitRepository, error)

func (*BitbucketServerProvider) GetBranch

func (b *BitbucketServerProvider) GetBranch(owner string, repo string, branch string) (*GitBranch, error)

GetBranch returns the branch information for an owner/repo, including the commit at the tip

func (*BitbucketServerProvider) GetContent

func (b *BitbucketServerProvider) GetContent(org string, name string, path string, ref string) (*GitFileContent, error)

func (*BitbucketServerProvider) GetIssue

func (b *BitbucketServerProvider) GetIssue(org string, name string, number int) (*GitIssue, error)

func (*BitbucketServerProvider) GetLatestRelease

func (b *BitbucketServerProvider) GetLatestRelease(org string, name string) (*GitRelease, error)

GetLatestRelease fetches the latest release from the git provider for org and name

func (*BitbucketServerProvider) GetProjects

func (b *BitbucketServerProvider) GetProjects(owner string, repo string) ([]GitProject, error)

GetProjects returns all the git projects in owner/repo

func (*BitbucketServerProvider) GetPullRequest

func (b *BitbucketServerProvider) GetPullRequest(owner string, repo *GitRepository, number int) (*GitPullRequest, error)

func (*BitbucketServerProvider) GetPullRequestCommits

func (b *BitbucketServerProvider) GetPullRequestCommits(owner string, repository *GitRepository, number int) ([]*GitCommit, error)

func (*BitbucketServerProvider) GetRelease

func (b *BitbucketServerProvider) GetRelease(org string, name string, tag string) (*GitRelease, error)

GetRelease is unsupported on bitbucket as releases are not supported

func (*BitbucketServerProvider) GetRepository

func (b *BitbucketServerProvider) GetRepository(org string, name string) (*GitRepository, error)

func (*BitbucketServerProvider) HasIssues

func (b *BitbucketServerProvider) HasIssues() bool

func (*BitbucketServerProvider) IsBitbucketCloud

func (b *BitbucketServerProvider) IsBitbucketCloud() bool

func (*BitbucketServerProvider) IsBitbucketServer

func (b *BitbucketServerProvider) IsBitbucketServer() bool

func (*BitbucketServerProvider) IsGerrit

func (b *BitbucketServerProvider) IsGerrit() bool

func (*BitbucketServerProvider) IsGitHub

func (b *BitbucketServerProvider) IsGitHub() bool

func (*BitbucketServerProvider) IsGitea

func (b *BitbucketServerProvider) IsGitea() bool

func (*BitbucketServerProvider) IsWikiEnabled

func (b *BitbucketServerProvider) IsWikiEnabled(owner string, repo string) (bool, error)

IsWikiEnabled returns true if a wiki is enabled for owner/repo

func (*BitbucketServerProvider) IssueURL

func (b *BitbucketServerProvider) IssueURL(org string, name string, number int, isPull bool) string

func (*BitbucketServerProvider) JenkinsWebHookPath

func (b *BitbucketServerProvider) JenkinsWebHookPath(gitURL string, secret string) string

Exposed by Jenkins plugin; this one is for https://wiki.jenkins.io/display/JENKINS/BitBucket+Plugin

func (*BitbucketServerProvider) Kind

func (b *BitbucketServerProvider) Kind() string

func (*BitbucketServerProvider) Label

func (b *BitbucketServerProvider) Label() string

func (*BitbucketServerProvider) ListCommitStatus

func (b *BitbucketServerProvider) ListCommitStatus(org, repo, sha string) ([]*GitRepoStatus, error)

func (*BitbucketServerProvider) ListCommits

func (b *BitbucketServerProvider) ListCommits(owner, repoName string, opt *ListCommitsArguments) ([]*GitCommit, error)

ListCommits lists the commits for the specified repo and owner

func (*BitbucketServerProvider) ListInvitations

func (*BitbucketServerProvider) ListOpenPullRequests

func (b *BitbucketServerProvider) ListOpenPullRequests(owner string, repo string) ([]*GitPullRequest, error)

ListOpenPullRequests lists the open pull requests

func (*BitbucketServerProvider) ListOrganisations

func (b *BitbucketServerProvider) ListOrganisations() ([]GitOrganisation, error)

func (*BitbucketServerProvider) ListReleases

func (b *BitbucketServerProvider) ListReleases(org string, name string) ([]*GitRelease, error)

func (*BitbucketServerProvider) ListRepositories

func (b *BitbucketServerProvider) ListRepositories(org string) ([]*GitRepository, error)

func (*BitbucketServerProvider) ListWebHooks

func (b *BitbucketServerProvider) ListWebHooks(owner string, repo string) ([]*GitWebHookArguments, error)

ListWebHooks lists all of the webhooks on a given git repository

func (*BitbucketServerProvider) MergePullRequest

func (b *BitbucketServerProvider) MergePullRequest(pr *GitPullRequest, message string) error

func (*BitbucketServerProvider) PullRequestLastCommitStatus

func (b *BitbucketServerProvider) PullRequestLastCommitStatus(pr *GitPullRequest) (string, error)

func (*BitbucketServerProvider) RenameRepository

func (b *BitbucketServerProvider) RenameRepository(org, name, newName string) (*GitRepository, error)

func (*BitbucketServerProvider) SearchIssues

func (b *BitbucketServerProvider) SearchIssues(org string, name string, query string) ([]*GitIssue, error)

func (*BitbucketServerProvider) SearchIssuesClosedSince

func (b *BitbucketServerProvider) SearchIssuesClosedSince(org string, name string, t time.Time) ([]*GitIssue, error)

func (*BitbucketServerProvider) ServerURL

func (b *BitbucketServerProvider) ServerURL() string

func (*BitbucketServerProvider) ShouldForkForPullRequest

func (b *BitbucketServerProvider) ShouldForkForPullRequest(originalOwner string, repoName string, username string) bool

ShouldForkForPullReques treturns true if we should create a personal fork of this repository before creating a pull request

func (*BitbucketServerProvider) UpdateCommitStatus

func (b *BitbucketServerProvider) UpdateCommitStatus(org string, repo string, sha string, status *GitRepoStatus) (*GitRepoStatus, error)

func (*BitbucketServerProvider) UpdatePullRequest

func (b *BitbucketServerProvider) UpdatePullRequest(data *GitPullRequestArguments, number int) (*GitPullRequest, error)

UpdatePullRequest updates pull request number with data

func (*BitbucketServerProvider) UpdatePullRequestStatus

func (b *BitbucketServerProvider) UpdatePullRequestStatus(pr *GitPullRequest) error

func (*BitbucketServerProvider) UpdateRelease

func (b *BitbucketServerProvider) UpdateRelease(owner string, repo string, tag string, releaseInfo *GitRelease) error

func (*BitbucketServerProvider) UpdateReleaseStatus

func (b *BitbucketServerProvider) UpdateReleaseStatus(owner string, repo string, tag string, releaseInfo *GitRelease) error

UpdateReleaseStatus is not supported for this git provider

func (*BitbucketServerProvider) UpdateWebHook

func (b *BitbucketServerProvider) UpdateWebHook(data *GitWebHookArguments) error

UpdateWebHook is used to update a webhook on a git repository. It is best to pass in the webhook ID.

func (*BitbucketServerProvider) UploadReleaseAsset

func (b *BitbucketServerProvider) UploadReleaseAsset(org string, repo string, id int64, name string, asset *os.File) (*GitReleaseAsset, error)

UploadReleaseAsset will upload an asset to org/repo to a release with id, giving it a name, it will return the release asset from the git provider

func (*BitbucketServerProvider) UserAuth

func (b *BitbucketServerProvider) UserAuth() auth.UserAuth

func (*BitbucketServerProvider) UserInfo

func (b *BitbucketServerProvider) UserInfo(username string) *GitUser

func (*BitbucketServerProvider) ValidateRepositoryName

func (b *BitbucketServerProvider) ValidateRepositoryName(org, name string) error

type CommitGroup

type CommitGroup struct {
	Title string
	Order int
}

func ConventionalCommitTypeToTitle

func ConventionalCommitTypeToTitle(kind string) *CommitGroup

ConventionalCommitTypeToTitle returns the title of the conventional commit type see: https://conventionalcommits.org/

type CommitInfo

type CommitInfo struct {
	Kind    string
	Feature string
	Message string
	// contains filtered or unexported fields
}

func ParseCommit

func ParseCommit(message string) *CommitInfo

ParseCommit parses a conventional commit see: https://conventionalcommits.org/

func (*CommitInfo) Group

func (c *CommitInfo) Group() *CommitGroup

func (*CommitInfo) Order

func (c *CommitInfo) Order() int

func (*CommitInfo) Title

func (c *CommitInfo) Title() string

type CommitStatus

type CommitStatus string

type CreateRepoData

type CreateRepoData struct {
	Organisation string
	RepoName     string
	FullName     string
	Public       bool
	User         *auth.UserAuth
	GitProvider  GitProvider
	GitServer    *auth.AuthServer
}

func PickNewGitRepository

func PickNewGitRepository(batchMode bool, authConfigSvc auth.ConfigService, defaultRepoName string,
	repoOptions *GitRepositoryOptions, server *auth.AuthServer, userAuth *auth.UserAuth, git Gitter, handles util.IOFileHandles) (*CreateRepoData, error)

func PickNewOrExistingGitRepository

func PickNewOrExistingGitRepository(batchMode bool, authConfigSvc auth.ConfigService, defaultRepoName string,
	repoOptions *GitRepositoryOptions, server *auth.AuthServer, userAuth *auth.UserAuth, git Gitter, allowExistingRepo bool, handles util.IOFileHandles) (*CreateRepoData, error)

func (*CreateRepoData) CreateRepository

func (d *CreateRepoData) CreateRepository() (*GitRepository, error)

CreateRepository creates the repository - failing if it already exists

func (*CreateRepoData) GetRepository

func (d *CreateRepoData) GetRepository() (*GitRepository, error)

GetRepository returns the repository if it already exists

type FakeCommit

type FakeCommit struct {
	Commit *GitCommit
	Status CommitStatus
}

type FakeIssue

type FakeIssue struct {
	Issue   *GitIssue
	Comment string
}

type FakeProvider

type FakeProvider struct {
	Server auth.AuthServer
	User   auth.UserAuth

	Organizations            []GitOrganisation
	Repositories             map[string][]*FakeRepository
	ForkedRepositories       map[string][]*FakeRepository
	Type                     FakeProviderType
	Users                    []*GitUser
	WebHooks                 []*GitWebHookArguments
	Gitter                   Gitter
	CreateRepositoryAddFiles func(dir string) error
}

func NewFakeProvider

func NewFakeProvider(repositories ...*FakeRepository) *FakeProvider

NewFakeRepository creates a new fake repository

func (*FakeProvider) AcceptInvitation

func (f *FakeProvider) AcceptInvitation(ID int64) (*github.Response, error)

func (*FakeProvider) AddCollaborator

func (f *FakeProvider) AddCollaborator(user string, organisation string, repo string) error

func (*FakeProvider) AddLabelsToIssue

func (f *FakeProvider) AddLabelsToIssue(owner, repo string, number int, labels []string) error

AddLabelsToIssue adds labels to an issue

func (*FakeProvider) AddPRComment

func (f *FakeProvider) AddPRComment(pr *GitPullRequest, comment string) error

func (*FakeProvider) BranchArchiveURL

func (f *FakeProvider) BranchArchiveURL(org string, name string, branch string) string

func (*FakeProvider) ConfigureFeatures

func (f *FakeProvider) ConfigureFeatures(owner string, repo string, issues *bool, projects *bool, wikis *bool) (*GitRepository, error)

ConfigureFeatures sets specific features as enabled or disabled for owner/repo

func (*FakeProvider) CreateIssue

func (f *FakeProvider) CreateIssue(owner string, repoName string, issue *GitIssue) (*GitIssue, error)

func (*FakeProvider) CreateIssueComment

func (f *FakeProvider) CreateIssueComment(owner string, repoName string, number int, comment string) error

func (*FakeProvider) CreatePullRequest

func (f *FakeProvider) CreatePullRequest(data *GitPullRequestArguments) (*GitPullRequest, error)

func (*FakeProvider) CreateRepository

func (f *FakeProvider) CreateRepository(org string, name string, private bool) (*GitRepository, error)

func (*FakeProvider) CreateWebHook

func (f *FakeProvider) CreateWebHook(data *GitWebHookArguments) error

func (*FakeProvider) CurrentUsername

func (f *FakeProvider) CurrentUsername() string

func (*FakeProvider) DeleteRepository

func (f *FakeProvider) DeleteRepository(org string, name string) error

func (*FakeProvider) ForkRepository

func (f *FakeProvider) ForkRepository(originalOrg string, name string, destinationOrg string) (*GitRepository, error)

func (*FakeProvider) GetBranch

func (f *FakeProvider) GetBranch(owner string, repo string, branch string) (*GitBranch, error)

GetBranch returns the branch information for an owner/repo, including the commit at the tip

func (*FakeProvider) GetContent

func (f *FakeProvider) GetContent(org string, name string, path string, ref string) (*GitFileContent, error)

GetContent gets the content

func (*FakeProvider) GetIssue

func (f *FakeProvider) GetIssue(org string, name string, number int) (*GitIssue, error)

func (*FakeProvider) GetLatestRelease

func (f *FakeProvider) GetLatestRelease(org string, name string) (*GitRelease, error)

GetLatestRelease fetches the latest release from the git provider for org and name

func (*FakeProvider) GetProjects

func (f *FakeProvider) GetProjects(owner string, repo string) ([]GitProject, error)

GetProjects returns all the git projects in owner/repo

func (*FakeProvider) GetPullRequest

func (f *FakeProvider) GetPullRequest(owner string, repo *GitRepository, number int) (*GitPullRequest, error)

func (*FakeProvider) GetPullRequestCommits

func (f *FakeProvider) GetPullRequestCommits(owner string, repo *GitRepository, number int) ([]*GitCommit, error)

func (*FakeProvider) GetRelease

func (f *FakeProvider) GetRelease(org string, name string, tag string) (*GitRelease, error)

GetRelease returns the release info for the org, repository name and tag, or nil if no release is found

func (*FakeProvider) GetRepository

func (f *FakeProvider) GetRepository(org string, name string) (*GitRepository, error)

func (*FakeProvider) HasIssues

func (f *FakeProvider) HasIssues() bool

func (*FakeProvider) IsBitbucketCloud

func (f *FakeProvider) IsBitbucketCloud() bool

func (*FakeProvider) IsBitbucketServer

func (f *FakeProvider) IsBitbucketServer() bool

func (*FakeProvider) IsGerrit

func (f *FakeProvider) IsGerrit() bool

func (*FakeProvider) IsGitHub

func (f *FakeProvider) IsGitHub() bool

func (*FakeProvider) IsGitea

func (f *FakeProvider) IsGitea() bool

func (*FakeProvider) IsWikiEnabled

func (f *FakeProvider) IsWikiEnabled(owner string, repo string) (bool, error)

IsWikiEnabled returns true if a wiki is enabled for owner/repo

func (*FakeProvider) IssueURL

func (f *FakeProvider) IssueURL(org string, name string, number int, isPull bool) string

func (*FakeProvider) JenkinsWebHookPath

func (f *FakeProvider) JenkinsWebHookPath(gitURL string, secret string) string

func (*FakeProvider) Kind

func (f *FakeProvider) Kind() string

func (*FakeProvider) Label

func (f *FakeProvider) Label() string

func (*FakeProvider) ListCommitStatus

func (f *FakeProvider) ListCommitStatus(org string, repoName string, sha string) ([]*GitRepoStatus, error)

func (*FakeProvider) ListCommits

func (f *FakeProvider) ListCommits(owner, name string, opt *ListCommitsArguments) ([]*GitCommit, error)

ListCommits returns the list of commits in the master brach only (TODO: read opt param to apply to other branches)

func (*FakeProvider) ListInvitations

func (f *FakeProvider) ListInvitations() ([]*github.RepositoryInvitation, *github.Response, error)

func (*FakeProvider) ListOpenPullRequests

func (f *FakeProvider) ListOpenPullRequests(owner string, repo string) ([]*GitPullRequest, error)

func (*FakeProvider) ListOrganisations

func (f *FakeProvider) ListOrganisations() ([]GitOrganisation, error)

func (*FakeProvider) ListReleases

func (f *FakeProvider) ListReleases(org string, name string) ([]*GitRelease, error)

func (*FakeProvider) ListRepositories

func (f *FakeProvider) ListRepositories(org string) ([]*GitRepository, error)

func (*FakeProvider) ListWebHooks

func (p *FakeProvider) ListWebHooks(owner string, repo string) ([]*GitWebHookArguments, error)

func (*FakeProvider) MergePullRequest

func (f *FakeProvider) MergePullRequest(pr *GitPullRequest, message string) error

func (*FakeProvider) PullRequestLastCommitStatus

func (f *FakeProvider) PullRequestLastCommitStatus(pr *GitPullRequest) (string, error)

func (*FakeProvider) RenameRepository

func (f *FakeProvider) RenameRepository(org string, name string, newName string) (*GitRepository, error)

func (*FakeProvider) SearchIssues

func (f *FakeProvider) SearchIssues(org string, name string, query string) ([]*GitIssue, error)

func (*FakeProvider) SearchIssuesClosedSince

func (f *FakeProvider) SearchIssuesClosedSince(org string, name string, t time.Time) ([]*GitIssue, error)

func (*FakeProvider) ServerURL

func (f *FakeProvider) ServerURL() string

func (*FakeProvider) ShouldForkForPullRequest

func (f *FakeProvider) ShouldForkForPullRequest(originalOwner string, repoName string, username string) bool

ShouldForkForPullReques treturns true if we should create a personal fork of this repository before creating a pull request

func (*FakeProvider) UpdateCommitStatus

func (f *FakeProvider) UpdateCommitStatus(org string, repo string, sha string, status *GitRepoStatus) (*GitRepoStatus, error)

func (*FakeProvider) UpdatePullRequest

func (f *FakeProvider) UpdatePullRequest(data *GitPullRequestArguments, number int) (*GitPullRequest, error)

UpdatePullRequest updates the pull request number with the new data

func (*FakeProvider) UpdatePullRequestStatus

func (f *FakeProvider) UpdatePullRequestStatus(pr *GitPullRequest) error

func (*FakeProvider) UpdateRelease

func (f *FakeProvider) UpdateRelease(owner string, repoName string, tag string, releaseInfo *GitRelease) error

func (*FakeProvider) UpdateReleaseStatus

func (f *FakeProvider) UpdateReleaseStatus(owner string, repoName string, tag string, releaseInfo *GitRelease) error

UpdateReleaseStatus updates the status (release/prerelease) of a release

func (*FakeProvider) UpdateWebHook

func (p *FakeProvider) UpdateWebHook(data *GitWebHookArguments) error

func (*FakeProvider) UploadReleaseAsset

func (f *FakeProvider) UploadReleaseAsset(org string, repo string, id int64, name string, asset *os.File) (*GitReleaseAsset, error)

UploadReleaseAsset will upload an asset to org/repo to a release with id, giving it a name, it will return the release asset from the git provider

func (*FakeProvider) UserAuth

func (f *FakeProvider) UserAuth() auth.UserAuth

func (*FakeProvider) UserInfo

func (f *FakeProvider) UserInfo(username string) *GitUser

func (*FakeProvider) ValidateRepositoryName

func (f *FakeProvider) ValidateRepositoryName(org string, name string) error

type FakeProviderType

type FakeProviderType int
const (
	GitHub FakeProviderType = iota
	Gitlab
	Gitea
	BitbucketCloud
	BitbucketServer
	Gerrit
	Fake
)

type FakePullRequest

type FakePullRequest struct {
	PullRequest *GitPullRequest
	Commits     []*FakeCommit
	Comment     string
}

type FakeRepository

type FakeRepository struct {
	Owner        string
	GitRepo      *GitRepository
	PullRequests map[int]*FakePullRequest
	Issues       map[int]*FakeIssue
	Commits      []*FakeCommit

	Releases           map[string]*GitRelease
	PullRequestCounter int
	BaseDir            string
	CloneDir           string
	Projects           []GitProject
	WikiEnabled        bool
	// contains filtered or unexported fields
}

func NewFakeRepository

func NewFakeRepository(owner string, repoName string, addFiles func(dir string) error, gitter Gitter) (*FakeRepository, error)

NewFakeRepository creates a new fake repository

func (*FakeRepository) Name

func (r *FakeRepository) Name() string

func (*FakeRepository) String

func (r *FakeRepository) String() string

type GerritProvider

type GerritProvider struct {
	Client   *gerrit.Client
	Username string
	Context  context.Context

	Server auth.AuthServer
	User   auth.UserAuth
	Git    Gitter
}

func (*GerritProvider) AcceptInvitation

func (p *GerritProvider) AcceptInvitation(ID int64) (*github.Response, error)

func (*GerritProvider) AddCollaborator

func (p *GerritProvider) AddCollaborator(user string, organisation string, repo string) error

func (*GerritProvider) AddLabelsToIssue

func (p *GerritProvider) AddLabelsToIssue(owner, repo string, number int, labels []string) error

AddLabelsToIssue adds labels to issues or pullrequests

func (*GerritProvider) AddPRComment

func (p *GerritProvider) AddPRComment(pr *GitPullRequest, comment string) error

func (*GerritProvider) BranchArchiveURL

func (p *GerritProvider) BranchArchiveURL(org string, name string, branch string) string

func (*GerritProvider) ConfigureFeatures

func (p *GerritProvider) ConfigureFeatures(owner string, repo string, issues *bool, projects *bool, wikis *bool) (*GitRepository, error)

ConfigureFeatures sets specific features as enabled or disabled for owner/repo

func (*GerritProvider) CreateIssue

func (p *GerritProvider) CreateIssue(owner string, repo string, issue *GitIssue) (*GitIssue, error)

func (*GerritProvider) CreateIssueComment

func (p *GerritProvider) CreateIssueComment(owner string, repo string, number int, comment string) error

func (*GerritProvider) CreatePullRequest

func (p *GerritProvider) CreatePullRequest(data *GitPullRequestArguments) (*GitPullRequest, error)

func (*GerritProvider) CreateRepository

func (p *GerritProvider) CreateRepository(org string, name string, private bool) (*GitRepository, error)

func (*GerritProvider) CreateWebHook

func (p *GerritProvider) CreateWebHook(data *GitWebHookArguments) error

func (*GerritProvider) CurrentUsername

func (p *GerritProvider) CurrentUsername() string

func (*GerritProvider) DeleteRepository

func (p *GerritProvider) DeleteRepository(org string, name string) error

func (*GerritProvider) ForkRepository

func (p *GerritProvider) ForkRepository(originalOrg string, name string, destinationOrg string) (*GitRepository, error)

func (*GerritProvider) GetBranch

func (p *GerritProvider) GetBranch(owner string, repo string, branch string) (*GitBranch, error)

GetBranch returns the branch information for an owner/repo, including the commit at the tip

func (*GerritProvider) GetContent

func (p *GerritProvider) GetContent(org string, name string, path string, ref string) (*GitFileContent, error)

func (*GerritProvider) GetIssue

func (p *GerritProvider) GetIssue(org string, name string, number int) (*GitIssue, error)

func (*GerritProvider) GetLatestRelease

func (p *GerritProvider) GetLatestRelease(org string, name string) (*GitRelease, error)

GetLatestRelease fetches the latest release from the git provider for org and name

func (*GerritProvider) GetProjects

func (p *GerritProvider) GetProjects(owner string, repo string) ([]GitProject, error)

GetProjects returns all the git projects in owner/repo

func (*GerritProvider) GetPullRequest

func (p *GerritProvider) GetPullRequest(owner string, repo *GitRepository, number int) (*GitPullRequest, error)

func (*GerritProvider) GetPullRequestCommits

func (p *GerritProvider) GetPullRequestCommits(owner string, repo *GitRepository, number int) ([]*GitCommit, error)

func (*GerritProvider) GetRelease

func (p *GerritProvider) GetRelease(org string, name string, tag string) (*GitRelease, error)

GetRelease returns the release info for org, repo name and tag

func (*GerritProvider) GetRepository

func (p *GerritProvider) GetRepository(org string, name string) (*GitRepository, error)

func (*GerritProvider) HasIssues

func (p *GerritProvider) HasIssues() bool

func (*GerritProvider) IsBitbucketCloud

func (p *GerritProvider) IsBitbucketCloud() bool

func (*GerritProvider) IsBitbucketServer

func (p *GerritProvider) IsBitbucketServer() bool

func (*GerritProvider) IsGerrit

func (p *GerritProvider) IsGerrit() bool

func (*GerritProvider) IsGitHub

func (p *GerritProvider) IsGitHub() bool

func (*GerritProvider) IsGitea

func (p *GerritProvider) IsGitea() bool

func (*GerritProvider) IsWikiEnabled

func (p *GerritProvider) IsWikiEnabled(owner string, repo string) (bool, error)

IsWikiEnabled returns true if a wiki is enabled for owner/repo

func (*GerritProvider) IssueURL

func (p *GerritProvider) IssueURL(org string, name string, number int, isPull bool) string

func (*GerritProvider) JenkinsWebHookPath

func (p *GerritProvider) JenkinsWebHookPath(gitURL string, secret string) string

func (*GerritProvider) Kind

func (p *GerritProvider) Kind() string

func (*GerritProvider) Label

func (p *GerritProvider) Label() string

func (*GerritProvider) ListCommitStatus

func (p *GerritProvider) ListCommitStatus(org string, repo string, sha string) ([]*GitRepoStatus, error)

func (*GerritProvider) ListCommits

func (p *GerritProvider) ListCommits(owner, repo string, opt *ListCommitsArguments) ([]*GitCommit, error)

func (*GerritProvider) ListInvitations

func (p *GerritProvider) ListInvitations() ([]*github.RepositoryInvitation, *github.Response, error)

func (*GerritProvider) ListOpenPullRequests

func (p *GerritProvider) ListOpenPullRequests(owner string, repo string) ([]*GitPullRequest, error)

ListOpenPullRequests lists the open pull requests

func (*GerritProvider) ListOrganisations

func (p *GerritProvider) ListOrganisations() ([]GitOrganisation, error)

ListOrganisations lists all organizations the configured user has access to.

func (*GerritProvider) ListReleases

func (p *GerritProvider) ListReleases(org string, name string) ([]*GitRelease, error)

func (*GerritProvider) ListRepositories

func (p *GerritProvider) ListRepositories(org string) ([]*GitRepository, error)

func (*GerritProvider) ListWebHooks

func (p *GerritProvider) ListWebHooks(org, repo string) ([]*GitWebHookArguments, error)

ListWebHooks lists all webhooks for the specified repo.

func (*GerritProvider) MergePullRequest

func (p *GerritProvider) MergePullRequest(pr *GitPullRequest, message string) error

func (*GerritProvider) PullRequestLastCommitStatus

func (p *GerritProvider) PullRequestLastCommitStatus(pr *GitPullRequest) (string, error)

func (*GerritProvider) RenameRepository

func (p *GerritProvider) RenameRepository(org string, name string, newName string) (*GitRepository, error)

func (*GerritProvider) SearchIssues

func (p *GerritProvider) SearchIssues(org string, name string, query string) ([]*GitIssue, error)

func (*GerritProvider) SearchIssuesClosedSince

func (p *GerritProvider) SearchIssuesClosedSince(org string, name string, t time.Time) ([]*GitIssue, error)

func (*GerritProvider) ServerURL

func (p *GerritProvider) ServerURL() string

func (*GerritProvider) ShouldForkForPullRequest

func (p *GerritProvider) ShouldForkForPullRequest(originalOwner string, repoName string, username string) bool

ShouldForkForPullReques treturns true if we should create a personal fork of this repository before creating a pull request

func (*GerritProvider) UpdateCommitStatus

func (p *GerritProvider) UpdateCommitStatus(org, repo, sha string, status *GitRepoStatus) (*GitRepoStatus, error)

UpdateCommitStatus updates the status of a specified commit in a specified repo.

func (*GerritProvider) UpdatePullRequest

func (p *GerritProvider) UpdatePullRequest(data *GitPullRequestArguments, number int) (*GitPullRequest, error)

UpdatePullRequest updates pull request with number using data

func (*GerritProvider) UpdatePullRequestStatus

func (p *GerritProvider) UpdatePullRequestStatus(pr *GitPullRequest) error

func (*GerritProvider) UpdateRelease

func (p *GerritProvider) UpdateRelease(owner string, repo string, tag string, releaseInfo *GitRelease) error

func (*GerritProvider) UpdateReleaseStatus

func (p *GerritProvider) UpdateReleaseStatus(owner string, repo string, tag string, releaseInfo *GitRelease) error

UpdateReleaseStatus is not supported for this git provider

func (*GerritProvider) UpdateWebHook

func (p *GerritProvider) UpdateWebHook(data *GitWebHookArguments) error

UpdateWebHook update a webhook with the data specified.

func (*GerritProvider) UploadReleaseAsset

func (p *GerritProvider) UploadReleaseAsset(org string, repo string, id int64, name string, asset *os.File) (*GitReleaseAsset, error)

UploadReleaseAsset will upload an asset to org/repo to a release with id, giving it a name, it will return the release asset from the git provider

func (*GerritProvider) UserAuth

func (p *GerritProvider) UserAuth() auth.UserAuth

func (*GerritProvider) UserInfo

func (p *GerritProvider) UserInfo(username string) *GitUser

func (*GerritProvider) ValidateRepositoryName

func (p *GerritProvider) ValidateRepositoryName(org string, name string) error

type GitBranch

type GitBranch struct {
	Name      string
	Commit    *GitCommit
	Protected bool
}

GitBranch is info on a git branch including the commit at the tip

type GitCLI

type GitCLI struct {
	Env map[string]string
}

GitCLI implements common git actions based on git CLI

func NewGitCLI

func NewGitCLI() *GitCLI

NewGitCLI creates a new GitCLI instance

func (*GitCLI) Add

func (g *GitCLI) Add(dir string, args ...string) error

Add does a git add for all the given arguments

func (*GitCLI) AddCommit

func (g *GitCLI) AddCommit(dir string, msg string) error

AddCommit perform an add and commit of the changes from the repository at the given directory with the given messages

func (*GitCLI) AddCommitFiles

func (g *GitCLI) AddCommitFiles(dir string, msg string, files []string) error

AddCommitFiles perform an add and commit selected files from the repository at the given directory with the given messages

func (*GitCLI) AddRemote

func (g *GitCLI) AddRemote(dir string, name string, url string) error

AddRemote adds a remote repository at the given URL and with the given name

func (*GitCLI) Branch

func (g *GitCLI) Branch(dir string) (string, error)

Branch returns the current branch of the repository located at the given directory

func (*GitCLI) Checkout

func (g *GitCLI) Checkout(dir string, branch string) error

Checkout checks out the given branch

func (*GitCLI) CheckoutCommitFiles

func (g *GitCLI) CheckoutCommitFiles(dir string, commit string, files []string) error

CheckoutCommitFiles checks out the given files to a commit

func (*GitCLI) CheckoutOrphan

func (g *GitCLI) CheckoutOrphan(dir string, branch string) error

Checkout checks out the given branch

func (*GitCLI) CheckoutRemoteBranch

func (g *GitCLI) CheckoutRemoteBranch(dir string, branch string) error

CheckoutRemoteBranch checks out the given remote tracking branch

func (*GitCLI) CherryPick

func (g *GitCLI) CherryPick(dir string, commitish string) error

CherryPick does a git cherry-pick of commit

func (*GitCLI) CherryPickTheirs

func (g *GitCLI) CherryPickTheirs(dir string, commitish string) error

CherryPickTheirs does a git cherry-pick of commit

func (*GitCLI) CherryPickTheirsKeepRedundantCommits

func (g *GitCLI) CherryPickTheirsKeepRedundantCommits(dir string, commitish string) error

CherryPickTheirsKeepRedundantCommits does a git cherry-pick of commit

func (*GitCLI) CleanForce

func (g *GitCLI) CleanForce(dir, fileName string) error

Clean force cleans a git repository located at a given directory

func (*GitCLI) Clone

func (g *GitCLI) Clone(url string, dir string) error

Clone clones the given git URL into the given directory

func (*GitCLI) CloneBare

func (g *GitCLI) CloneBare(dir string, url string) error

CloneBare will create a bare clone of url

func (*GitCLI) CloneOrPull

func (g *GitCLI) CloneOrPull(url string, dir string) error

CloneOrPull clones the given git URL or pull if it already exists

func (*GitCLI) CommitDir

func (g *GitCLI) CommitDir(dir string, message string) error

CommitDir commits all changes from the given directory

func (*GitCLI) CommitIfChanges

func (g *GitCLI) CommitIfChanges(dir string, message string) error

CommiIfChanges does a commit if there are any changes in the repository at the given directory

func (*GitCLI) Config

func (g *GitCLI) Config(dir string, args ...string) error

Config runs a 'git config' command in the specified directory

func (*GitCLI) ConvertToValidBranchName

func (g *GitCLI) ConvertToValidBranchName(name string) string

ConvertToValidBranchName converts the given branch name into a valid git branch string replacing any dodgy characters

func (*GitCLI) CreateAuthenticatedURL

func (g *GitCLI) CreateAuthenticatedURL(cloneURL string, userAuth *auth.UserAuth) (string, error)

CreateAuthenticatedURL creates the Git repository URL with the username and password encoded for HTTPS based URLs

func (*GitCLI) CreateBranch

func (g *GitCLI) CreateBranch(dir string, branch string) error

CreateBranch creates a branch with the given name in the Git repository from the given directory

func (*GitCLI) CreateBranchFrom

func (g *GitCLI) CreateBranchFrom(dir string, branchName string, startPoint string) error

CreateBranchFrom creates a new branch called branchName from startPoint

func (*GitCLI) CreateTag

func (g *GitCLI) CreateTag(dir string, tag string, msg string) error

CreateTag creates a tag with the given name and message in the repository at the given directory

func (*GitCLI) DeleteLocalBranch

func (g *GitCLI) DeleteLocalBranch(dir string, branch string) error

DeleteLocalBranch deletes the local branch in the given directory

func (*GitCLI) DeleteRemoteBranch

func (g *GitCLI) DeleteRemoteBranch(dir string, remoteName string, branch string) error

DeleteRemoteBranch deletes the remote branch in the given directory

func (*GitCLI) Describe

func (g *GitCLI) Describe(dir string, contains bool, commitish string, abbrev string, fallback bool) (string, string, error)

Describe does a git describe of commitish, optionally adding the abbrev arg if not empty, falling back to just the commit ref if it's untagged

func (*GitCLI) Diff

func (g *GitCLI) Diff(dir string) (string, error)

Diff runs git diff

func (*GitCLI) DiscoverRemoteGitURL

func (g *GitCLI) DiscoverRemoteGitURL(gitConf string) (string, error)

DiscoverRemoteGitURL discovers the remote git URL from the given git configuration

func (*GitCLI) DiscoverUpstreamGitURL

func (g *GitCLI) DiscoverUpstreamGitURL(gitConf string) (string, error)

DiscoverUpstreamGitURL discovers the upstream git URL from the given git configuration

func (*GitCLI) Email

func (g *GitCLI) Email(dir string) (string, error)

Email returns the email from the git configuration

func (*GitCLI) FetchBranch

func (g *GitCLI) FetchBranch(dir string, repo string, refspecs ...string) error

FetchBranch fetches the refspecs from the repo

func (*GitCLI) FetchBranchShallow

func (g *GitCLI) FetchBranchShallow(dir string, repo string, refspecs ...string) error

FetchBranchShallow fetches the refspecs from the repo

func (*GitCLI) FetchBranchUnshallow

func (g *GitCLI) FetchBranchUnshallow(dir string, repo string, refspecs ...string) error

FetchBranch fetches the refspecs from the repo

func (*GitCLI) FetchRemoteTags

func (g *GitCLI) FetchRemoteTags(dir string, repo string) error

FetchRemoteTags fetches all the tags from a remote repository

func (*GitCLI) FetchTags

func (g *GitCLI) FetchTags(dir string) error

FetchTags fetches all the tags

func (*GitCLI) FetchUnshallow

func (g *GitCLI) FetchUnshallow(dir string) error

FetchUnshallow runs git fetch --unshallow in dir

func (*GitCLI) FilterTags

func (g *GitCLI) FilterTags(dir string, filter string) ([]string, error)

FilterTags returns all tags from the repository at the given directory that match the filter

func (*GitCLI) FindGitConfigDir

func (g *GitCLI) FindGitConfigDir(dir string) (string, string, error)

FindGitConfigDir tries to find the `.git` directory either in the current directory or in parent directories

func (*GitCLI) ForcePushBranch

func (g *GitCLI) ForcePushBranch(dir string, localBranch string, remoteBranch string) error

ForcePushBranch does a force push of the local branch into the remote branch of the repository at the given directory

func (*GitCLI) GetAuthorEmailForCommit

func (g *GitCLI) GetAuthorEmailForCommit(dir string, sha string) (string, error)

GetAuthorEmailForCommit returns the author email from commit message with the given SHA

func (*GitCLI) GetCommitPointedToByLatestTag

func (g *GitCLI) GetCommitPointedToByLatestTag(dir string) (string, string, error)

GetCommitPointedToByLatestTag return the SHA of the commit pointed to by the latest git tag as well as the tag name for the git repo in dir

func (*GitCLI) GetCommitPointedToByPreviousTag

func (g *GitCLI) GetCommitPointedToByPreviousTag(dir string) (string, string, error)

GetCommitPointedToByPreviousTag return the SHA of the commit pointed to by the latest-but-1 git tag as well as the tag name for the git repo in dir

func (*GitCLI) GetCommitPointedToByTag

func (g *GitCLI) GetCommitPointedToByTag(dir string, tag string) (string, error)

GetCommitPointedToByTag return the SHA of the commit pointed to by the given git tag

func (*GitCLI) GetCommits

func (g *GitCLI) GetCommits(dir string, startSha string, endSha string) ([]GitCommit, error)

GetCommits returns the commits in a range, exclusive of startSha and inclusive of endSha

func (*GitCLI) GetCommitsNotOnAnyRemote

func (g *GitCLI) GetCommitsNotOnAnyRemote(dir string, branch string) ([]GitCommit, error)

func (*GitCLI) GetFirstCommitSha

func (g *GitCLI) GetFirstCommitSha(dir string) (string, error)

GetFirstCommitSha returns the sha of the first commit

func (*GitCLI) GetLatestCommitMessage

func (g *GitCLI) GetLatestCommitMessage(dir string) (string, error)

GetLatestCommitMessage returns the latest git commit message

func (*GitCLI) GetLatestCommitSha

func (g *GitCLI) GetLatestCommitSha(dir string) (string, error)

GetLatestCommitSha returns the sha of the last commit

func (*GitCLI) GetRemoteUrl

func (g *GitCLI) GetRemoteUrl(config *gitcfg.Config, name string) string

GetRemoteUrl returns the remote URL from the given git config

func (*GitCLI) GetRevisionBeforeDate

func (g *GitCLI) GetRevisionBeforeDate(dir string, t time.Time) (string, error)

GetRevisionBeforeDate returns the revision before the given date

func (*GitCLI) GetRevisionBeforeDateText

func (g *GitCLI) GetRevisionBeforeDateText(dir string, dateText string) (string, error)

GetRevisionBeforeDateText returns the revision before the given date in format "MonthName dayNumber year"

func (*GitCLI) HasChanges

func (g *GitCLI) HasChanges(dir string) (bool, error)

HasChanges indicates if there are any changes in the repository from the given directory

func (*GitCLI) HasFileChanged

func (g *GitCLI) HasFileChanged(dir string, fileName string) (bool, error)

HasFileChanged indicates if there are any changes to a file in the repository from the given directory

func (*GitCLI) Info

func (g *GitCLI) Info(dir string) (*GitRepository, error)

Info returns the git info of the repository at the given directory

func (*GitCLI) Init

func (g *GitCLI) Init(dir string) error

Init inits a git repository into the given directory

func (*GitCLI) IsAncestor

func (g *GitCLI) IsAncestor(dir string, possibleAncestor string, commitish string) (bool, error)

IsAncestor checks if the possible ancestor commit-ish is an ancestor of the given commit-ish.

func (*GitCLI) IsFork

func (g *GitCLI) IsFork(dir string) (bool, error)

IsFork indicates if the repository at the given directory is a fork

func (*GitCLI) IsShallow

func (g *GitCLI) IsShallow(dir string) (bool, error)

IsShallow runs git rev-parse --is-shallow-repository in dir and returns the result

func (*GitCLI) IsVersionControlled

func (g *GitCLI) IsVersionControlled(dir string) (bool, error)

IsVersionControlled returns true if the specified directory is under Git version control, otherwise false. An error is returned for unexpected IO errors.

func (*GitCLI) ListChangedFilesFromBranch

func (g *GitCLI) ListChangedFilesFromBranch(dir string, branch string) (string, error)

ListChangedFilesFromBranch lists files changed between branches

func (*GitCLI) LoadFileFromBranch

func (g *GitCLI) LoadFileFromBranch(dir string, branch string, file string) (string, error)

LoadFileFromBranch returns a files's contents from a branch

func (*GitCLI) LocalBranches

func (g *GitCLI) LocalBranches(dir string) ([]string, error)

LocalBranches will list all local branches

func (*GitCLI) Merge

func (g *GitCLI) Merge(dir string, commitish string) error

Merge merges the commitish into the current branch

func (*GitCLI) MergeTheirs

func (g *GitCLI) MergeTheirs(dir string, commitish string) error

MergeTheirs will do a recursive merge of commitish with the strategy option theirs

func (*GitCLI) NthTag

func (g *GitCLI) NthTag(dir string, n int) (string, string, error)

NthTag return the SHA and tag name of nth tag in reverse chronological order from the repository at the given directory. If the nth tag does not exist empty strings without an error are returned.

func (*GitCLI) PrintCreateRepositoryGenerateAccessToken

func (g *GitCLI) PrintCreateRepositoryGenerateAccessToken(server *auth.AuthServer, username string, o io.Writer)

PrintCreateRepositoryGenerateAccessToken prints the access token URL of a Git repository

func (*GitCLI) Pull

func (g *GitCLI) Pull(dir string) error

Pull pulls the Git repository in the given directory

func (*GitCLI) PullRemoteBranches

func (g *GitCLI) PullRemoteBranches(dir string) error

PullRemoteBranches pulls the remote Git tags from the given directory

func (*GitCLI) PullUpstream

func (g *GitCLI) PullUpstream(dir string) error

PullUpstream pulls the remote upstream branch into master branch into the given directory

func (*GitCLI) Push

func (g *GitCLI) Push(dir string, remote string, force bool, refspec ...string) error

Push pushes the changes from the repository at the given directory

func (*GitCLI) PushMaster

func (g *GitCLI) PushMaster(dir string) error

PushMaster pushes the master branch into the origin, setting the upstream

func (*GitCLI) PushMirror

func (g *GitCLI) PushMirror(dir string, url string) error

PushMirror will push the dir as a mirror to url

func (*GitCLI) PushTag

func (g *GitCLI) PushTag(dir string, tag string) error

Pushtag pushes the given tag into the origin

func (*GitCLI) ReadRepoAttributes

func (g *GitCLI) ReadRepoAttributes(dir string) (string, error)

ReadRepoAttributes reads the existing content, if any, in .git/info/attributes

func (*GitCLI) RebaseTheirs

func (g *GitCLI) RebaseTheirs(dir string, upstream string, branch string, skipEmpty bool) error

RebaseTheirs runs git rebase upstream branch with the strategy option theirs

func (*GitCLI) RemoteBranchNames

func (g *GitCLI) RemoteBranchNames(dir string, remoteRefPrefix string) ([]string, error)

RemoteBranchNames returns all remote branches with the given remoteRefPrefix

func (*GitCLI) RemoteBranches

func (g *GitCLI) RemoteBranches(dir string) ([]string, error)

RemoteBranches returns the remote branches

func (*GitCLI) RemoteMergedBranchNames

func (g *GitCLI) RemoteMergedBranchNames(dir string, remoteRefPrefix string) ([]string, error)

RemoteMergedBranchNames returns all remote branches that were merged with the given remoteRefPrefix

func (*GitCLI) RemoteUpdate

func (g *GitCLI) RemoteUpdate(dir string) error

RemoteUpdate performs a git remote update

func (*GitCLI) Remotes

func (g *GitCLI) Remotes(dir string) ([]string, error)

Remotes will list the names of the remotes

func (*GitCLI) Remove

func (g *GitCLI) Remove(dir, fileName string) error

Remove removes the given file from a Git repository located at the given directory

func (*GitCLI) RemoveForce

func (g *GitCLI) RemoveForce(dir, fileName string) error

Remove force removes the given file from a git repository located at the given directory

func (*GitCLI) RepoName

func (g *GitCLI) RepoName(org, repoName string) string

RepoName formats the repository names based on the organization

func (*GitCLI) Reset

func (g *GitCLI) Reset(dir string, commitish string, hard bool) error

Reset performs a git reset --hard back to the commitish specified

func (*GitCLI) ResetToUpstream

func (g *GitCLI) ResetToUpstream(dir string, branch string) error

ResetToUpstream resets the given branch to the upstream version

func (*GitCLI) RevParse

func (g *GitCLI) RevParse(dir string, rev string) (string, error)

RevParse runs git rev-parse on rev

func (*GitCLI) Server

func (g *GitCLI) Server(dir string) (string, error)

Server returns the Git server of the repository at the given directory

func (*GitCLI) SetEmail

func (g *GitCLI) SetEmail(dir string, email string) error

SetEmail sets the given email in the git configuration

func (*GitCLI) SetRemoteURL

func (g *GitCLI) SetRemoteURL(dir string, name string, gitURL string) error

SetRemoteURL sets the remote URL of the remote with the given name

func (*GitCLI) SetUpstreamTo

func (g *GitCLI) SetUpstreamTo(dir string, branch string) error

SetUpstreamTo will set the given branch to track the origin branch with the same name

func (*GitCLI) SetUsername

func (g *GitCLI) SetUsername(dir string, username string) error

SetUsername sets the username in the git configuration

func (*GitCLI) ShallowClone

func (g *GitCLI) ShallowClone(dir string, url string, commitish string, pullRequest string) error

ShallowClone shallow clones the repo at url from the specified commitish or pull request to a local master branch

func (*GitCLI) ShallowCloneBranch

func (g *GitCLI) ShallowCloneBranch(gitURL string, branch string, dir string) error

Clone clones a single branch of the given git URL into the given directory

func (*GitCLI) StashPop

func (g *GitCLI) StashPop(dir string) error

StashPop applies the last stash , will error if there is no stash. Error can be checked using IsNoStashEntriesError

func (*GitCLI) StashPush

func (g *GitCLI) StashPush(dir string) error

StashPush stashes the current changes from the given directory

func (*GitCLI) Status

func (g *GitCLI) Status(dir string) error

Status returns the status of the git repository at the given directory

func (*GitCLI) Tags

func (g *GitCLI) Tags(dir string) ([]string, error)

Tags returns all tags from the repository at the given directory

func (*GitCLI) UpdateRemote

func (g *GitCLI) UpdateRemote(dir, url string) error

UpdateRemote updates the URL of the remote repository

func (*GitCLI) Username

func (g *GitCLI) Username(dir string) (string, error)

Username return the username from the git configuration

func (*GitCLI) Version

func (g *GitCLI) Version() (string, error)

Version returns the git version

func (*GitCLI) WriteOperation

func (g *GitCLI) WriteOperation(dir string, args ...string) error

WriteOperation performs a generic write operation, with nicer error handling

func (*GitCLI) WriteRepoAttributes

func (g *GitCLI) WriteRepoAttributes(dir string, content string) error

WriteRepoAttributes writes the given content to .git/info/attributes

type GitCommit

type GitCommit struct {
	SHA       string
	Message   string
	Author    *GitUser
	URL       string
	Branch    string
	Committer *GitUser
}

func (*GitCommit) OneLine

func (c *GitCommit) OneLine() string

OneLine returns the commit in the Oneline format

func (*GitCommit) ShortSha

func (c *GitCommit) ShortSha() string

ShortSha returns short SHA of the commit.

func (*GitCommit) Subject

func (c *GitCommit) Subject() string

Subject returns the subject line of the commit message.

type GitFake

type GitFake struct {
	GitRemotes     []GitRemote
	Branches       []string
	BranchesRemote []string
	CurrentBranch  string
	AccessTokenURL string
	RepoInfo       GitRepository
	Fork           bool
	GitVersion     string
	GitUser        GitUser
	Commits        []GitCommit
	Changes        bool
	GitTags        []GitTag
	Revision       string
}

GitFake provides a fake Gitter

func (*GitFake) Add

func (g *GitFake) Add(dir string, args ...string) error

Add add files to git

func (*GitFake) AddCommit

func (g *GitFake) AddCommit(dir string, msg string) error

AddCommit add a commit

func (*GitFake) AddCommitFiles

func (g *GitFake) AddCommitFiles(dir string, msg string, files []string) error

AddCommitFiles add files to a commit

func (*GitFake) AddRemote

func (g *GitFake) AddRemote(dir string, name string, url string) error

AddRemote adds a remote

func (*GitFake) Branch

func (g *GitFake) Branch(dir string) (string, error)

Branch returns the current branch

func (*GitFake) Checkout

func (g *GitFake) Checkout(dir string, branch string) error

Checkout checkout the branch

func (*GitFake) CheckoutCommitFiles

func (g *GitFake) CheckoutCommitFiles(dir string, commit string, files []string) error

CheckoutCommitFiles checks out the given files

func (*GitFake) CheckoutOrphan

func (g *GitFake) CheckoutOrphan(dir string, branch string) error

CheckoutOrphan checkout the orphan

func (*GitFake) CheckoutRemoteBranch

func (g *GitFake) CheckoutRemoteBranch(dir string, branch string) error

CheckoutRemoteBranch checkout remote branch

func (*GitFake) CherryPick

func (g *GitFake) CherryPick(dir string, commit string) error

CherryPick does a git cherry-pick of commit

func (*GitFake) CherryPickTheirs

func (g *GitFake) CherryPickTheirs(dir string, commit string) error

CherryPickTheirs does a git cherry-pick of commit

func (*GitFake) CherryPickTheirsKeepRedundantCommits

func (g *GitFake) CherryPickTheirsKeepRedundantCommits(dir string, commit string) error

CherryPickTheirsKeepRedundantCommits does a git cherry-pick of commit

func (*GitFake) CleanForce

func (g *GitFake) CleanForce(dir string, fileName string) error

CleanForce clean force

func (*GitFake) Clone

func (g *GitFake) Clone(url string, directory string) error

Clone clones the repo to the given dir

func (*GitFake) CloneBare

func (g *GitFake) CloneBare(dir string, url string) error

CloneBare does nothing

func (*GitFake) CloneOrPull

func (g *GitFake) CloneOrPull(url string, directory string) error

CloneOrPull performs a clone or pull

func (*GitFake) CommitDir

func (g *GitFake) CommitDir(dir string, message string) error

CommitDir commit a dir

func (*GitFake) CommitIfChanges

func (g *GitFake) CommitIfChanges(dir string, message string) error

CommitIfChanges git commit if there are changes

func (*GitFake) Config

func (g *GitFake) Config(dir string, args ...string) error

func (*GitFake) ConvertToValidBranchName

func (g *GitFake) ConvertToValidBranchName(name string) string

ConvertToValidBranchName converts the name to a valid branch name

func (*GitFake) CreateAuthenticatedURL

func (g *GitFake) CreateAuthenticatedURL(cloneURL string, userAuth *auth.UserAuth) (string, error)

CreateAuthenticatedURL creates a Push URL

func (*GitFake) CreateBranch

func (g *GitFake) CreateBranch(dir string, branch string) error

CreateBranch creates a branch

func (*GitFake) CreateBranchFrom

func (g *GitFake) CreateBranchFrom(dir string, branchName string, startPoint string) error

CreateBranchFrom creates a new branch called branchName from startPoint

func (*GitFake) CreateTag

func (g *GitFake) CreateTag(dir string, tag string, msg string) error

CreateTag creates a tag

func (*GitFake) DeleteLocalBranch

func (g *GitFake) DeleteLocalBranch(dir string, branch string) error

DeleteLocalBranch deletes a remote branch

func (*GitFake) DeleteRemoteBranch

func (g *GitFake) DeleteRemoteBranch(dir string, remoteName string, branch string) error

DeleteRemoteBranch deletes a remote branch

func (*GitFake) Describe

func (g *GitFake) Describe(dir string, contains bool, commitish string, abbrev string, fallback bool) (string, string, error)

Describe does a git describe of commitish, optionally adding the abbrev arg if not empty

func (*GitFake) Diff

func (g *GitFake) Diff(dir string) (string, error)

Diff performs a git diff

func (*GitFake) DiscoverRemoteGitURL

func (g *GitFake) DiscoverRemoteGitURL(gitConf string) (string, error)

DiscoverRemoteGitURL discover the remote git URL

func (*GitFake) DiscoverUpstreamGitURL

func (g *GitFake) DiscoverUpstreamGitURL(gitConf string) (string, error)

DiscoverUpstreamGitURL discover the upstream git URL

func (*GitFake) Email

func (g *GitFake) Email(dir string) (string, error)

Email returns the current user git email address

func (*GitFake) FetchBranch

func (g *GitFake) FetchBranch(dir string, repo string, refspec ...string) error

FetchBranch fetch branch

func (*GitFake) FetchBranchShallow

func (g *GitFake) FetchBranchShallow(dir string, repo string, refspec ...string) error

FetchBranchShallow fetch branch

func (*GitFake) FetchBranchUnshallow

func (g *GitFake) FetchBranchUnshallow(dir string, repo string, refspec ...string) error

FetchBranch fetch branch

func (*GitFake) FetchRemoteTags

func (g *GitFake) FetchRemoteTags(dir string, repo string) error

FetchRemoteTags fetches tags from a remote repository

func (*GitFake) FetchTags

func (g *GitFake) FetchTags(dir string) error

FetchTags fetches tags

func (*GitFake) FetchUnshallow

func (g *GitFake) FetchUnshallow(dir string) error

FetchUnshallow deepens a shallow git clone

func (*GitFake) FilterTags

func (g *GitFake) FilterTags(dir string, filter string) ([]string, error)

FilterTags returns all tags from the repository at the given directory that match the filter

func (*GitFake) FindGitConfigDir

func (g *GitFake) FindGitConfigDir(dir string) (string, string, error)

FindGitConfigDir finds the git config dir

func (*GitFake) ForcePushBranch

func (g *GitFake) ForcePushBranch(dir string, localBranch string, remoteBranch string) error

ForcePushBranch force push a branch

func (*GitFake) GetAuthorEmailForCommit

func (g *GitFake) GetAuthorEmailForCommit(dir string, sha string) (string, error)

GetAuthorEmailForCommit returns the author email for a commit

func (*GitFake) GetCommitPointedToByLatestTag

func (g *GitFake) GetCommitPointedToByLatestTag(dir string) (string, string, error)

GetCommitPointedToByLatestTag returns the current git tag sha

func (*GitFake) GetCommitPointedToByPreviousTag

func (g *GitFake) GetCommitPointedToByPreviousTag(dir string) (string, string, error)

GetCommitPointedToByPreviousTag returns the previous git tag SHA

func (*GitFake) GetCommitPointedToByTag

func (g *GitFake) GetCommitPointedToByTag(dir string, tag string) (string, error)

GetCommitPointedToByTag return the SHA of the commit pointed to by the given git tag

func (*GitFake) GetCommits

func (g *GitFake) GetCommits(dir string, startSha string, endSha string) ([]GitCommit, error)

GetCommits returns the commits in a range, exclusive of startSha and inclusive of endSha

func (*GitFake) GetCommitsNotOnAnyRemote

func (g *GitFake) GetCommitsNotOnAnyRemote(dir string, branch string) ([]GitCommit, error)

GetCommitsNotOnAnyRemote returns a list of commits which are on branch but not present on a remote

func (*GitFake) GetFirstCommitSha

func (g *GitFake) GetFirstCommitSha(dir string) (string, error)

GetFirstCommitSha returns the last commit message

func (*GitFake) GetLatestCommitMessage

func (g *GitFake) GetLatestCommitMessage(dir string) (string, error)

GetLatestCommitMessage returns the last commit message

func (*GitFake) GetLatestCommitSha

func (g *GitFake) GetLatestCommitSha(dir string) (string, error)

GetLatestCommitSha returns the sha of the last commit

func (*GitFake) GetRemoteUrl

func (g *GitFake) GetRemoteUrl(config *gitcfg.Config, name string) string

GetRemoteUrl get the remote URL

func (*GitFake) GetRevisionBeforeDate

func (g *GitFake) GetRevisionBeforeDate(dir string, t time.Time) (string, error)

GetRevisionBeforeDate get the revision before the date

func (*GitFake) GetRevisionBeforeDateText

func (g *GitFake) GetRevisionBeforeDateText(dir string, dateText string) (string, error)

GetRevisionBeforeDateText get the revision before the date text

func (*GitFake) HasChanges

func (g *GitFake) HasChanges(dir string) (bool, error)

HasChanges returns true if has changes in git

func (*GitFake) HasFileChanged

func (g *GitFake) HasFileChanged(dir string, fileName string) (bool, error)

HasFileChanged returns true if file has changes in git

func (*GitFake) Info

func (g *GitFake) Info(dir string) (*GitRepository, error)

Info returns the git repo info

func (*GitFake) Init

func (g *GitFake) Init(dir string) error

Init initialises git in a dir

func (*GitFake) IsAncestor

func (g *GitFake) IsAncestor(dir string, possibleAncestor string, commitish string) (bool, error)

IsAncestor checks if the possible ancestor commit-ish is an ancestor of the given commit-ish.

func (*GitFake) IsFork

func (g *GitFake) IsFork(dir string) (bool, error)

IsFork returns trie if this repo is a fork

func (*GitFake) IsShallow

func (g *GitFake) IsShallow(dir string) (bool, error)

IsShallow returns false

func (*GitFake) IsVersionControlled

func (g *GitFake) IsVersionControlled(dir string) (bool, error)

func (*GitFake) ListChangedFilesFromBranch

func (g *GitFake) ListChangedFilesFromBranch(dir string, branch string) (string, error)

ListChangedFilesFromBranch lists changes files between current checkout and a branch

func (*GitFake) LoadFileFromBranch

func (g *GitFake) LoadFileFromBranch(dir string, branch string, file string) (string, error)

LoadFileFromBranch returns a files's contents from a branch

func (*GitFake) LocalBranches

func (g *GitFake) LocalBranches(dir string) ([]string, error)

LocalBranches will list all local branches

func (*GitFake) Merge

func (g *GitFake) Merge(dir string, commitish string) error

Merge merges the commitish into the current branch

func (*GitFake) MergeTheirs

func (g *GitFake) MergeTheirs(dir string, commitish string) error

MergeTheirs does nothing

func (*GitFake) PrintCreateRepositoryGenerateAccessToken

func (g *GitFake) PrintCreateRepositoryGenerateAccessToken(server *auth.AuthServer, username string, o io.Writer)

PrintCreateRepositoryGenerateAccessToken prints the generate access token URL

func (*GitFake) Pull

func (g *GitFake) Pull(dir string) error

Pull git pulls

func (*GitFake) PullRemoteBranches

func (g *GitFake) PullRemoteBranches(dir string) error

PullRemoteBranches pull remote branches

func (*GitFake) PullUpstream

func (g *GitFake) PullUpstream(dir string) error

PullUpstream pulls upstream

func (*GitFake) Push

func (g *GitFake) Push(dir string, remote string, force bool, refspec ...string) error

Push performs a git push

func (*GitFake) PushMaster

func (g *GitFake) PushMaster(dir string) error

PushMaster pushes to master

func (*GitFake) PushMirror

func (g *GitFake) PushMirror(dir string, url string) error

PushMirror does nothing

func (*GitFake) PushTag

func (g *GitFake) PushTag(dir string, tag string) error

PushTag pushes a tag

func (*GitFake) ReadRepoAttributes

func (g *GitFake) ReadRepoAttributes(dir string) (string, error)

ReadRepoAttributes reads the existing content, if any, in .git/info/attributes

func (*GitFake) RebaseTheirs

func (g *GitFake) RebaseTheirs(dir string, upstream string, branch string, skipEmpty bool) error

RebaseTheirs does nothing

func (*GitFake) RemoteBranchNames

func (g *GitFake) RemoteBranchNames(dir string, prefix string) ([]string, error)

RemoteBranchNames list the remote branch names

func (*GitFake) RemoteBranches

func (g *GitFake) RemoteBranches(dir string) ([]string, error)

RemoteBranches list the remote branches

func (*GitFake) RemoteMergedBranchNames

func (g *GitFake) RemoteMergedBranchNames(dir string, prefix string) ([]string, error)

RemoteMergedBranchNames list the remote branch names that are merged

func (*GitFake) RemoteUpdate

func (g *GitFake) RemoteUpdate(dir string) error

RemoteUpdate performs a git remote update

func (*GitFake) Remotes

func (g *GitFake) Remotes(dir string) ([]string, error)

Remotes will list the names of the remotes

func (*GitFake) Remove

func (g *GitFake) Remove(dir string, fileName string) error

Remove a file from git

func (*GitFake) RemoveForce

func (g *GitFake) RemoveForce(dir string, fileName string) error

RemoveForce remove force

func (*GitFake) RepoName

func (g *GitFake) RepoName(org string, repoName string) string

RepoName returns the repo name

func (*GitFake) Reset

func (g *GitFake) Reset(dir string, commitish string, hard bool) error

Reset performs a git reset --hard back to the commitish specified

func (*GitFake) ResetToUpstream

func (g *GitFake) ResetToUpstream(dir string, branch string) error

ResetToUpstream resets the given branch to the upstream version

func (*GitFake) RevParse

func (g *GitFake) RevParse(dir string, rev string) (string, error)

RevParse runs git rev-parse on rev

func (*GitFake) Server

func (g *GitFake) Server(dir string) (string, error)

Server returns the server URL

func (*GitFake) SetEmail

func (g *GitFake) SetEmail(dir string, email string) error

SetEmail sets the git email address

func (*GitFake) SetRemoteURL

func (g *GitFake) SetRemoteURL(dir string, name string, gitURL string) error

SetRemoteURL sets a remote URL

func (*GitFake) SetUpstreamTo

func (g *GitFake) SetUpstreamTo(dir string, branch string) error

SetUpstreamTo will set the given branch to track the origin branch with the same name

func (*GitFake) SetUsername

func (g *GitFake) SetUsername(dir string, username string) error

SetUsername sets the username

func (*GitFake) ShallowClone

func (g *GitFake) ShallowClone(dir string, url string, commitish string, pullRequest string) error

ShallowClone shallow clones the repo at url from the specified commitish or pull request to a local master branch

func (*GitFake) ShallowCloneBranch

func (g *GitFake) ShallowCloneBranch(url string, branch string, directory string) error

ShallowCloneBranch shallow clone of a branch

func (*GitFake) StashPop

func (g *GitFake) StashPop(dir string) error

StashPop does nothing

func (*GitFake) StashPush

func (g *GitFake) StashPush(dir string) error

StashPush git stash

func (*GitFake) Status

func (g *GitFake) Status(dir string) error

Status check the status

func (*GitFake) Tags

func (g *GitFake) Tags(dir string) ([]string, error)

Tags lists the tags

func (*GitFake) UpdateRemote

func (g *GitFake) UpdateRemote(dir string, url string) error

UpdateRemote updates a remote

func (*GitFake) Username

func (g *GitFake) Username(dir string) (string, error)

Username returns the current user name

func (*GitFake) Version

func (g *GitFake) Version() (string, error)

Version returns the git version

func (*GitFake) WriteRepoAttributes

func (g *GitFake) WriteRepoAttributes(dir string, content string) error

WriteRepoAttributes writes the given content to .git/info/attributes

type GitFileContent

type GitFileContent struct {
	Type        string
	Encoding    string
	Size        int
	Name        string
	Path        string
	Content     string
	Sha         string
	Url         string
	GitUrl      string
	HtmlUrl     string
	DownloadUrl string
}

type GitHubProvider

type GitHubProvider struct {
	Username string
	Client   *github.Client
	Context  context.Context

	Server auth.AuthServer
	User   auth.UserAuth
	Git    Gitter
}

func (*GitHubProvider) AcceptInvitation

func (p *GitHubProvider) AcceptInvitation(ID int64) (*github.Response, error)

func (*GitHubProvider) AddCollaborator

func (p *GitHubProvider) AddCollaborator(user string, organisation string, repo string) error

func (*GitHubProvider) AddLabelsToIssue

func (p *GitHubProvider) AddLabelsToIssue(owner string, repo string, number int, labels []string) error

AddLabelsToIssue adds labels to an issue

func (*GitHubProvider) AddPRComment

func (p *GitHubProvider) AddPRComment(pr *GitPullRequest, comment string) error

func (*GitHubProvider) BranchArchiveURL

func (p *GitHubProvider) BranchArchiveURL(org string, name string, branch string) string

func (*GitHubProvider) ConfigureFeatures

func (p *GitHubProvider) ConfigureFeatures(owner string, repo string, issues *bool, projects *bool, wikis *bool) (*GitRepository, error)

ConfigureFeatures sets specific features as enabled or disabled for owner/repo

func (*GitHubProvider) CreateIssue

func (p *GitHubProvider) CreateIssue(owner string, repo string, issue *GitIssue) (*GitIssue, error)

func (*GitHubProvider) CreateIssueComment

func (p *GitHubProvider) CreateIssueComment(owner string, repo string, number int, comment string) error

func (*GitHubProvider) CreatePullRequest

func (p *GitHubProvider) CreatePullRequest(data *GitPullRequestArguments) (*GitPullRequest, error)

func (*GitHubProvider) CreateRepository

func (p *GitHubProvider) CreateRepository(owner string, name string, private bool) (*GitRepository, error)

CreateRepository creates a new repository under owner/name, optionally private

func (*GitHubProvider) CreateWebHook

func (p *GitHubProvider) CreateWebHook(data *GitWebHookArguments) error

func (*GitHubProvider) CurrentUsername

func (p *GitHubProvider) CurrentUsername() string

func (*GitHubProvider) DeleteRepository

func (p *GitHubProvider) DeleteRepository(org string, name string) error

func (*GitHubProvider) ForkRepository

func (p *GitHubProvider) ForkRepository(originalOrg string, name string, destinationOrg string) (*GitRepository, error)

func (*GitHubProvider) GetBranch

func (p *GitHubProvider) GetBranch(owner string, repo string, branch string) (*GitBranch, error)

GetBranch returns the branch information for an owner/repo, including the commit at the tip

func (*GitHubProvider) GetContent

func (p *GitHubProvider) GetContent(org string, name string, path string, ref string) (*GitFileContent, error)

func (*GitHubProvider) GetEnterpriseApiURL

func (p *GitHubProvider) GetEnterpriseApiURL() string

GetEnterpriseApiURL returns the github enterprise API URL or blank if this provider is for the https://github.com service

func (*GitHubProvider) GetIssue

func (p *GitHubProvider) GetIssue(org string, name string, number int) (*GitIssue, error)

func (*GitHubProvider) GetLatestRelease

func (p *GitHubProvider) GetLatestRelease(org string, name string) (*GitRelease, error)

GetLatestRelease fetches the latest release from the git provider for org and name

func (*GitHubProvider) GetProjects

func (p *GitHubProvider) GetProjects(owner string, repo string) ([]GitProject, error)

GetProjects returns all the git projects in owner/repo

func (*GitHubProvider) GetPullRequest

func (p *GitHubProvider) GetPullRequest(owner string, repo *GitRepository, number int) (*GitPullRequest, error)

func (*GitHubProvider) GetPullRequestCommits

func (p *GitHubProvider) GetPullRequestCommits(owner string, repository *GitRepository, number int) ([]*GitCommit, error)

func (*GitHubProvider) GetRelease

func (p *GitHubProvider) GetRelease(org string, name string, tag string) (*GitRelease, error)

GetRelease gets the release info for org, repo name and tag

func (*GitHubProvider) GetRepository

func (p *GitHubProvider) GetRepository(org string, name string) (*GitRepository, error)

func (*GitHubProvider) HasIssues

func (p *GitHubProvider) HasIssues() bool

func (*GitHubProvider) IsBitbucketCloud

func (p *GitHubProvider) IsBitbucketCloud() bool

func (*GitHubProvider) IsBitbucketServer

func (p *GitHubProvider) IsBitbucketServer() bool

func (*GitHubProvider) IsGerrit

func (p *GitHubProvider) IsGerrit() bool

func (*GitHubProvider) IsGitHub

func (p *GitHubProvider) IsGitHub() bool

func (*GitHubProvider) IsGitea

func (p *GitHubProvider) IsGitea() bool

func (*GitHubProvider) IsUserInOrganisation

func (p *GitHubProvider) IsUserInOrganisation(user string, org string) (bool, error)

func (*GitHubProvider) IsWikiEnabled

func (p *GitHubProvider) IsWikiEnabled(owner string, repo string) (bool, error)

IsWikiEnabled returns true if a wiki is enabled for owner/repo

func (*GitHubProvider) IssueURL

func (p *GitHubProvider) IssueURL(org string, name string, number int, isPull bool) string

func (*GitHubProvider) JenkinsWebHookPath

func (p *GitHubProvider) JenkinsWebHookPath(gitURL string, secret string) string

func (*GitHubProvider) Kind

func (p *GitHubProvider) Kind() string

func (*GitHubProvider) Label

func (p *GitHubProvider) Label() string

func (*GitHubProvider) ListCommitStatus

func (p *GitHubProvider) ListCommitStatus(org string, repo string, sha string) ([]*GitRepoStatus, error)

func (*GitHubProvider) ListCommits

func (p *GitHubProvider) ListCommits(owner, repo string, opt *ListCommitsArguments) ([]*GitCommit, error)

func (*GitHubProvider) ListInvitations

func (p *GitHubProvider) ListInvitations() ([]*github.RepositoryInvitation, *github.Response, error)

func (*GitHubProvider) ListOpenPullRequests

func (p *GitHubProvider) ListOpenPullRequests(owner string, repo string) ([]*GitPullRequest, error)

ListOpenPullRequests lists the open pull requests

func (*GitHubProvider) ListOrganisations

func (p *GitHubProvider) ListOrganisations() ([]GitOrganisation, error)

func (*GitHubProvider) ListReleases

func (p *GitHubProvider) ListReleases(org string, name string) ([]*GitRelease, error)

func (*GitHubProvider) ListRepositories

func (p *GitHubProvider) ListRepositories(org string) ([]*GitRepository, error)

func (*GitHubProvider) ListRepositoriesForUser

func (p *GitHubProvider) ListRepositoriesForUser(user string) ([]*GitRepository, error)

func (*GitHubProvider) ListWebHooks

func (p *GitHubProvider) ListWebHooks(owner string, repo string) ([]*GitWebHookArguments, error)

func (*GitHubProvider) MergePullRequest

func (p *GitHubProvider) MergePullRequest(pr *GitPullRequest, message string) error

func (*GitHubProvider) PullRequestLastCommitStatus

func (p *GitHubProvider) PullRequestLastCommitStatus(pr *GitPullRequest) (string, error)

func (*GitHubProvider) RenameRepository

func (p *GitHubProvider) RenameRepository(org string, name string, newName string) (*GitRepository, error)

func (*GitHubProvider) SearchIssues

func (p *GitHubProvider) SearchIssues(org string, name string, filter string) ([]*GitIssue, error)

func (*GitHubProvider) SearchIssuesClosedSince

func (p *GitHubProvider) SearchIssuesClosedSince(org string, name string, t time.Time) ([]*GitIssue, error)

func (*GitHubProvider) ServerURL

func (p *GitHubProvider) ServerURL() string

func (*GitHubProvider) ShouldForkForPullRequest

func (p *GitHubProvider) ShouldForkForPullRequest(originalOwner string, repoName string, username string) bool

ShouldForkForPullRequest returns true if we should create a personal fork of this repository before creating a pull request

func (*GitHubProvider) UpdateCommitStatus

func (p *GitHubProvider) UpdateCommitStatus(org string, repo string, sha string, status *GitRepoStatus) (*GitRepoStatus, error)

func (*GitHubProvider) UpdatePullRequest

func (p *GitHubProvider) UpdatePullRequest(data *GitPullRequestArguments, number int) (*GitPullRequest, error)

UpdatePullRequest updates pull request with number using data

func (*GitHubProvider) UpdatePullRequestStatus

func (p *GitHubProvider) UpdatePullRequestStatus(pr *GitPullRequest) error

func (*GitHubProvider) UpdateRelease

func (p *GitHubProvider) UpdateRelease(owner string, repo string, tag string, releaseInfo *GitRelease) error

func (*GitHubProvider) UpdateReleaseStatus

func (p *GitHubProvider) UpdateReleaseStatus(owner string, repo string, tag string, releaseInfo *GitRelease) error

UpdateReleaseStatus updates the state (release/prerelease) of a release

func (*GitHubProvider) UpdateWebHook

func (p *GitHubProvider) UpdateWebHook(data *GitWebHookArguments) error

func (*GitHubProvider) UploadReleaseAsset

func (p *GitHubProvider) UploadReleaseAsset(org string, repo string, id int64, name string, asset *os.File) (*GitReleaseAsset, error)

UploadReleaseAsset will upload an asset to org/repo to a release with id, giving it a name, it will return the release asset from the git provider

func (*GitHubProvider) UserAuth

func (p *GitHubProvider) UserAuth() auth.UserAuth

func (*GitHubProvider) UserInfo

func (p *GitHubProvider) UserInfo(username string) *GitUser

func (*GitHubProvider) ValidateRepositoryName

func (p *GitHubProvider) ValidateRepositoryName(org string, name string) error

type GitIssue

type GitIssue struct {
	URL           string
	Owner         string
	Repo          string
	Number        *int
	Key           string
	Title         string
	Body          string
	State         *string
	Labels        []GitLabel
	StatusesURL   *string
	IssueURL      *string
	CreatedAt     *time.Time
	UpdatedAt     *time.Time
	ClosedAt      *time.Time
	IsPullRequest bool
	User          *GitUser
	ClosedBy      *GitUser
	Assignees     []GitUser
}

func BitbucketIssueToGitIssue

func BitbucketIssueToGitIssue(bIssue bitbucket.Issue) *GitIssue

func FilterIssuesClosedSince

func FilterIssuesClosedSince(issues []*GitIssue, t time.Time) []*GitIssue

FilterIssuesClosedSince returns a filtered slice of all the issues closed since the given date

func (*GitIssue) IsClosedSince

func (i *GitIssue) IsClosedSince(t time.Time) bool

IsClosedSince returns true if the issue has been closed since the given da

func (*GitIssue) Name

func (i *GitIssue) Name() string

Name returns the textual name of the issue

type GitLabel

type GitLabel struct {
	URL   string
	Name  string
	Color string
}

func ToGitLabels

func ToGitLabels(names []string) []GitLabel

ToGitLabels converts the list of label names into an array of GitLabels

type GitLocal

type GitLocal struct {
	GitCLI  *GitCLI
	GitFake *GitFake
}

GitLocal provides a semi-fake Gitter - local operations delegate to GitCLI but remote operations are delegated to FakeGit. When using it in tests you must make sure you are operating on a temporary copy of a git repo NOT the real one on your disk (as it will get changed!). Faked out methods have the comment "Faked out"

func NewGitLocal

func NewGitLocal() *GitLocal

NewGitLocal creates a new GitLocal instance

func (*GitLocal) Add

func (g *GitLocal) Add(dir string, args ...string) error

Add does a git add for all the given arguments

func (*GitLocal) AddCommit

func (g *GitLocal) AddCommit(dir string, msg string) error

AddCommit perform an add and commit of the changes from the repository at the given directory with the given messages

func (*GitLocal) AddCommitFiles

func (g *GitLocal) AddCommitFiles(dir string, msg string, files []string) error

AddCommitFiles add files to a commit

func (*GitLocal) AddRemote

func (g *GitLocal) AddRemote(dir string, name string, url string) error

AddRemote adds a remote repository at the given URL and with the given name

func (*GitLocal) Branch

func (g *GitLocal) Branch(dir string) (string, error)

Branch returns the current branch of the repository located at the given directory

func (*GitLocal) Checkout

func (g *GitLocal) Checkout(dir string, branch string) error

Checkout checks out the given branch

func (*GitLocal) CheckoutCommitFiles

func (g *GitLocal) CheckoutCommitFiles(dir string, commit string, files []string) error

CheckoutCommitFiles checks out the given files

func (*GitLocal) CheckoutOrphan

func (g *GitLocal) CheckoutOrphan(dir string, branch string) error

CheckoutOrphan checks out the given branch as an orphan

func (*GitLocal) CheckoutRemoteBranch

func (g *GitLocal) CheckoutRemoteBranch(dir string, branch string) error

CheckoutRemoteBranch checks out the given remote tracking branch

func (*GitLocal) CherryPick

func (g *GitLocal) CherryPick(dir string, commit string) error

CherryPick does a git cherry-pick of commit

func (*GitLocal) CherryPickTheirs

func (g *GitLocal) CherryPickTheirs(dir string, commit string) error

CherryPickTheirs does a git cherry-pick of commit

func (*GitLocal) CherryPickTheirsKeepRedundantCommits

func (g *GitLocal) CherryPickTheirsKeepRedundantCommits(dir string, commit string) error

CherryPickTheirsKeepRedundantCommits does a git cherry-pick of commit

func (*GitLocal) CleanForce

func (g *GitLocal) CleanForce(dir, fileName string) error

CleanForce cleans a git repository located at a given directory

func (*GitLocal) Clone

func (g *GitLocal) Clone(url string, dir string) error

Clone clones the given git URL into the given directory Faked out

func (*GitLocal) CloneBare

func (g *GitLocal) CloneBare(dir string, url string) error

CloneBare does nothing

func (*GitLocal) CloneOrPull

func (g *GitLocal) CloneOrPull(url string, dir string) error

CloneOrPull clones the given git URL or pull if it already exists Faked out

func (*GitLocal) CommitDir

func (g *GitLocal) CommitDir(dir string, message string) error

CommitDir commits all changes from the given directory

func (*GitLocal) CommitIfChanges

func (g *GitLocal) CommitIfChanges(dir string, message string) error

CommitIfChanges does a commit if there are any changes in the repository at the given directory

func (*GitLocal) Config

func (g *GitLocal) Config(dir string, args ...string) error

func (*GitLocal) ConvertToValidBranchName

func (g *GitLocal) ConvertToValidBranchName(name string) string

ConvertToValidBranchName converts the given branch name into a valid git branch string replacing any dodgy characters

func (*GitLocal) CreateAuthenticatedURL

func (g *GitLocal) CreateAuthenticatedURL(cloneURL string, userAuth *auth.UserAuth) (string, error)

CreateAuthenticatedURL creates the Git repository URL with the username and password encoded for HTTPS based URLs

func (*GitLocal) CreateBranch

func (g *GitLocal) CreateBranch(dir string, branch string) error

CreateBranch creates a branch with the given name in the Git repository from the given directory

func (*GitLocal) CreateBranchFrom

func (g *GitLocal) CreateBranchFrom(dir string, branchName string, startPoint string) error

CreateBranchFrom creates a new branch called branchName from startPoint

func (*GitLocal) CreateTag

func (g *GitLocal) CreateTag(dir string, tag string, msg string) error

CreateTag creates a tag with the given name and message in the repository at the given directory

func (*GitLocal) DeleteLocalBranch

func (g *GitLocal) DeleteLocalBranch(dir string, branch string) error

DeleteLocalBranch deletes a remote branch

func (*GitLocal) DeleteRemoteBranch

func (g *GitLocal) DeleteRemoteBranch(dir string, remoteName string, branch string) error

DeleteRemoteBranch deletes the remote branch in the given given directory Faked out

func (*GitLocal) Describe

func (g *GitLocal) Describe(dir string, contains bool, commitish string, abbrev string, fallback bool) (string, string, error)

Describe does a git describe of commitish, optionally adding the abbrev arg if not empty

func (*GitLocal) Diff

func (g *GitLocal) Diff(dir string) (string, error)

Diff runs git diff

func (*GitLocal) DiscoverRemoteGitURL

func (g *GitLocal) DiscoverRemoteGitURL(gitConf string) (string, error)

DiscoverRemoteGitURL discovers the remote git URL from the given git configuration

func (*GitLocal) DiscoverUpstreamGitURL

func (g *GitLocal) DiscoverUpstreamGitURL(gitConf string) (string, error)

DiscoverUpstreamGitURL discovers the upstream git URL from the given git configuration

func (*GitLocal) Email

func (g *GitLocal) Email(dir string) (string, error)

Email returns the email from the git configuration Faked out

func (*GitLocal) FetchBranch

func (g *GitLocal) FetchBranch(dir string, repo string, refspec ...string) error

FetchBranch fetches a branch Faked out

func (*GitLocal) FetchBranchShallow

func (g *GitLocal) FetchBranchShallow(dir string, repo string, refspec ...string) error

FetchBranchShallow fetches a branch Faked out

func (*GitLocal) FetchBranchUnshallow

func (g *GitLocal) FetchBranchUnshallow(dir string, repo string, refspec ...string) error

FetchBranchUnshallow fetches a branch Faked out

func (*GitLocal) FetchRemoteTags

func (g *GitLocal) FetchRemoteTags(dir string, repo string) error

FetchRemoteTags fetches all the tags from a remote repository Faked out

func (*GitLocal) FetchTags

func (g *GitLocal) FetchTags(dir string) error

FetchTags fetches all the tags Faked out

func (*GitLocal) FetchUnshallow

func (g *GitLocal) FetchUnshallow(dir string) error

FetchUnshallow does nothing Faked out

func (*GitLocal) FilterTags

func (g *GitLocal) FilterTags(dir string, filter string) ([]string, error)

FilterTags returns all tags from the repository at the given directory that match the filter

func (*GitLocal) FindGitConfigDir

func (g *GitLocal) FindGitConfigDir(dir string) (string, string, error)

FindGitConfigDir tries to find the `.git` directory either in the current directory or in parent directories Faked out

func (*GitLocal) ForcePushBranch

func (g *GitLocal) ForcePushBranch(dir string, localBranch string, remoteBranch string) error

ForcePushBranch does a force push of the local branch into the remote branch of the repository at the given directory Faked out

func (*GitLocal) GetAuthorEmailForCommit

func (g *GitLocal) GetAuthorEmailForCommit(dir string, sha string) (string, error)

GetAuthorEmailForCommit returns the author email from commit message with the given SHA

func (*GitLocal) GetCommitPointedToByLatestTag

func (g *GitLocal) GetCommitPointedToByLatestTag(dir string) (string, string, error)

GetCommitPointedToByLatestTag return the SHA of the current git tag from the repository at the given directory

func (*GitLocal) GetCommitPointedToByPreviousTag

func (g *GitLocal) GetCommitPointedToByPreviousTag(dir string) (string, string, error)

GetCommitPointedToByPreviousTag returns the previous git tag from the repository at the given directory

func (*GitLocal) GetCommitPointedToByTag

func (g *GitLocal) GetCommitPointedToByTag(dir string, tag string) (string, error)

GetCommitPointedToByTag return the SHA of the commit pointed to by the given git tag

func (*GitLocal) GetCommits

func (g *GitLocal) GetCommits(dir string, startSha string, endSha string) ([]GitCommit, error)

GetCommits returns the commits in a range, exclusive of startSha and inclusive of endSha

func (*GitLocal) GetCommitsNotOnAnyRemote

func (g *GitLocal) GetCommitsNotOnAnyRemote(dir string, branch string) ([]GitCommit, error)

GetCommitsNotOnAnyRemote returns a list of commits which are on branch but not present on a remote

func (*GitLocal) GetFirstCommitSha

func (g *GitLocal) GetFirstCommitSha(dir string) (string, error)

GetFirstCommitSha gets the first commit sha

func (*GitLocal) GetLatestCommitMessage

func (g *GitLocal) GetLatestCommitMessage(dir string) (string, error)

GetLatestCommitMessage returns the latest git commit message

func (*GitLocal) GetLatestCommitSha

func (g *GitLocal) GetLatestCommitSha(dir string) (string, error)

GetLatestCommitSha returns the sha of the last commit

func (*GitLocal) GetRemoteUrl

func (g *GitLocal) GetRemoteUrl(config *gitcfg.Config, name string) string

GetRemoteUrl returns the remote URL from the given git config

func (*GitLocal) GetRevisionBeforeDate

func (g *GitLocal) GetRevisionBeforeDate(dir string, t time.Time) (string, error)

GetRevisionBeforeDate returns the revision before the given date

func (*GitLocal) GetRevisionBeforeDateText

func (g *GitLocal) GetRevisionBeforeDateText(dir string, dateText string) (string, error)

GetRevisionBeforeDateText returns the revision before the given date in format "MonthName dayNumber year"

func (*GitLocal) HasChanges

func (g *GitLocal) HasChanges(dir string) (bool, error)

HasChanges indicates if there are any changes in the repository from the given directory

func (*GitLocal) HasFileChanged

func (g *GitLocal) HasFileChanged(dir string, fileName string) (bool, error)

HasFileChanged returns true if file has changes in git

func (*GitLocal) Info

func (g *GitLocal) Info(dir string) (*GitRepository, error)

Info returns the git info of the repository at the given directory

func (*GitLocal) Init

func (g *GitLocal) Init(dir string) error

Init inits a git repository into the given directory

func (*GitLocal) IsAncestor

func (g *GitLocal) IsAncestor(dir string, possibleAncestor string, commitish string) (bool, error)

IsAncestor checks if the possible ancestor commit-ish is an ancestor of the given commit-ish.

func (*GitLocal) IsFork

func (g *GitLocal) IsFork(dir string) (bool, error)

IsFork indicates if the repository at the given directory is a fork

func (*GitLocal) IsShallow

func (g *GitLocal) IsShallow(dir string) (bool, error)

IsShallow runs git rev-parse --is-shalllow-repository in dir

func (*GitLocal) IsVersionControlled

func (g *GitLocal) IsVersionControlled(dir string) (bool, error)

func (*GitLocal) ListChangedFilesFromBranch

func (g *GitLocal) ListChangedFilesFromBranch(dir string, branch string) (string, error)

ListChangedFilesFromBranch lists files changed between branches

func (*GitLocal) LoadFileFromBranch

func (g *GitLocal) LoadFileFromBranch(dir string, branch string, file string) (string, error)

LoadFileFromBranch returns a files's contents from a branch

func (*GitLocal) LocalBranches

func (g *GitLocal) LocalBranches(dir string) ([]string, error)

LocalBranches will list all local branches

func (*GitLocal) Merge

func (g *GitLocal) Merge(dir string, commitish string) error

Merge merges the commitish into the current branch

func (*GitLocal) MergeTheirs

func (g *GitLocal) MergeTheirs(dir string, commitish string) error

MergeTheirs performs a cherry pick of commitish

func (*GitLocal) PrintCreateRepositoryGenerateAccessToken

func (g *GitLocal) PrintCreateRepositoryGenerateAccessToken(server *auth.AuthServer, username string, o io.Writer)

PrintCreateRepositoryGenerateAccessToken prints the access token URL of a Git repository

func (*GitLocal) Pull

func (g *GitLocal) Pull(dir string) error

Pull pulls the Git repository in the given directory Faked out

func (*GitLocal) PullRemoteBranches

func (g *GitLocal) PullRemoteBranches(dir string) error

PullRemoteBranches pulls the remote Git tags from the given given directory Faked out

func (*GitLocal) PullUpstream

func (g *GitLocal) PullUpstream(dir string) error

PullUpstream pulls the remote upstream branch into master branch into the given directory Faked out

func (*GitLocal) Push

func (g *GitLocal) Push(dir string, remote string, force bool, refspec ...string) error

Push pushes the changes from the repository at the given directory Faked out

func (*GitLocal) PushMaster

func (g *GitLocal) PushMaster(dir string) error

PushMaster pushes the master branch into the origin Faked out

func (*GitLocal) PushMirror

func (g *GitLocal) PushMirror(dir string, url string) error

PushMirror does nothing

func (*GitLocal) PushTag

func (g *GitLocal) PushTag(dir string, tag string) error

PushTag pushes the given tag into the origin Faked out

func (*GitLocal) ReadRepoAttributes

func (g *GitLocal) ReadRepoAttributes(dir string) (string, error)

ReadRepoAttributes reads the existing content, if any, in .git/info/attributes

func (*GitLocal) RebaseTheirs

func (g *GitLocal) RebaseTheirs(dir string, upstream string, branch string, skipEmpty bool) error

RebaseTheirs runs git rebase upstream branch

func (*GitLocal) RemoteBranchNames

func (g *GitLocal) RemoteBranchNames(dir string, prefix string) ([]string, error)

RemoteBranchNames returns all remote branch names with the given prefix

func (*GitLocal) RemoteBranches

func (g *GitLocal) RemoteBranches(dir string) ([]string, error)

RemoteBranches returns the remote branches

func (*GitLocal) RemoteMergedBranchNames

func (g *GitLocal) RemoteMergedBranchNames(dir string, prefix string) ([]string, error)

RemoteMergedBranchNames returns all remote branch names with the given prefix

func (*GitLocal) RemoteUpdate

func (g *GitLocal) RemoteUpdate(dir string) error

RemoteUpdate performs a git remote update Faked out

func (*GitLocal) Remotes

func (g *GitLocal) Remotes(dir string) ([]string, error)

Remotes will list the names of the remotes

func (*GitLocal) Remove

func (g *GitLocal) Remove(dir, fileName string) error

Remove removes the given file from a Git repository located at the given directory

func (*GitLocal) RemoveForce

func (g *GitLocal) RemoveForce(dir, fileName string) error

RemoveForce removes the given file from a git repository located at the given directory

func (*GitLocal) RepoName

func (g *GitLocal) RepoName(org, repoName string) string

RepoName formats the repository names based on the organization

func (*GitLocal) Reset

func (g *GitLocal) Reset(dir string, commitish string, hard bool) error

Reset performs a git reset --hard back to the commitish specified

func (*GitLocal) ResetToUpstream

func (g *GitLocal) ResetToUpstream(dir string, branch string) error

ResetToUpstream resets the given branch to the upstream version

func (*GitLocal) RevParse

func (g *GitLocal) RevParse(dir string, rev string) (string, error)

RevParse runs git rev parse

func (*GitLocal) Server

func (g *GitLocal) Server(dir string) (string, error)

Server returns the Git server of the repository at the given directory

func (*GitLocal) SetEmail

func (g *GitLocal) SetEmail(dir string, email string) error

SetEmail sets the given email in the git configuration Faked out

func (*GitLocal) SetRemoteURL

func (g *GitLocal) SetRemoteURL(dir string, name string, gitURL string) error

SetRemoteURL sets the remote URL of the remote with the given name

func (*GitLocal) SetUpstreamTo

func (g *GitLocal) SetUpstreamTo(dir string, branch string) error

SetUpstreamTo will set the given branch to track the origin branch with the same name

func (*GitLocal) SetUsername

func (g *GitLocal) SetUsername(dir string, username string) error

SetUsername sets the username in the git configuration Faked out

func (*GitLocal) ShallowClone

func (g *GitLocal) ShallowClone(dir string, url string, commitish string, pullRequest string) error

ShallowClone shallow clones the repo at url from the specified commitish or pull request to a local master branch Faked out

func (*GitLocal) ShallowCloneBranch

func (g *GitLocal) ShallowCloneBranch(url string, branch string, dir string) error

ShallowCloneBranch clones a single branch of the given git URL into the given directory Faked out

func (*GitLocal) StashPop

func (g *GitLocal) StashPop(dir string) error

StashPop runs git stash pop

func (*GitLocal) StashPush

func (g *GitLocal) StashPush(dir string) error

StashPush stashes the current changes from the given directory

func (*GitLocal) Status

func (g *GitLocal) Status(dir string) error

Status returns the status of the git repository at the given directory

func (*GitLocal) Tags

func (g *GitLocal) Tags(dir string) ([]string, error)

Tags returns all tags from the repository at the given directory

func (*GitLocal) UpdateRemote

func (g *GitLocal) UpdateRemote(dir, url string) error

UpdateRemote updates the URL of the remote repository

func (*GitLocal) Username

func (g *GitLocal) Username(dir string) (string, error)

Username return the username from the git configuration Faked out

func (*GitLocal) Version

func (g *GitLocal) Version() (string, error)

Version returns the git version

func (*GitLocal) WriteRepoAttributes

func (g *GitLocal) WriteRepoAttributes(dir string, content string) error

WriteRepoAttributes writes the given content to .git/info/attributes

type GitOrganisation

type GitOrganisation struct {
	Login string
}

type GitProject

type GitProject struct {
	Name        string
	Description string
	Number      int
	State       string
}

GitProject is a project for managing issues

type GitProvider

type GitProvider interface {
	OrganisationLister

	ListRepositories(org string) ([]*GitRepository, error)

	CreateRepository(org string, name string, private bool) (*GitRepository, error)

	GetRepository(org string, name string) (*GitRepository, error)

	DeleteRepository(org string, name string) error

	ForkRepository(originalOrg string, name string, destinationOrg string) (*GitRepository, error)

	RenameRepository(org string, name string, newName string) (*GitRepository, error)

	ValidateRepositoryName(org string, name string) error

	CreatePullRequest(data *GitPullRequestArguments) (*GitPullRequest, error)

	UpdatePullRequest(data *GitPullRequestArguments, number int) (*GitPullRequest, error)

	UpdatePullRequestStatus(pr *GitPullRequest) error

	AddLabelsToIssue(owner, repo string, number int, labels []string) error

	GetPullRequest(owner string, repo *GitRepository, number int) (*GitPullRequest, error)

	ListOpenPullRequests(owner string, repo string) ([]*GitPullRequest, error)

	GetPullRequestCommits(owner string, repo *GitRepository, number int) ([]*GitCommit, error)

	PullRequestLastCommitStatus(pr *GitPullRequest) (string, error)

	ListCommitStatus(org string, repo string, sha string) ([]*GitRepoStatus, error)

	ListCommits(owner string, repo string, opt *ListCommitsArguments) ([]*GitCommit, error)

	UpdateCommitStatus(org string, repo string, sha string, status *GitRepoStatus) (*GitRepoStatus, error)

	MergePullRequest(pr *GitPullRequest, message string) error

	CreateWebHook(data *GitWebHookArguments) error

	ListWebHooks(org string, repo string) ([]*GitWebHookArguments, error)

	UpdateWebHook(data *GitWebHookArguments) error

	IsGitHub() bool

	IsGitea() bool

	IsBitbucketCloud() bool

	IsBitbucketServer() bool

	IsGerrit() bool

	Kind() string

	GetIssue(org string, name string, number int) (*GitIssue, error)

	IssueURL(org string, name string, number int, isPull bool) string

	SearchIssues(org string, name string, state string) ([]*GitIssue, error)

	SearchIssuesClosedSince(org string, name string, t time.Time) ([]*GitIssue, error)

	CreateIssue(owner string, repo string, issue *GitIssue) (*GitIssue, error)

	HasIssues() bool

	AddPRComment(pr *GitPullRequest, comment string) error

	CreateIssueComment(owner string, repo string, number int, comment string) error

	UpdateRelease(owner string, repo string, tag string, releaseInfo *GitRelease) error

	UpdateReleaseStatus(owner string, repo string, tag string, releaseInfo *GitRelease) error

	ListReleases(org string, name string) ([]*GitRelease, error)

	GetRelease(org string, name string, tag string) (*GitRelease, error)

	UploadReleaseAsset(org string, repo string, id int64, name string, asset *os.File) (*GitReleaseAsset, error)

	GetLatestRelease(org string, name string) (*GitRelease, error)

	GetContent(org string, name string, path string, ref string) (*GitFileContent, error)

	JenkinsWebHookPath(gitURL string, secret string) string

	// Label returns the Git service label or name
	Label() string

	// ServerURL returns the Git server URL
	ServerURL() string

	// BranchArchiveURL returns a URL to the ZIP archive for the git branch
	BranchArchiveURL(org string, name string, branch string) string

	// Returns the current username
	CurrentUsername() string

	// Returns the current user auth
	UserAuth() auth.UserAuth

	// Returns user info, if possible
	UserInfo(username string) *GitUser

	AddCollaborator(string, string, string) error
	// TODO Refactor to remove bespoke types when we implement another provider
	ListInvitations() ([]*github.RepositoryInvitation, *github.Response, error)
	// TODO Refactor to remove bespoke types when we implement another provider
	AcceptInvitation(int64) (*github.Response, error)

	// ShouldForkForPullRequest returns true if we should create a personal fork of this repository
	// before creating a pull request
	ShouldForkForPullRequest(originalOwner string, repoName string, username string) bool

	GetBranch(owner string, repo string, branch string) (*GitBranch, error)

	GetProjects(owner string, repo string) ([]GitProject, error)

	IsWikiEnabled(owner string, repo string) (bool, error)

	ConfigureFeatures(owner string, repo string, issues *bool, projects *bool, wikis *bool) (*GitRepository, error)
}

GitProvider is the interface for abstracting use of different git provider APIs

func CreateProvider

func CreateProvider(server *auth.AuthServer, user *auth.UserAuth, git Gitter) (GitProvider, error)

CreateProvider creates a git provider for the given auth details

func CreateProviderForURL

func CreateProviderForURL(inCluster bool, authConfigSvc auth.ConfigService, gitKind string, hostURL string, ghOwner string, git Gitter, batchMode bool,
	handles util.IOFileHandles) (GitProvider, error)

CreateProviderForURL creates the Git provider for the given git kind and host URL

func NewAnonymousGitHubProvider

func NewAnonymousGitHubProvider(server *auth.AuthServer, git Gitter) (GitProvider, error)

NewAnonymousGitHubProvider returns a new GitHubProvider without any authentication

func NewBitbucketCloudProvider

func NewBitbucketCloudProvider(server *auth.AuthServer, user *auth.UserAuth, git Gitter) (GitProvider, error)

func NewBitbucketServerProvider

func NewBitbucketServerProvider(server *auth.AuthServer, user *auth.UserAuth, git Gitter) (GitProvider, error)

func NewGerritProvider

func NewGerritProvider(server *auth.AuthServer, user *auth.UserAuth, git Gitter) (GitProvider, error)

func NewGitHubProvider

func NewGitHubProvider(server *auth.AuthServer, user *auth.UserAuth, git Gitter) (GitProvider, error)

func NewGiteaProvider

func NewGiteaProvider(server *auth.AuthServer, user *auth.UserAuth, git Gitter) (GitProvider, error)

func NewGitlabProvider

func NewGitlabProvider(server *auth.AuthServer, user *auth.UserAuth, git Gitter) (GitProvider, error)

func WithGitlabClient

func WithGitlabClient(server *auth.AuthServer, user *auth.UserAuth, client *gitlab.Client, git Gitter) (GitProvider, error)

Used by unit tests to inject a mocked client

type GitPullRequest

type GitPullRequest struct {
	URL                string
	Author             *GitUser
	Owner              string
	Repo               string
	Number             *int
	Mergeable          *bool
	Merged             *bool
	HeadRef            *string
	State              *string
	StatusesURL        *string
	IssueURL           *string
	DiffURL            *string
	MergeCommitSHA     *string
	ClosedAt           *time.Time
	MergedAt           *time.Time
	LastCommitSha      string
	Title              string
	Body               string
	Assignees          []*GitUser
	RequestedReviewers []*GitUser
	Labels             []*Label
	UpdatedAt          *time.Time
	HeadOwner          *string // HeadOwner is the string the PR is created from
}

func FilterOpenPullRequests

func FilterOpenPullRequests(provider GitProvider, owner string, repo string, filter PullRequestFilter) ([]*GitPullRequest, error)

FilterOpenPullRequests looks for any pull requests on the owner/repo where all the labels match

func (*GitPullRequest) IsClosed

func (pr *GitPullRequest) IsClosed() bool

IsClosed returns true if the PullRequest has been closed

func (*GitPullRequest) NumberString

func (pr *GitPullRequest) NumberString() string

NumberString returns the string representation of the Pull Request number or blank if its missing

type GitPullRequestArguments

type GitPullRequestArguments struct {
	Title         string
	Body          string
	Head          string
	Base          string
	GitRepository *GitRepository
	Labels        []string
}

func (*GitPullRequestArguments) String

func (a *GitPullRequestArguments) String() string

type GitRelease

type GitRelease struct {
	ID            int64
	Name          string
	TagName       string
	Body          string
	PreRelease    bool
	URL           string
	HTMLURL       string
	DownloadCount int
	Assets        *[]GitReleaseAsset
}

type GitReleaseAsset

type GitReleaseAsset struct {
	ID                 int64
	BrowserDownloadURL string
	Name               string
	ContentType        string
}

GitReleaseAsset represents a release stored in Git

type GitRemote

type GitRemote struct {
	Name string
	URL  string
}

GitRemote a remote url

type GitRepoStatus

type GitRepoStatus struct {
	ID      string
	Context string
	URL     string

	// State is the current state of the repository. Possible values are:
	// pending, success, error, or failure.
	State string `json:"state,omitempty"`

	// TargetURL is the URL of the page representing this status
	TargetURL string `json:"target_url,omitempty"`

	// Description is a short high level summary of the status.
	Description string
}

func (*GitRepoStatus) IsFailed

func (s *GitRepoStatus) IsFailed() bool

func (*GitRepoStatus) IsSuccess

func (s *GitRepoStatus) IsSuccess() bool

type GitRepository

type GitRepository struct {
	ID               int64
	Name             string
	AllowMergeCommit bool
	HTMLURL          string
	CloneURL         string
	SSHURL           string
	Language         string
	Fork             bool
	Stars            int
	URL              string
	Scheme           string
	Host             string
	Organisation     string
	Project          string
	Private          bool
	HasIssues        bool
	OpenIssueCount   int
	HasWiki          bool
	HasProjects      bool
	Archived         bool
}

func BitbucketRepositoryToGitRepository

func BitbucketRepositoryToGitRepository(bRepo bitbucket.Repository) *GitRepository

func BitbucketServerRepositoryToGitRepository

func BitbucketServerRepositoryToGitRepository(bRepo bitbucket.Repository) *GitRepository

func DuplicateGitRepoFromCommitish

func DuplicateGitRepoFromCommitish(toOrg string, toName string, fromGitURL string, fromCommitish string, toBranch string, private bool, provider GitProvider, gitter Gitter, fromInfo *GitRepository) (*GitRepository, error)

DuplicateGitRepoFromCommitish will duplicate branches (but not tags) from fromGitURL to toOrg/toName. It will reset the head of the toBranch on the duplicated repo to fromCommitish. It returns the GitRepository for the duplicated repo. If the repository already exist and error is returned.

func ParseGitOrganizationURL

func ParseGitOrganizationURL(text string) (*GitRepository, error)

ParseGitOrganizationURL attempts to parse the given text as a URL or git URL-like string to determine the protocol, host, organisation

func ParseGitURL

func ParseGitURL(text string) (*GitRepository, error)

ParseGitURL attempts to parse the given text as a URL or git URL-like string to determine the protocol, host, organisation and name

func PickRepositories

func PickRepositories(provider GitProvider, owner string, message string, selectAll bool, filter string, handles util.IOFileHandles) ([]*GitRepository, error)

func (*GitRepository) CreateProvider

func (i *GitRepository) CreateProvider(inCluster bool, authConfigSvc auth.ConfigService, gitKind string, ghOwner string, git Gitter, batchMode bool, handles util.IOFileHandles) (GitProvider, error)

func (*GitRepository) CreateProviderForUser

func (i *GitRepository) CreateProviderForUser(server *auth.AuthServer, user *auth.UserAuth, gitKind string, git Gitter) (GitProvider, error)

func (*GitRepository) HostURL

func (i *GitRepository) HostURL() string

HostURL returns the URL to the host

func (*GitRepository) HostURLWithoutUser

func (i *GitRepository) HostURLWithoutUser() string

func (*GitRepository) HttpURL

func (i *GitRepository) HttpURL() string

HttpURL returns the URL to browse this repository in a web browser

func (*GitRepository) HttpsURL

func (i *GitRepository) HttpsURL() string

HttpsURL returns the URL to browse this repository in a web browser

func (*GitRepository) IsGitHub

func (i *GitRepository) IsGitHub() bool

func (*GitRepository) PickOrCreateProvider

func (i *GitRepository) PickOrCreateProvider(authConfigSvc auth.ConfigService, message string, batchMode bool, gitKind string, githubAppMode bool, git Gitter, handles util.IOFileHandles) (GitProvider, error)

PickOrCreateProvider picks an existing server and auth or creates a new one if required then create a GitProvider for it

func (*GitRepository) PipelinePath

func (i *GitRepository) PipelinePath() string

PipelinePath returns the pipeline path for the master branch which can be used to query pipeline logs in `jx get build logs myPipelinePath`

func (*GitRepository) ProviderURL

func (i *GitRepository) ProviderURL() string

ProviderURL returns the git provider URL

func (*GitRepository) PullRequestURL

func (i *GitRepository) PullRequestURL(prName string) string

PullRequestURL returns the URL of a pull request of the given name/number

func (*GitRepository) URLWithoutUser

func (i *GitRepository) URLWithoutUser() string

URLWithoutUser returns the URL without any user/password

type GitRepositoryOptions

type GitRepositoryOptions struct {
	ServerURL                string
	ServerKind               string
	Username                 string
	ApiToken                 string
	Owner                    string
	RepoName                 string
	Public                   bool
	IgnoreExistingRepository bool
}

type GitTag

type GitTag struct {
	Name    string
	Message string
}

GitTag git tag

type GitUser

type GitUser struct {
	URL       string
	Login     string
	Name      string
	Email     string
	AvatarURL string
}

type GitWebHookArguments

type GitWebHookArguments struct {
	ID          int64
	Owner       string
	Repo        *GitRepository
	URL         string
	ExistingURL string
	Secret      string
	InsecureSSL bool
}

type GiteaProvider

type GiteaProvider struct {
	Username string
	Client   *gitea.Client

	Server auth.AuthServer
	User   auth.UserAuth
	Git    Gitter
}

func (*GiteaProvider) AcceptInvitation

func (p *GiteaProvider) AcceptInvitation(ID int64) (*github.Response, error)

func (*GiteaProvider) AddCollaborator

func (p *GiteaProvider) AddCollaborator(user string, organisation string, repo string) error

func (*GiteaProvider) AddLabelsToIssue

func (p *GiteaProvider) AddLabelsToIssue(owner, repo string, number int, labels []string) error

AddLabelsToIssue adds labels to issues or pullrequests

func (*GiteaProvider) AddPRComment

func (p *GiteaProvider) AddPRComment(pr *GitPullRequest, comment string) error

func (*GiteaProvider) BranchArchiveURL

func (p *GiteaProvider) BranchArchiveURL(org string, name string, branch string) string

func (*GiteaProvider) ConfigureFeatures

func (p *GiteaProvider) ConfigureFeatures(owner string, repo string, issues *bool, projects *bool, wikis *bool) (*GitRepository, error)

ConfigureFeatures sets specific features as enabled or disabled for owner/repo

func (*GiteaProvider) CreateIssue

func (p *GiteaProvider) CreateIssue(owner string, repo string, issue *GitIssue) (*GitIssue, error)

func (*GiteaProvider) CreateIssueComment

func (p *GiteaProvider) CreateIssueComment(owner string, repo string, number int, comment string) error

func (*GiteaProvider) CreatePullRequest

func (p *GiteaProvider) CreatePullRequest(data *GitPullRequestArguments) (*GitPullRequest, error)

func (*GiteaProvider) CreateRepository

func (p *GiteaProvider) CreateRepository(org string, name string, private bool) (*GitRepository, error)

func (*GiteaProvider) CreateWebHook

func (p *GiteaProvider) CreateWebHook(data *GitWebHookArguments) error

func (*GiteaProvider) CurrentUsername

func (p *GiteaProvider) CurrentUsername() string

func (*GiteaProvider) DeleteRepository

func (p *GiteaProvider) DeleteRepository(org string, name string) error

func (*GiteaProvider) ForkRepository

func (p *GiteaProvider) ForkRepository(originalOrg string, name string, destinationOrg string) (*GitRepository, error)

func (*GiteaProvider) GetBranch

func (p *GiteaProvider) GetBranch(owner string, repo string, branch string) (*GitBranch, error)

GetBranch returns the branch information for an owner/repo, including the commit at the tip

func (*GiteaProvider) GetContent

func (p *GiteaProvider) GetContent(org string, name string, path string, ref string) (*GitFileContent, error)

func (*GiteaProvider) GetIssue

func (p *GiteaProvider) GetIssue(org string, name string, number int) (*GitIssue, error)

func (*GiteaProvider) GetLatestRelease

func (p *GiteaProvider) GetLatestRelease(org string, name string) (*GitRelease, error)

GetLatestRelease fetches the latest release from the git provider for org and name

func (*GiteaProvider) GetProjects

func (p *GiteaProvider) GetProjects(owner string, repo string) ([]GitProject, error)

GetProjects returns all the git projects in owner/repo

func (*GiteaProvider) GetPullRequest

func (p *GiteaProvider) GetPullRequest(owner string, repo *GitRepository, number int) (*GitPullRequest, error)

func (*GiteaProvider) GetPullRequestCommits

func (p *GiteaProvider) GetPullRequestCommits(owner string, repository *GitRepository, number int) ([]*GitCommit, error)

func (*GiteaProvider) GetRelease

func (p *GiteaProvider) GetRelease(org string, name string, tag string) (*GitRelease, error)

GetRelease returns the release info for org, repo name and tag

func (*GiteaProvider) GetRepository

func (p *GiteaProvider) GetRepository(org string, name string) (*GitRepository, error)

func (*GiteaProvider) HasIssues

func (p *GiteaProvider) HasIssues() bool

func (*GiteaProvider) IsBitbucketCloud

func (p *GiteaProvider) IsBitbucketCloud() bool

func (*GiteaProvider) IsBitbucketServer

func (p *GiteaProvider) IsBitbucketServer() bool

func (*GiteaProvider) IsGerrit

func (p *GiteaProvider) IsGerrit() bool

func (*GiteaProvider) IsGitHub

func (p *GiteaProvider) IsGitHub() bool

func (*GiteaProvider) IsGitea

func (p *GiteaProvider) IsGitea() bool

func (*GiteaProvider) IsWikiEnabled

func (p *GiteaProvider) IsWikiEnabled(owner string, repo string) (bool, error)

IsWikiEnabled returns true if a wiki is enabled for owner/repo

func (*GiteaProvider) IssueURL

func (p *GiteaProvider) IssueURL(org string, name string, number int, isPull bool) string

func (*GiteaProvider) JenkinsWebHookPath

func (p *GiteaProvider) JenkinsWebHookPath(gitURL string, secret string) string

func (*GiteaProvider) Kind

func (p *GiteaProvider) Kind() string

func (*GiteaProvider) Label

func (p *GiteaProvider) Label() string

func (*GiteaProvider) ListCommitStatus

func (p *GiteaProvider) ListCommitStatus(org string, repo string, sha string) ([]*GitRepoStatus, error)

func (*GiteaProvider) ListCommits

func (p *GiteaProvider) ListCommits(owner, repo string, opt *ListCommitsArguments) ([]*GitCommit, error)

func (*GiteaProvider) ListInvitations

func (p *GiteaProvider) ListInvitations() ([]*github.RepositoryInvitation, *github.Response, error)

func (*GiteaProvider) ListOpenPullRequests

func (p *GiteaProvider) ListOpenPullRequests(owner string, repo string) ([]*GitPullRequest, error)

ListOpenPullRequests lists the open pull requests

func (*GiteaProvider) ListOrganisations

func (p *GiteaProvider) ListOrganisations() ([]GitOrganisation, error)

func (*GiteaProvider) ListReleases

func (p *GiteaProvider) ListReleases(org string, name string) ([]*GitRelease, error)

func (*GiteaProvider) ListRepositories

func (p *GiteaProvider) ListRepositories(org string) ([]*GitRepository, error)

func (*GiteaProvider) ListWebHooks

func (p *GiteaProvider) ListWebHooks(owner string, repo string) ([]*GitWebHookArguments, error)

func (*GiteaProvider) MergePullRequest

func (p *GiteaProvider) MergePullRequest(pr *GitPullRequest, message string) error

func (*GiteaProvider) PullRequestLastCommitStatus

func (p *GiteaProvider) PullRequestLastCommitStatus(pr *GitPullRequest) (string, error)

func (*GiteaProvider) RenameRepository

func (p *GiteaProvider) RenameRepository(org string, name string, newName string) (*GitRepository, error)

func (*GiteaProvider) SearchIssues

func (p *GiteaProvider) SearchIssues(org string, name string, filter string) ([]*GitIssue, error)

func (*GiteaProvider) SearchIssuesClosedSince

func (p *GiteaProvider) SearchIssuesClosedSince(org string, name string, t time.Time) ([]*GitIssue, error)

func (*GiteaProvider) ServerURL

func (p *GiteaProvider) ServerURL() string

func (*GiteaProvider) ShouldForkForPullRequest

func (p *GiteaProvider) ShouldForkForPullRequest(originalOwner string, repoName string, username string) bool

ShouldForkForPullReques treturns true if we should create a personal fork of this repository before creating a pull request

func (*GiteaProvider) UpdateCommitStatus

func (b *GiteaProvider) UpdateCommitStatus(org string, repo string, sha string, status *GitRepoStatus) (*GitRepoStatus, error)

func (*GiteaProvider) UpdatePullRequest

func (p *GiteaProvider) UpdatePullRequest(data *GitPullRequestArguments, number int) (*GitPullRequest, error)

UpdatePullRequest updates pull request with number using data

func (*GiteaProvider) UpdatePullRequestStatus

func (p *GiteaProvider) UpdatePullRequestStatus(pr *GitPullRequest) error

func (*GiteaProvider) UpdateRelease

func (p *GiteaProvider) UpdateRelease(owner string, repo string, tag string, releaseInfo *GitRelease) error

func (*GiteaProvider) UpdateReleaseStatus

func (p *GiteaProvider) UpdateReleaseStatus(owner string, repo string, tag string, releaseInfo *GitRelease) error

UpdateReleaseStatus updates the state (release/prerelease) of a release

func (*GiteaProvider) UpdateWebHook

func (p *GiteaProvider) UpdateWebHook(data *GitWebHookArguments) error

func (*GiteaProvider) UploadReleaseAsset

func (p *GiteaProvider) UploadReleaseAsset(org string, repo string, id int64, name string, asset *os.File) (*GitReleaseAsset, error)

UploadReleaseAsset will upload an asset to org/repo to a release with id, giving it a name, it will return the release asset from the git provider

func (*GiteaProvider) UserAuth

func (p *GiteaProvider) UserAuth() auth.UserAuth

func (*GiteaProvider) UserInfo

func (p *GiteaProvider) UserInfo(username string) *GitUser

func (*GiteaProvider) ValidateRepositoryName

func (p *GiteaProvider) ValidateRepositoryName(org string, name string) error

type GitlabProvider

type GitlabProvider struct {
	Username string
	Client   *gitlab.Client
	Context  context.Context

	Server auth.AuthServer
	User   auth.UserAuth
	Git    Gitter
}

func (*GitlabProvider) AcceptInvitation

func (g *GitlabProvider) AcceptInvitation(ID int64) (*github.Response, error)

AcceptInvitation accepts an invitation

func (*GitlabProvider) AddCollaborator

func (g *GitlabProvider) AddCollaborator(user string, organisation string, repo string) error

AddCollaborator adds a collaborator

func (*GitlabProvider) AddLabelsToIssue

func (g *GitlabProvider) AddLabelsToIssue(owner, repo string, number int, labels []string) error

AddLabelsToIssue adds labels to issues or pullrequests

func (*GitlabProvider) AddPRComment

func (g *GitlabProvider) AddPRComment(pr *GitPullRequest, comment string) error

func (*GitlabProvider) BranchArchiveURL

func (g *GitlabProvider) BranchArchiveURL(org string, name string, branch string) string

func (*GitlabProvider) ConfigureFeatures

func (g *GitlabProvider) ConfigureFeatures(owner string, repo string, issues *bool, projects *bool, wikis *bool) (*GitRepository, error)

ConfigureFeatures sets specific features as enabled or disabled for owner/repo

func (*GitlabProvider) CreateIssue

func (g *GitlabProvider) CreateIssue(owner string, repo string, issue *GitIssue) (*GitIssue, error)

func (*GitlabProvider) CreateIssueComment

func (g *GitlabProvider) CreateIssueComment(owner string, repo string, number int, comment string) error

func (*GitlabProvider) CreatePullRequest

func (g *GitlabProvider) CreatePullRequest(data *GitPullRequestArguments) (*GitPullRequest, error)

func (*GitlabProvider) CreateRepository

func (g *GitlabProvider) CreateRepository(org string, name string, private bool) (*GitRepository, error)

func (*GitlabProvider) CreateWebHook

func (g *GitlabProvider) CreateWebHook(data *GitWebHookArguments) error

func (*GitlabProvider) CurrentUsername

func (g *GitlabProvider) CurrentUsername() string

func (*GitlabProvider) DeleteRepository

func (g *GitlabProvider) DeleteRepository(org, name string) error

func (*GitlabProvider) ForkRepository

func (g *GitlabProvider) ForkRepository(originalOrg, name, destinationOrg string) (*GitRepository, error)

func (*GitlabProvider) GetBranch

func (g *GitlabProvider) GetBranch(owner string, repo string, branch string) (*GitBranch, error)

GetBranch returns the branch information for an owner/repo, including the commit at the tip

func (*GitlabProvider) GetContent

func (g *GitlabProvider) GetContent(org string, name string, path string, ref string) (*GitFileContent, error)

GetContent returns the content of a file

func (*GitlabProvider) GetIssue

func (g *GitlabProvider) GetIssue(org, repo string, number int) (*GitIssue, error)

func (*GitlabProvider) GetLatestRelease

func (g *GitlabProvider) GetLatestRelease(org string, name string) (*GitRelease, error)

GetLatestRelease fetches the latest release from the git provider for org and name

func (*GitlabProvider) GetProjects

func (g *GitlabProvider) GetProjects(owner string, repo string) ([]GitProject, error)

GetProjects returns all the git projects in owner/repo

func (*GitlabProvider) GetPullRequest

func (g *GitlabProvider) GetPullRequest(owner string, repo *GitRepository, number int) (*GitPullRequest, error)

GetPullRequest gets a PR

func (*GitlabProvider) GetPullRequestCommits

func (g *GitlabProvider) GetPullRequestCommits(owner string, repository *GitRepository, number int) ([]*GitCommit, error)

GetPullRequestCommits gets the PR commits

func (*GitlabProvider) GetRelease

func (g *GitlabProvider) GetRelease(org string, name string, tag string) (*GitRelease, error)

GetRelease returns the release info for the org, repo name and tag

func (*GitlabProvider) GetRepository

func (g *GitlabProvider) GetRepository(org, name string) (*GitRepository, error)

func (*GitlabProvider) HasIssues

func (g *GitlabProvider) HasIssues() bool

func (*GitlabProvider) IsBitbucketCloud

func (g *GitlabProvider) IsBitbucketCloud() bool

func (*GitlabProvider) IsBitbucketServer

func (g *GitlabProvider) IsBitbucketServer() bool

func (*GitlabProvider) IsGerrit

func (g *GitlabProvider) IsGerrit() bool

func (*GitlabProvider) IsGitHub

func (g *GitlabProvider) IsGitHub() bool

func (*GitlabProvider) IsGitea

func (g *GitlabProvider) IsGitea() bool

func (*GitlabProvider) IsWikiEnabled

func (g *GitlabProvider) IsWikiEnabled(owner string, repo string) (bool, error)

IsWikiEnabled returns true if a wiki is enabled for owner/repo

func (*GitlabProvider) IssueURL

func (g *GitlabProvider) IssueURL(org string, name string, number int, isPull bool) string

IssueURL returns the URL of the issue

func (*GitlabProvider) JenkinsWebHookPath

func (g *GitlabProvider) JenkinsWebHookPath(gitURL string, secret string) string

func (*GitlabProvider) Kind

func (g *GitlabProvider) Kind() string

func (*GitlabProvider) Label

func (g *GitlabProvider) Label() string

func (*GitlabProvider) ListCommitStatus

func (g *GitlabProvider) ListCommitStatus(org string, repo string, sha string) ([]*GitRepoStatus, error)

func (*GitlabProvider) ListCommits

func (g *GitlabProvider) ListCommits(owner, repo string, opt *ListCommitsArguments) ([]*GitCommit, error)

ListCommits lists the commits for the specified repo and owner

func (*GitlabProvider) ListInvitations

func (g *GitlabProvider) ListInvitations() ([]*github.RepositoryInvitation, *github.Response, error)

ListInvitations lists pending invites

func (*GitlabProvider) ListOpenPullRequests

func (g *GitlabProvider) ListOpenPullRequests(owner string, repo string) ([]*GitPullRequest, error)

ListOpenPullRequests lists the open pull requests

func (*GitlabProvider) ListOrganisations

func (g *GitlabProvider) ListOrganisations() ([]GitOrganisation, error)

func (*GitlabProvider) ListReleases

func (g *GitlabProvider) ListReleases(org string, name string) ([]*GitRelease, error)

func (*GitlabProvider) ListRepositories

func (g *GitlabProvider) ListRepositories(org string) ([]*GitRepository, error)

func (*GitlabProvider) ListWebHooks

func (g *GitlabProvider) ListWebHooks(owner string, repo string) ([]*GitWebHookArguments, error)

ListWebHooks lists the webhooks

func (*GitlabProvider) MergePullRequest

func (g *GitlabProvider) MergePullRequest(pr *GitPullRequest, message string) error

func (*GitlabProvider) PullRequestLastCommitStatus

func (g *GitlabProvider) PullRequestLastCommitStatus(pr *GitPullRequest) (string, error)

func (*GitlabProvider) RenameRepository

func (g *GitlabProvider) RenameRepository(org, name, newName string) (*GitRepository, error)

func (*GitlabProvider) SearchIssues

func (g *GitlabProvider) SearchIssues(org, repo, query string) ([]*GitIssue, error)

func (*GitlabProvider) SearchIssuesClosedSince

func (g *GitlabProvider) SearchIssuesClosedSince(org string, repo string, t time.Time) ([]*GitIssue, error)

func (*GitlabProvider) ServerURL

func (g *GitlabProvider) ServerURL() string

func (*GitlabProvider) ShouldForkForPullRequest

func (g *GitlabProvider) ShouldForkForPullRequest(originalOwner string, repoName string, username string) bool

ShouldForkForPullReques treturns true if we should create a personal fork of this repository before creating a pull request

func (*GitlabProvider) UpdateCommitStatus

func (g *GitlabProvider) UpdateCommitStatus(owner string, repo string, sha string, status *GitRepoStatus) (*GitRepoStatus, error)

UpdateCommitStatus updates the commit status

func (*GitlabProvider) UpdatePullRequest

func (g *GitlabProvider) UpdatePullRequest(data *GitPullRequestArguments, number int) (*GitPullRequest, error)

UpdatePullRequest updates pull request with number using data

func (*GitlabProvider) UpdatePullRequestStatus

func (g *GitlabProvider) UpdatePullRequestStatus(pr *GitPullRequest) error

func (*GitlabProvider) UpdateRelease

func (g *GitlabProvider) UpdateRelease(owner string, repo string, tag string, releaseInfo *GitRelease) error

func (*GitlabProvider) UpdateReleaseStatus

func (g *GitlabProvider) UpdateReleaseStatus(owner string, repo string, tag string, releaseInfo *GitRelease) error

UpdateReleaseStatus is not supported for this git provider

func (*GitlabProvider) UpdateWebHook

func (g *GitlabProvider) UpdateWebHook(data *GitWebHookArguments) error

func (*GitlabProvider) UploadReleaseAsset

func (g *GitlabProvider) UploadReleaseAsset(org string, repo string, id int64, name string, asset *os.File) (*GitReleaseAsset, error)

UploadReleaseAsset will upload an asset to org/repo to a release with id, giving it a name, it will return the release asset from the git provider

func (*GitlabProvider) UserAuth

func (g *GitlabProvider) UserAuth() auth.UserAuth

func (*GitlabProvider) UserInfo

func (g *GitlabProvider) UserInfo(username string) *GitUser

func (*GitlabProvider) ValidateRepositoryName

func (g *GitlabProvider) ValidateRepositoryName(org, name string) error

type Gitter

type Gitter interface {
	// IsVersionControlled returns true if the specified directory is under Git version control, otherwise false.
	// An error is returned for unexpected IO errors.
	IsVersionControlled(dir string) (bool, error)

	Config(dir string, args ...string) error
	FindGitConfigDir(dir string) (string, string, error)
	PrintCreateRepositoryGenerateAccessToken(server *auth.AuthServer, username string, o io.Writer)

	Status(dir string) error
	Server(dir string) (string, error)
	Info(dir string) (*GitRepository, error)
	IsFork(dir string) (bool, error)
	Version() (string, error)
	RepoName(org, repoName string) string

	Username(dir string) (string, error)
	SetUsername(dir string, username string) error
	Email(dir string) (string, error)
	SetEmail(dir string, email string) error
	GetAuthorEmailForCommit(dir string, sha string) (string, error)

	Init(dir string) error
	Clone(url string, directory string) error
	CloneBare(dir string, url string) error
	PushMirror(dir string, url string) error

	// ShallowCloneBranch TODO not sure if this method works any more - consider using ShallowClone(dir, url, branch, "")
	ShallowCloneBranch(url string, branch string, directory string) error
	ShallowClone(dir string, url string, commitish string, pullRequest string) error
	FetchUnshallow(dir string) error
	IsShallow(dir string) (bool, error)
	Push(dir string, remote string, force bool, refspec ...string) error
	PushMaster(dir string) error
	PushTag(dir string, tag string) error
	// CreateAuthenticatedURL adds username and password into the specified git URL.
	CreateAuthenticatedURL(url string, userAuth *auth.UserAuth) (string, error)
	ForcePushBranch(dir string, localBranch string, remoteBranch string) error
	CloneOrPull(url string, directory string) error
	Pull(dir string) error
	PullRemoteBranches(dir string) error
	PullUpstream(dir string) error

	// ResetToUpstream resets the given branch to the upstream version
	ResetToUpstream(dir string, branch string) error

	AddRemote(dir string, name string, url string) error
	SetRemoteURL(dir string, name string, gitURL string) error
	UpdateRemote(dir, url string) error
	DiscoverRemoteGitURL(gitConf string) (string, error)
	DiscoverUpstreamGitURL(gitConf string) (string, error)
	RemoteBranches(dir string) ([]string, error)
	RemoteBranchNames(dir string, prefix string) ([]string, error)
	RemoteMergedBranchNames(dir string, prefix string) ([]string, error)
	GetRemoteUrl(config *gitcfg.Config, name string) string
	RemoteUpdate(dir string) error
	LocalBranches(dir string) ([]string, error)
	Remotes(dir string) ([]string, error)

	Branch(dir string) (string, error)
	CreateBranchFrom(dir string, branchName string, startPoint string) error
	CreateBranch(dir string, branch string) error
	CheckoutRemoteBranch(dir string, branch string) error
	Checkout(dir string, branch string) error
	CheckoutCommitFiles(dir string, commit string, files []string) error
	CheckoutOrphan(dir string, branch string) error
	ConvertToValidBranchName(name string) string
	FetchBranch(dir string, repo string, refspec ...string) error
	FetchBranchShallow(dir string, repo string, refspec ...string) error
	FetchBranchUnshallow(dir string, repo string, refspec ...string) error
	Merge(dir string, commitish string) error
	MergeTheirs(dir string, commitish string) error
	Reset(dir string, commitish string, hard bool) error
	RebaseTheirs(dir string, upstream string, branch string, skipEmpty bool) error
	CherryPick(dir string, commitish string) error
	CherryPickTheirs(dir string, commitish string) error
	CherryPickTheirsKeepRedundantCommits(dir string, commitish string) error

	StashPush(dir string) error
	StashPop(dir string) error

	Remove(dir, fileName string) error
	RemoveForce(dir, fileName string) error
	CleanForce(dir, fileName string) error
	Add(dir string, args ...string) error

	CommitIfChanges(dir string, message string) error
	CommitDir(dir string, message string) error
	AddCommit(dir string, msg string) error
	AddCommitFiles(dir string, msg string, files []string) error
	HasChanges(dir string) (bool, error)
	HasFileChanged(dir string, fileName string) (bool, error)
	Diff(dir string) (string, error)
	ListChangedFilesFromBranch(dir string, branch string) (string, error)
	LoadFileFromBranch(dir string, branch string, file string) (string, error)

	GetLatestCommitMessage(dir string) (string, error)
	GetCommitPointedToByPreviousTag(dir string) (string, string, error)
	GetCommitPointedToByLatestTag(dir string) (string, string, error)
	GetCommitPointedToByTag(dir string, tag string) (string, error)
	FetchTags(dir string) error
	FetchRemoteTags(dir string, repo string) error
	Tags(dir string) ([]string, error)
	FilterTags(dir string, filter string) ([]string, error)
	CreateTag(dir string, tag string, msg string) error
	GetLatestCommitSha(dir string) (string, error)
	GetFirstCommitSha(dir string) (string, error)
	GetCommits(dir string, start string, end string) ([]GitCommit, error)
	RevParse(dir string, rev string) (string, error)
	GetCommitsNotOnAnyRemote(dir string, branch string) ([]GitCommit, error)
	Describe(dir string, contains bool, commitish string, abbrev string, fallback bool) (string, string, error)
	IsAncestor(dir string, possibleAncestor string, commitish string) (bool, error)

	GetRevisionBeforeDate(dir string, t time.Time) (string, error)
	GetRevisionBeforeDateText(dir string, dateText string) (string, error)
	DeleteRemoteBranch(dir string, remoteName string, branch string) error
	DeleteLocalBranch(dir string, branch string) error

	SetUpstreamTo(dir string, branch string) error

	WriteRepoAttributes(dir string, contents string) error
	ReadRepoAttributes(dir string) (string, error)
}

Gitter defines common git actions used by Jenkins X via git cli

func NewGitFake

func NewGitFake() Gitter

NewGitFake creates a new fake Gitter

type GroupAndCommitInfos

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

type Label

type Label struct {
	ID          *int64
	URL         *string
	Name        *string
	Color       *string
	Description *string
	Default     *bool
}

Label represents a label on an Issue

type ListCommitsArguments

type ListCommitsArguments struct {
	SHA     string
	Path    string
	Author  string
	Since   time.Time
	Until   time.Time
	Page    int
	PerPage int
}

type OrganisationChecker

type OrganisationChecker interface {
	IsUserInOrganisation(user string, organisation string) (bool, error)
}

OrganisationChecker verifies if an user is member of an organization

type OrganisationLister

type OrganisationLister interface {
	ListOrganisations() ([]GitOrganisation, error)
}

OrganisationLister returns a slice of GitOrganisation

type PullRequestDetails

type PullRequestDetails struct {
	Message    string
	BranchName string
	Title      string
	Labels     []string
}

PullRequestDetails is the details for creating a pull request

func (*PullRequestDetails) String

func (p *PullRequestDetails) String() string

type PullRequestFilter

type PullRequestFilter struct {
	Labels []string
	Number *int
}

A PullRequestFilter defines a filter for finding pull requests

func (*PullRequestFilter) String

func (f *PullRequestFilter) String() string

type PullRequestInfo

type PullRequestInfo struct {
	GitProvider          GitProvider
	PullRequest          *GitPullRequest
	PullRequestArguments *GitPullRequestArguments
}

PullRequestInfo describes a pull request that has been created

func PushRepoAndCreatePullRequest

func PushRepoAndCreatePullRequest(dir string, upstreamRepo *GitRepository, forkRepo *GitRepository, base string, prDetails *PullRequestDetails, filter *PullRequestFilter, commit bool, commitMessage string, push bool, dryRun bool, gitter Gitter, provider GitProvider) (*PullRequestInfo, error)

PushRepoAndCreatePullRequest commits and pushes the changes in the repo rooted at dir. It creates a branch called branchName from a base. It uses the pullRequestDetails for the message and title for the commit and PR. It uses and updates pullRequestInfo to identify whether to rebase an existing PR.

Directories

Path Synopsis
matchers
Code generated by pegomock.
Code generated by pegomock.

Jump to

Keyboard shortcuts

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