Documentation ¶
Index ¶
- func IsValidMemberRole(r MemberRole) bool
- func IsValidRemoteRepositoryConfigType(t RemoteRepositoryConfigType) bool
- func IsValidVisibility(v Visibility) bool
- func MatchWhen(when *When, branch, tag, ref string) bool
- func SourceSupportsAuthType(rsType RemoteSourceType, authType RemoteSourceAuthType) bool
- type ConfigType
- type LinkedAccount
- type MemberRole
- type Organization
- type OrganizationMember
- type Parent
- type Project
- type ProjectGroup
- type RemoteRepositoryConfigType
- type RemoteSource
- type RemoteSourceAuthType
- type RemoteSourceType
- type RunCreationTriggerType
- type RunRefType
- type RunType
- type Secret
- type SecretProviderType
- type SecretType
- type User
- type Variable
- type VariableValue
- type Visibility
- type WebhookData
- type WebhookDataRepo
- type WebhookEvent
- type When
- type WhenCondition
- type WhenConditionType
- type WhenConditions
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsValidMemberRole ¶
func IsValidMemberRole(r MemberRole) bool
func IsValidRemoteRepositoryConfigType ¶
func IsValidRemoteRepositoryConfigType(t RemoteRepositoryConfigType) bool
func IsValidVisibility ¶
func IsValidVisibility(v Visibility) bool
func SourceSupportsAuthType ¶
func SourceSupportsAuthType(rsType RemoteSourceType, authType RemoteSourceAuthType) bool
Types ¶
type ConfigType ¶
type ConfigType string
const ( ConfigTypeUser ConfigType = "user" ConfigTypeOrg ConfigType = "org" ConfigTypeOrgMember ConfigType = "orgmember" ConfigTypeProjectGroup ConfigType = "projectgroup" ConfigTypeProject ConfigType = "project" ConfigTypeRemoteSource ConfigType = "remotesource" ConfigTypeSecret ConfigType = "secret" ConfigTypeVariable ConfigType = "variable" )
type LinkedAccount ¶
type LinkedAccount struct { // The type version. Increase when a breaking change is done. Usually not // needed when adding fields. Version string `json:"version,omitempty"` ID string `json:"id,omitempty"` RemoteUserID string `json:"remote_user_id,omitempty"` RemoteUserName string `json:"remote_username,omitempty"` RemoteUserAvatarURL string `json:"remote_user_avatar_url,omitempty"` RemoteSourceID string `json:"remote_source_id,omitempty"` UserAccessToken string `json:"user_access_token,omitempty"` Oauth2AccessToken string `json:"oauth2_access_token,omitempty"` Oauth2RefreshToken string `json:"oauth2_refresh_token,omitempty"` Oauth2AccessTokenExpiresAt time.Time `json:"oauth_2_access_token_expires_at,omitempty"` }
type MemberRole ¶
type MemberRole string
const ( MemberRoleOwner MemberRole = "owner" MemberRoleMember MemberRole = "member" )
type Organization ¶
type Organization struct { // The type version. Increase when a breaking change is done. Usually not // needed when adding fields. Version string `json:"version,omitempty"` ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` Visibility Visibility `json:"visibility,omitempty"` // CreatorUserID is the user id that created the organization. It could be empty // if the org was created by using the admin user or the user has been removed. CreatorUserID string `json:"creator_user_id,omitempty"` CreatedAt time.Time `json:"created_at,omitempty"` }
type OrganizationMember ¶
type OrganizationMember struct { Version string `json:"version,omitempty"` ID string `json:"id,omitempty"` OrganizationID string `json:"organization_id,omitempty"` UserID string `json:"user_id,omitempty"` MemberRole MemberRole `json:"member_role,omitempty"` }
type Parent ¶
type Parent struct { Type ConfigType `json:"type,omitempty"` ID string `json:"id,omitempty"` }
type Project ¶
type Project struct { // The type version. Increase when a breaking change is done. Usually not // needed when adding fields. Version string `json:"version,omitempty"` ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` // Secret is a secret that could be used for signing or other purposes. It // should never be directly exposed to external services Secret string `json:"secret,omitempty"` Parent Parent `json:"parent,omitempty"` Visibility Visibility `json:"visibility,omitempty"` // Remote Repository fields RemoteRepositoryConfigType RemoteRepositoryConfigType `json:"remote_repository_config_type,omitempty"` RemoteSourceID string `json:"remote_source_id,omitempty"` LinkedAccountID string `json:"linked_account_id,omitempty"` // The remote repository id RepositoryID string `json:"repository_id,omitempty"` // The remote repository path. It may be different for every kind of git source. // NOTE: it may be changed remotely but won't be updated here. Every git source // works differently so we must find a way to update it: // * let the user update it manually // * auto update it if the remote let us query by repository id (gitea cannot // do this but gitlab can and github has an hidden api to do this) RepositoryPath string `json:"repository_path,omitempty"` SSHPrivateKey string `json:"ssh_private_key,omitempty"` // PEM Encoded private key SkipSSHHostKeyCheck bool `json:"skip_ssh_host_key_check,omitempty"` // Webhooksecret is the secret passed to git sources that support a // secret/token for signing or verifying the webhook payload WebhookSecret string `json:"webhook_secret,omitempty"` }
type ProjectGroup ¶
type ProjectGroup struct { Version string `json:"version,omitempty"` ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` Parent Parent `json:"parent,omitempty"` Visibility Visibility `json:"visibility,omitempty"` }
type RemoteRepositoryConfigType ¶
type RemoteRepositoryConfigType string
RemoteRepositoryConfigType defines how a remote repository is configured and managed. Currently only "remotesource" is supported. In future other config types (like a fully manual config) could be supported.
const ( // RemoteRepositoryConfigTypeManual is currently only used for tests and not available for direct usage RemoteRepositoryConfigTypeManual RemoteRepositoryConfigType = "manual" RemoteRepositoryConfigTypeRemoteSource RemoteRepositoryConfigType = "remotesource" )
type RemoteSource ¶
type RemoteSource struct { // The type version. Increase when a breaking change is done. Usually not // needed when adding fields. Version string `json:"version,omitempty"` ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` APIURL string `json:"apiurl,omitempty"` SkipVerify bool `json:"skip_verify,omitempty"` Type RemoteSourceType `json:"type,omitempty"` AuthType RemoteSourceAuthType `json:"auth_type,omitempty"` // Oauth2 data Oauth2ClientID string `json:"client_id,omitempty"` Oauth2ClientSecret string `json:"client_secret,omitempty"` SSHHostKey string `json:"ssh_host_key,omitempty"` // Public ssh host key of the remote source SkipSSHHostKeyCheck bool `json:"skip_ssh_host_key_check,omitempty"` RegistrationEnabled *bool `json:"registration_enabled,omitempty"` LoginEnabled *bool `json:"login_enabled,omitempty"` }
func (*RemoteSource) UnmarshalJSON ¶
func (rs *RemoteSource) UnmarshalJSON(b []byte) error
type RemoteSourceAuthType ¶
type RemoteSourceAuthType string
const ( RemoteSourceAuthTypePassword RemoteSourceAuthType = "password" RemoteSourceAuthTypeOauth2 RemoteSourceAuthType = "oauth2" )
func SourceSupportedAuthTypes ¶
func SourceSupportedAuthTypes(rsType RemoteSourceType) []RemoteSourceAuthType
type RemoteSourceType ¶
type RemoteSourceType string
const ( RemoteSourceTypeGitea RemoteSourceType = "gitea" RemoteSourceTypeGithub RemoteSourceType = "github" RemoteSourceTypeGitlab RemoteSourceType = "gitlab" )
type RunCreationTriggerType ¶
type RunCreationTriggerType string
const ( RunCreationTriggerTypeWebhook RunCreationTriggerType = "webhook" RunCreationTriggerTypeManual RunCreationTriggerType = "manual" )
type RunRefType ¶
type RunRefType string
const ( RunRefTypeBranch RunRefType = "branch" RunRefTypeTag RunRefType = "tag" RunRefTypePullRequest RunRefType = "pull_request" )
type Secret ¶
type Secret struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` Parent Parent `json:"parent,omitempty"` Type SecretType `json:"type,omitempty"` // internal secret Data map[string]string `json:"data,omitempty"` // external secret SecretProviderID string `json:"secret_provider_id,omitempty"` Path string `json:"path,omitempty"` }
type SecretProviderType ¶
type SecretProviderType string
const ( // TODO(sgotti) unimplemented SecretProviderK8s SecretProviderType = "k8s" SecretProviderVault SecretProviderType = "vault" )
type SecretType ¶
type SecretType string
const ( SecretTypeInternal SecretType = "internal" SecretTypeExternal SecretType = "external" )
type User ¶
type User struct { // The type version. Increase when a breaking change is done. Usually not // needed when adding fields. Version string `json:"version,omitempty"` ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` // Secret is a secret that could be used for signing or other purposes. It // should never be directly exposed to external services Secret string `json:"secret,omitempty"` LinkedAccounts map[string]*LinkedAccount `json:"linked_accounts,omitempty"` // Optional local auth Password string `json:"password,omitempty"` Tokens map[string]string `json:"tokens,omitempty"` // Admin defines if the user is a global admin Admin bool `json:"admin,omitempty"` }
type Variable ¶
type Variable struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` Parent Parent `json:"parent,omitempty"` Values []VariableValue `json:"values,omitempty"` }
type VariableValue ¶
type Visibility ¶
type Visibility string
const ( VisibilityPublic Visibility = "public" VisibilityPrivate Visibility = "private" )
type WebhookData ¶
type WebhookData struct { Event WebhookEvent `json:"event,omitempty"` SSHURL string `json:"ssh_url"` CompareLink string `json:"compare_link,omitempty"` // Compare link to remote git source CommitLink string `json:"commit_link,omitempty"` // Commit link to remote git source CommitSHA string `json:"commit_sha,omitempty"` // commit SHA (SHA1 but also future SHA like SHA256) Ref string `json:"ref,omitempty"` // Ref containing the commit SHA Message string `json:"message,omitempty"` // Message to use (Push last commit message summary, PR title, Tag message etc...) Sender string `json:"sender,omitempty"` Avatar string `json:"avatar,omitempty"` Branch string `json:"branch,omitempty"` BranchLink string `json:"branch_link,omitempty"` Tag string `json:"tag,omitempty"` TagLink string `json:"tag_link,omitempty"` // use a string if on some platform (current or future) some PRs id will not be numbers PullRequestID string `json:"pull_request_id,omitempty"` PullRequestLink string `json:"link,omitempty"` // Link to pull request Repo WebhookDataRepo `json:"repo,omitempty"` }
type WebhookDataRepo ¶
type WebhookEvent ¶
type WebhookEvent string
const ( WebhookEventPush WebhookEvent = "push" WebhookEventTag WebhookEvent = "tag" WebhookEventPullRequest WebhookEvent = "pull_request" )
type When ¶
type When struct { Branch *WhenConditions `json:"branch,omitempty"` Tag *WhenConditions `json:"tag,omitempty"` Ref *WhenConditions `json:"ref,omitempty"` }
type WhenCondition ¶
type WhenCondition struct { Type WhenConditionType `json:"type,omitempty"` Match string `json:"match,omitempty"` }
type WhenConditionType ¶
type WhenConditionType string
const ( WhenConditionTypeSimple WhenConditionType = "simple" WhenConditionTypeRegExp WhenConditionType = "regexp" )
type WhenConditions ¶
type WhenConditions struct { Include []WhenCondition `json:"include,omitempty"` Exclude []WhenCondition `json:"exclude,omitempty"` }
Click to show internal directories.
Click to hide internal directories.