Documentation
¶
Index ¶
- Variables
- func ExtractProjectIDFromRepoID(repoID string) (int, error)
- func FetchPaginatedData[T any](fetchPage func(page int) ([]T, *gitlab.Response, error)) ([]T, error)
- func NewGitLabOauth2Integrations(db core.DB) map[string]*GitlabOauth2Config
- func NewGitlabBatchClient(clients []core.GitlabClientFacade) *gitlabBatchClient
- type GitlabIntegration
- func (g *GitlabIntegration) AutoSetup(ctx core.Context) error
- func (g *GitlabIntegration) CreateIssue(ctx context.Context, asset models.Asset, assetVersionName string, ...) error
- func (g *GitlabIntegration) CreateLabels(ctx context.Context, asset models.Asset) error
- func (g *GitlabIntegration) Delete(ctx core.Context) error
- func (g *GitlabIntegration) GetClientBasedOnAsset(asset models.Asset) (core.GitlabClientFacade, int, error)
- func (g *GitlabIntegration) GetGroup(ctx context.Context, userID string, providerID string, groupID string) (models.Project, error)
- func (g *GitlabIntegration) GetID() core.IntegrationID
- func (g *GitlabIntegration) GetRoleInGroup(ctx context.Context, userID string, providerID string, groupID string) (core.Role, error)
- func (g *GitlabIntegration) GetRoleInProject(ctx context.Context, userID string, providerID string, projectID string) (core.Role, error)
- func (g *GitlabIntegration) GetUsers(org models.Org) []core.User
- func (g *GitlabIntegration) HandleEvent(event any) error
- func (g *GitlabIntegration) HandleWebhook(ctx core.Context) error
- func (g *GitlabIntegration) HasAccessToExternalEntityProvider(ctx core.Context, externalEntityProviderID string) (bool, error)
- func (g *GitlabIntegration) ListGroups(ctx context.Context, userID string, providerID string) ([]models.Project, []core.Role, error)
- func (g *GitlabIntegration) ListOrgs(ctx core.Context) ([]models.Org, error)
- func (g *GitlabIntegration) ListProjects(ctx context.Context, userID string, providerID string, groupID string) ([]models.Asset, []core.Role, error)
- func (g *GitlabIntegration) ListRepositories(ctx core.Context) ([]core.Repository, error)
- func (g *GitlabIntegration) TestAndSave(ctx core.Context) error
- func (g *GitlabIntegration) UpdateIssue(ctx context.Context, asset models.Asset, assetVersionSlug string, ...) error
- func (g *GitlabIntegration) UpdateLabels(ctx context.Context, asset models.Asset, labelsToUpdate []commonint.Label) error
- func (g *GitlabIntegration) WantsToHandleWebhook(ctx core.Context) bool
- type GitlabOauth2Config
- type SimpleGitlabClientFactory
- func (factory SimpleGitlabClientFactory) FromAccessToken(accessToken string, baseURL string) (core.GitlabClientFacade, error)
- func (factory SimpleGitlabClientFactory) FromIntegration(integration models.GitLabIntegration) (core.GitlabClientFacade, error)
- func (factory SimpleGitlabClientFactory) FromIntegrationUUID(id uuid.UUID) (core.GitlabClientFacade, error)
- func (factory SimpleGitlabClientFactory) FromOauth2Token(token models.GitLabOauth2Token, enableClientCache bool) (core.GitlabClientFacade, error)
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrNoGitlabIntegration = fmt.Errorf("no gitlab app installations found")
Functions ¶
func ExtractProjectIDFromRepoID ¶ added in v0.17.3
func FetchPaginatedData ¶ added in v0.17.3
func FetchPaginatedData[T any]( fetchPage func(page int) ([]T, *gitlab.Response, error), ) ([]T, error)
Generic function to fetch paginated data with rate limiting and concurrency
func NewGitLabOauth2Integrations ¶
func NewGitLabOauth2Integrations(db core.DB) map[string]*GitlabOauth2Config
func NewGitlabBatchClient ¶
func NewGitlabBatchClient(clients []core.GitlabClientFacade) *gitlabBatchClient
groups multiple gitlab clients - since an org can have multiple installations
Types ¶
type GitlabIntegration ¶
type GitlabIntegration struct {
// contains filtered or unexported fields
}
func NewGitlabIntegration ¶
func NewGitlabIntegration(db core.DB, oauth2GitlabIntegration map[string]*GitlabOauth2Config, casbinRBACProvider core.RBACProvider, clientFactory core.GitlabClientFactory) *GitlabIntegration
func (*GitlabIntegration) CreateIssue ¶
func (*GitlabIntegration) CreateLabels ¶ added in v0.17.3
func (*GitlabIntegration) GetClientBasedOnAsset ¶ added in v0.17.3
func (g *GitlabIntegration) GetClientBasedOnAsset(asset models.Asset) (core.GitlabClientFacade, int, error)
func (*GitlabIntegration) GetID ¶
func (g *GitlabIntegration) GetID() core.IntegrationID
func (*GitlabIntegration) GetRoleInGroup ¶
func (*GitlabIntegration) GetRoleInProject ¶
func (*GitlabIntegration) GetUsers ¶
func (g *GitlabIntegration) GetUsers(org models.Org) []core.User
func (*GitlabIntegration) HandleEvent ¶
func (g *GitlabIntegration) HandleEvent(event any) error
func (*GitlabIntegration) HandleWebhook ¶
func (g *GitlabIntegration) HandleWebhook(ctx core.Context) error
func (*GitlabIntegration) HasAccessToExternalEntityProvider ¶
func (*GitlabIntegration) ListGroups ¶
func (*GitlabIntegration) ListProjects ¶
func (*GitlabIntegration) ListRepositories ¶
func (g *GitlabIntegration) ListRepositories(ctx core.Context) ([]core.Repository, error)
func (*GitlabIntegration) TestAndSave ¶
func (g *GitlabIntegration) TestAndSave(ctx core.Context) error
func (*GitlabIntegration) UpdateIssue ¶
func (*GitlabIntegration) UpdateLabels ¶ added in v0.17.3
func (*GitlabIntegration) WantsToHandleWebhook ¶
func (g *GitlabIntegration) WantsToHandleWebhook(ctx core.Context) bool
type GitlabOauth2Config ¶
type GitlabOauth2Config struct { ProviderID string GitlabBaseURL string GitlabOauth2TokenRepository core.GitLabOauth2TokenRepository Oauth2Conf *oauth2.Config DevGuardBotUserID int // the user id of the devguard bot user, used to create issues DevGuardBotUserAccessToken string // the access token of the devguard bot user, used to create issues AdminToken *string }
func NewGitLabOauth2Config ¶
func (*GitlabOauth2Config) GetBaseURL ¶
func (c *GitlabOauth2Config) GetBaseURL() string
func (*GitlabOauth2Config) GetProviderID ¶
func (c *GitlabOauth2Config) GetProviderID() string
func (*GitlabOauth2Config) Oauth2Callback ¶
func (c *GitlabOauth2Config) Oauth2Callback(ctx core.Context) error
func (*GitlabOauth2Config) Oauth2Login ¶
func (c *GitlabOauth2Config) Oauth2Login(ctx core.Context) error
type SimpleGitlabClientFactory ¶
type SimpleGitlabClientFactory struct {
// contains filtered or unexported fields
}
func NewGitlabClientFactory ¶
func NewGitlabClientFactory(gitlabIntegrationRepository core.GitlabIntegrationRepository, oauth2GitlabIntegration map[string]*GitlabOauth2Config) SimpleGitlabClientFactory
func (SimpleGitlabClientFactory) FromAccessToken ¶
func (factory SimpleGitlabClientFactory) FromAccessToken(accessToken string, baseURL string) (core.GitlabClientFacade, error)
func (SimpleGitlabClientFactory) FromIntegration ¶
func (factory SimpleGitlabClientFactory) FromIntegration(integration models.GitLabIntegration) (core.GitlabClientFacade, error)
func (SimpleGitlabClientFactory) FromIntegrationUUID ¶
func (factory SimpleGitlabClientFactory) FromIntegrationUUID(id uuid.UUID) (core.GitlabClientFacade, error)
func (SimpleGitlabClientFactory) FromOauth2Token ¶
func (factory SimpleGitlabClientFactory) FromOauth2Token(token models.GitLabOauth2Token, enableClientCache bool) (core.GitlabClientFacade, error)
Click to show internal directories.
Click to hide internal directories.