Documentation
¶
Index ¶
- type DefaultPermissions
- type GitHubAppManifest
- type GithubBranch
- type GithubClient
- func (self *GithubClient) ClonePublicRepository(ctx context.Context, repoURL string, refName string, commitSHA string) (string, error)
- func (self *GithubClient) CloneRepository(ctx context.Context, appID, installationID int64, appPrivateKey string, ...) (string, error)
- func (self *GithubClient) CreateAppManifest(redirectUrl string, setupUrl string, forOrganization bool) (manifest *GitHubAppManifest, appName string, err error)
- func (self *GithubClient) GetAuthenticatedClient(ctx context.Context, appID int64, installationID int64, appPrivateKey string) (*github.Client, error)
- func (self *GithubClient) GetCommitSummary(ctx context.Context, installation *ent.GithubInstallation, owner, repo string, ...) (commitSHA, commitMessage string, committer *schema.GitCommitter, err error)
- func (self *GithubClient) GetInstallationToken(ctx context.Context, appID int64, installationID int64, appPrivateKey string) (string, error)
- func (self *GithubClient) GetRepositoryDetail(ctx context.Context, installation *ent.GithubInstallation, owner, repo string) (*GithubRepositoryDetail, error)
- func (self *GithubClient) ManifestCodeConversion(ctx context.Context, code string) (*github.AppConfig, error)
- func (self *GithubClient) ReadUserAdminOrganizations(ctx context.Context, installation *ent.GithubInstallation) ([]*github.Organization, error)
- func (self *GithubClient) ReadUserAdminRepositories(ctx context.Context, installations []*ent.GithubInstallation) ([]*GithubRepository, error)
- func (self *GithubClient) VerifyRepositoryAccess(ctx context.Context, installation *ent.GithubInstallation, owner, repo string) (canAccess bool, repoUrl, defaultBranch string, err error)
- type GithubRepository
- type GithubRepositoryDetail
- type GithubRepositoryOwner
- type GithubTag
- type HookAttributes
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DefaultPermissions ¶
type DefaultPermissions struct { Contents string `json:"contents"` Issues string `json:"issues"` Metadata string `json:"metadata"` PullRequests string `json:"pull_requests"` Members string `json:"members,omitempty"` }
DefaultPermissions contains permission settings
type GitHubAppManifest ¶
type GitHubAppManifest struct { Name string `json:"name"` Description string `json:"description"` URL string `json:"url"` HookAttributes HookAttributes `json:"hook_attributes"` RedirectURL string `json:"redirect_url"` SetupUrl string `json:"setup_url"` Public bool `json:"public"` DefaultPermissions DefaultPermissions `json:"default_permissions"` DefaultEvents []string `json:"default_events"` }
GitHubAppManifest represents the structure for GitHub App manifest
type GithubBranch ¶
type GithubBranch struct { Name string `json:"name"` Ref string `json:"ref"` Protected bool `json:"protected"` SHA string `json:"sha"` }
GithubBranch contains information about a branch
type GithubClient ¶
type GithubClient struct {
// contains filtered or unexported fields
}
func NewGithubClient ¶
func NewGithubClient(githubURL string, cfg *config.Config) *GithubClient
func (*GithubClient) ClonePublicRepository ¶
func (self *GithubClient) ClonePublicRepository(ctx context.Context, repoURL string, refName string, commitSHA string) (string, error)
ClonePublicRepository clones a public repository without authentication
func (*GithubClient) CloneRepository ¶
func (self *GithubClient) CloneRepository(ctx context.Context, appID, installationID int64, appPrivateKey string, repoURL string, refName string, commitSHA string) (string, error)
CloneRepository clones a repository with optional authentication
func (*GithubClient) CreateAppManifest ¶
func (self *GithubClient) CreateAppManifest(redirectUrl string, setupUrl string, forOrganization bool) (manifest *GitHubAppManifest, appName string, err error)
CreateAppManifest generates the GitHub App manifest
func (*GithubClient) GetAuthenticatedClient ¶
func (*GithubClient) GetCommitSummary ¶
func (self *GithubClient) GetCommitSummary(ctx context.Context, installation *ent.GithubInstallation, owner, repo string, branchOrSHA string, isCommitSHA bool) (commitSHA, commitMessage string, committer *schema.GitCommitter, err error)
Get branch head summary - sha, message, author GetCommitSummary - get summary for a specific commit or branch head
func (*GithubClient) GetInstallationToken ¶
func (self *GithubClient) GetInstallationToken(ctx context.Context, appID int64, installationID int64, appPrivateKey string) (string, error)
Get the token we can use to authenticate with GitHub
func (*GithubClient) GetRepositoryDetail ¶
func (self *GithubClient) GetRepositoryDetail(ctx context.Context, installation *ent.GithubInstallation, owner, repo string) (*GithubRepositoryDetail, error)
Get details for a repository
func (*GithubClient) ManifestCodeConversion ¶
func (self *GithubClient) ManifestCodeConversion(ctx context.Context, code string) (*github.AppConfig, error)
ManifestCodeConversion gets app configruation from github using the code
func (*GithubClient) ReadUserAdminOrganizations ¶
func (self *GithubClient) ReadUserAdminOrganizations(ctx context.Context, installation *ent.GithubInstallation) ([]*github.Organization, error)
func (*GithubClient) ReadUserAdminRepositories ¶
func (self *GithubClient) ReadUserAdminRepositories(ctx context.Context, installations []*ent.GithubInstallation) ([]*GithubRepository, error)
Read user's admin repositories (that they can configure CI/CD on)
func (*GithubClient) VerifyRepositoryAccess ¶
func (self *GithubClient) VerifyRepositoryAccess(ctx context.Context, installation *ent.GithubInstallation, owner, repo string) (canAccess bool, repoUrl, defaultBranch string, err error)
VerifyRepositoryAccess with resource cleanup
type GithubRepository ¶
type GithubRepository struct { ID int64 `json:"id"` InstallationID int64 `json:"installation_id"` Name string `json:"name"` FullName string `json:"full_name"` HTMLURL string `json:"html_url"` CloneURL string `json:"clone_url"` HomePage string `json:"homepage"` Owner GithubRepositoryOwner `json:"owner"` UpdatedAt time.Time `json:"updated_at"` }
type GithubRepositoryDetail ¶
type GithubRepositoryDetail struct { ID int64 `json:"id"` InstallationID int64 `json:"installationId"` Name string `json:"name"` FullName string `json:"fullName"` Description string `json:"description"` URL string `json:"url"` HTMLURL string `json:"htmlUrl"` DefaultBranch string `json:"defaultBranch"` Language string `json:"language"` Private bool `json:"private"` Fork bool `json:"fork"` Archived bool `json:"archived"` Disabled bool `json:"disabled"` Size int `json:"size"` StargazersCount int `json:"stargazersCount"` WatchersCount int `json:"watchersCount"` ForksCount int `json:"forksCount"` OpenIssuesCount int `json:"openIssuesCount"` CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` PushedAt time.Time `json:"pushedAt"` Branches []*GithubBranch `json:"branches"` Tags []*GithubTag `json:"tags"` Owner *GithubRepositoryOwner `json:"owner"` }
! Getting repository details GithubRepositoryDetail contains detailed information about a repository
type GithubRepositoryOwner ¶
type GithubRepositoryOwner struct { ID int64 `json:"id"` Name string `json:"name"` Login string `json:"login"` AvatarURL string `json:"avatar_url"` }
* Formatting
type HookAttributes ¶
type HookAttributes struct {
URL string `json:"url"`
}
HookAttributes contains webhook configuration