vendor: update github.com/xanzy/go-gitlab to v0.22.0

This commit is contained in:
amine 2019-11-10 18:31:29 +01:00
parent af382431ca
commit 83eb7abd43
12 changed files with 513 additions and 238 deletions

View File

@ -97,8 +97,8 @@ users:
```go
git := gitlab.NewClient(nil, "yourtokengoeshere")
//git.SetBaseURL("https://git.mydomain.com/api/v3")
users, _, err := git.Users.ListUsers()
//git.SetBaseURL("https://git.mydomain.com/api/v4")
users, _, err := git.Users.ListUsers(&gitlab.ListUsersOptions{})
```
Some API methods have optional parameters that can be passed. For example,

View File

@ -50,7 +50,10 @@ func (b Branch) String() string {
//
// GitLab API docs:
// https://docs.gitlab.com/ce/api/branches.html#list-repository-branches
type ListBranchesOptions ListOptions
type ListBranchesOptions struct {
ListOptions
Search *string `url:"search,omitempty" json:"search,omitempty"`
}
// ListBranches gets a list of repository branches from a project, sorted by
// name alphabetically.

View File

@ -35,7 +35,9 @@ type Environment struct {
ID int `json:"id"`
Name string `json:"name"`
Slug string `json:"slug"`
State string `json:"state"`
ExternalURL string `json:"external_url"`
Project *Project `json:"project"`
LastDeployment *Deployment `json:"last_deployment"`
}

View File

@ -561,28 +561,20 @@ type MergeEvent struct {
Email string `json:"email"`
} `json:"author"`
} `json:"last_commit"`
WorkInProgress bool `json:"work_in_progress"`
URL string `json:"url"`
Action string `json:"action"`
OldRev string `json:"oldrev"`
Assignee struct {
Name string `json:"name"`
Username string `json:"username"`
AvatarURL string `json:"avatar_url"`
} `json:"assignee"`
WorkInProgress bool `json:"work_in_progress"`
URL string `json:"url"`
Action string `json:"action"`
OldRev string `json:"oldrev"`
Assignee MergeAssignee `json:"assignee"`
} `json:"object_attributes"`
Repository *Repository `json:"repository"`
Assignee struct {
Name string `json:"name"`
Username string `json:"username"`
AvatarURL string `json:"avatar_url"`
} `json:"assignee"`
Labels []Label `json:"labels"`
Changes struct {
AssigneeID struct {
Previous int `json:"previous"`
Current int `json:"current"`
} `json:"assignee_id"`
Repository *Repository `json:"repository"`
Assignee MergeAssignee `json:"assignee"`
Labels []Label `json:"labels"`
Changes struct {
Assignees struct {
Previous []MergeAssignee `json:"previous"`
Current []MergeAssignee `json:"current"`
} `json:"assignees"`
Description struct {
Previous string `json:"previous"`
Current string `json:"current"`
@ -591,17 +583,40 @@ type MergeEvent struct {
Previous []Label `json:"previous"`
Current []Label `json:"current"`
} `json:"labels"`
UpdatedByID struct {
SourceBranch struct {
Previous string `json:"previous"`
Current string `json:"current"`
} `json:"source_branch"`
SourceProjectID struct {
Previous int `json:"previous"`
Current int `json:"current"`
} `json:"updated_by_id"`
} `json:"source_project_id"`
TargetBranch struct {
Previous string `json:"previous"`
Current string `json:"current"`
} `json:"target_branch"`
TargetProjectID struct {
Previous int `json:"previous"`
Current int `json:"current"`
} `json:"target_project_id"`
Title struct {
Previous string `json:"previous"`
Current string `json:"current"`
} `json:"title"`
UpdatedByID struct {
Previous int `json:"previous"`
Current int `json:"current"`
} `json:"updated_by_id"`
} `json:"changes"`
}
// MergeAssignee represents a merge assignee.
type MergeAssignee struct {
Name string `json:"name"`
Username string `json:"username"`
AvatarURL string `json:"avatar_url"`
}
// MergeParams represents the merge params.
type MergeParams struct {
ForceRemoveSourceBranch bool `json:"force_remove_source_branch"`

View File

@ -87,6 +87,7 @@ const (
Failed BuildStateValue = "failed"
Canceled BuildStateValue = "canceled"
Skipped BuildStateValue = "skipped"
Manual BuildStateValue = "manual"
)
// ISOTime represents an ISO 8601 formatted date

View File

@ -32,21 +32,34 @@ type GroupsService struct {
//
// GitLab API docs: https://docs.gitlab.com/ce/api/groups.html
type Group struct {
ID int `json:"id"`
Name string `json:"name"`
Path string `json:"path"`
Description string `json:"description"`
Visibility *VisibilityValue `json:"visibility"`
LFSEnabled bool `json:"lfs_enabled"`
AvatarURL string `json:"avatar_url"`
WebURL string `json:"web_url"`
RequestAccessEnabled bool `json:"request_access_enabled"`
FullName string `json:"full_name"`
FullPath string `json:"full_path"`
ParentID int `json:"parent_id"`
Projects []*Project `json:"projects"`
Statistics *StorageStatistics `json:"statistics"`
CustomAttributes []*CustomAttribute `json:"custom_attributes"`
ID int `json:"id"`
Name string `json:"name"`
Path string `json:"path"`
Description string `json:"description"`
Visibility *VisibilityValue `json:"visibility"`
LFSEnabled bool `json:"lfs_enabled"`
AvatarURL string `json:"avatar_url"`
WebURL string `json:"web_url"`
RequestAccessEnabled bool `json:"request_access_enabled"`
FullName string `json:"full_name"`
FullPath string `json:"full_path"`
ParentID int `json:"parent_id"`
Projects []*Project `json:"projects"`
Statistics *StorageStatistics `json:"statistics"`
CustomAttributes []*CustomAttribute `json:"custom_attributes"`
ShareWithGroupLock bool `json:"share_with_group_lock"`
RequireTwoFactorAuth bool `json:"require_two_factor_authentication"`
TwoFactorGracePeriod int `json:"two_factor_grace_period"`
ProjectCreationLevel string `json:"project_creation_level"`
AutoDevopsEnabled bool `json:"auto_devops_enabled"`
SubGroupCreationLevel string `json:"subgroup_creation_level"`
EmailsDisabled bool `json:"emails_disabled"`
RunnersToken string `json:"runners_token"`
SharedProjects []*Project `json:"shared_projects"`
LDAPCN string `json:"ldap_cn"`
LDAPAccess bool `json:"ldap_access"`
SharedRunnersMinutesLimit int `json:"shared_runners_minutes_limit"`
ExtraSharedRunnersMinutesLimit int `json:"extra_shared_runners_minutes_limit"`
}
// ListGroupsOptions represents the available ListGroups() options.

View File

@ -161,8 +161,8 @@ func (s *MergeRequestApprovalsService) ChangeApprovalConfiguration(pid interface
// GitLab API docs:
// https://docs.gitlab.com/ee/api/merge_request_approvals.html#change-allowed-approvers-for-merge-request
type ChangeMergeRequestAllowedApproversOptions struct {
ApproverIDs []int `url:"approver_ids,omitempty" json:"approver_ids,omitempty"`
ApproverGroupIDs []int `url:"approver_group_ids,omitempty" json:"approver_group_ids,omitempty"`
ApproverIDs []int `url:"approver_ids" json:"approver_ids"`
ApproverGroupIDs []int `url:"approver_group_ids" json:"approver_group_ids"`
}
// ChangeAllowedApprovers updates the approvers for a merge request.

View File

@ -236,8 +236,9 @@ func (s *PipelineSchedulesService) DeletePipelineSchedule(pid interface{}, sched
// GitLab API docs:
// https://docs.gitlab.com/ce/api/pipeline_schedules.html#create-a-new-pipeline-schedule
type CreatePipelineScheduleVariableOptions struct {
Key *string `url:"key" json:"key"`
Value *string `url:"value" json:"value"`
Key *string `url:"key" json:"key"`
Value *string `url:"value" json:"value"`
VariableType *string `url:"variable_type,omitempty" json:"variable_type,omitempty"`
}
// CreatePipelineScheduleVariable creates a pipeline schedule variable.
@ -271,7 +272,8 @@ func (s *PipelineSchedulesService) CreatePipelineScheduleVariable(pid interface{
// GitLab API docs:
// https://docs.gitlab.com/ce/api/pipeline_schedules.html#edit-a-pipeline-schedule-variable
type EditPipelineScheduleVariableOptions struct {
Value *string `url:"value" json:"value"`
Value *string `url:"value" json:"value"`
VariableType *string `url:"variable_type,omitempty" json:"variable_type,omitempty"`
}
// EditPipelineScheduleVariable creates a pipeline schedule variable.

View File

@ -33,8 +33,9 @@ type PipelinesService struct {
//
// GitLab API docs: https://docs.gitlab.com/ce/api/pipelines.html
type PipelineVariable struct {
Key string `json:"key"`
Value string `json:"value"`
Key string `json:"key"`
Value string `json:"value"`
VariableType string `json:"variable_type"`
}
// Pipeline represents a GitLab pipeline.
@ -82,11 +83,13 @@ func (p Pipeline) String() string {
// PipelineInfo shows the basic entities of a pipeline, mostly used as fields
// on other assets, like Commit.
type PipelineInfo struct {
ID int `json:"id"`
Status string `json:"status"`
Ref string `json:"ref"`
SHA string `json:"sha"`
WebURL string `json:"web_url"`
ID int `json:"id"`
Status string `json:"status"`
Ref string `json:"ref"`
SHA string `json:"sha"`
WebURL string `json:"web_url"`
UpdatedAt *time.Time `json:"updated_at"`
CreatedAt *time.Time `json:"created_at"`
}
func (p PipelineInfo) String() string {

View File

@ -43,6 +43,7 @@ type File struct {
Ref string `json:"ref"`
BlobID string `json:"blob_id"`
CommitID string `json:"commit_id"`
SHA256 string `json:"content_sha256"`
}
func (r File) String() string {
@ -128,6 +129,7 @@ func (s *RepositoryFilesService) GetFileMetaData(pid interface{}, fileName strin
FileName: resp.Header.Get("X-Gitlab-File-Name"),
FilePath: resp.Header.Get("X-Gitlab-File-Path"),
Ref: resp.Header.Get("X-Gitlab-Ref"),
SHA256: resp.Header.Get("X-Gitlab-Content-Sha256"),
}
if sizeString := resp.Header.Get("X-Gitlab-Size"); sizeString != "" {

View File

@ -100,6 +100,98 @@ func (s *ServicesService) DeleteGitLabCIService(pid interface{}, options ...Opti
return s.client.Do(req, nil)
}
// GithubService represents Github service settings.
//
// GitLab API docs:
// https://docs.gitlab.com/ce/api/services.html#github-premium
type GithubService struct {
Service
Properties *GithubServiceProperties `json:"properties"`
}
// GithubServiceProperties represents Github specific properties.
//
// GitLab API docs:
// https://docs.gitlab.com/ce/api/services.html#github-premium
type GithubServiceProperties struct {
RepositoryURL string `json:"repository_url,omitempty"`
StaticContext string `json:"static_context,omitempty"`
}
// GetGithubService gets Github service settings for a project.
//
// GitLab API docs:
// https://docs.gitlab.com/ce/api/services.html#get-github-service-settings
func (s *ServicesService) GetGithubService(pid interface{}, options ...OptionFunc) (*GithubService, *Response, error) {
project, err := parseID(pid)
if err != nil {
return nil, nil, err
}
u := fmt.Sprintf("projects/%s/services/github", pathEscape(project))
req, err := s.client.NewRequest("GET", u, nil, options)
if err != nil {
return nil, nil, err
}
svc := new(GithubService)
resp, err := s.client.Do(req, svc)
if err != nil {
return nil, resp, err
}
return svc, resp, err
}
// SetGithubServiceOptions represents the available SetGithubService()
// options.
//
// GitLab API docs:
// https://docs.gitlab.com/ce/api/services.html#createedit-github-service
type SetGithubServiceOptions struct {
Token *string `url:"token,omitempty" json:"token,omitempty"`
RepositoryURL *string `url:"repository_url,omitempty" json:"repository_url,omitempty"`
StaticContext *bool `url:"static_context,omitempty" json:"static_context,omitempty"`
}
// SetGithubService sets Github service for a project
//
// GitLab API docs:
// https://docs.gitlab.com/ce/api/services.html#createedit-github-service
func (s *ServicesService) SetGithubService(pid interface{}, opt *SetGithubServiceOptions, options ...OptionFunc) (*Response, error) {
project, err := parseID(pid)
if err != nil {
return nil, err
}
u := fmt.Sprintf("projects/%s/services/github", pathEscape(project))
req, err := s.client.NewRequest("PUT", u, opt, options)
if err != nil {
return nil, err
}
return s.client.Do(req, nil)
}
// DeleteGithubService deletes Github service for a project
//
// GitLab API docs:
// https://docs.gitlab.com/ce/api/services.html#delete-github-service
func (s *ServicesService) DeleteGithubService(pid interface{}, options ...OptionFunc) (*Response, error) {
project, err := parseID(pid)
if err != nil {
return nil, err
}
u := fmt.Sprintf("projects/%s/services/github", pathEscape(project))
req, err := s.client.NewRequest("DELETE", u, nil, options)
if err != nil {
return nil, err
}
return s.client.Do(req, nil)
}
// SetHipChatServiceOptions represents the available SetHipChatService()
// options.
//

View File

@ -30,100 +30,171 @@ type SettingsService struct {
//
// GitLab API docs: https://docs.gitlab.com/ce/api/settings.html
type Settings struct {
ID int `json:"id"`
CreatedAt *time.Time `json:"created_at"`
UpdatedAt *time.Time `json:"updated_at"`
AdminNotificationEmail string `json:"admin_notification_email"`
AfterSignOutPath string `json:"after_sign_out_path"`
AfterSignUpText string `json:"after_sign_up_text"`
AkismetAPIKey string `json:"akismet_api_key"`
AkismetEnabled bool `json:"akismet_enabled"`
CircuitbreakerAccessRetries int `json:"circuitbreaker_access_retries"`
CircuitbreakerBackoffThreshold int `json:"circuitbreaker_backoff_threshold"`
CircuitbreakerFailureCountThreshold int `json:"circuitbreaker_failure_count_threshold"`
CircuitbreakerFailureResetTime int `json:"circuitbreaker_failure_reset_time"`
CircuitbreakerFailureWaitTime int `json:"circuitbreaker_failure_wait_time"`
CircuitbreakerStorageTimeout int `json:"circuitbreaker_storage_timeout"`
ClientsideSentryDSN string `json:"clientside_sentry_dsn"`
ClientsideSentryEnabled bool `json:"clientside_sentry_enabled"`
ContainerRegistryTokenExpireDelay int `json:"container_registry_token_expire_delay"`
DefaultArtifactsExpireIn string `json:"default_artifacts_expire_in"`
DefaultBranchProtection int `json:"default_branch_protection"`
DefaultGroupVisibility string `json:"default_group_visibility"`
DefaultProjectVisibility string `json:"default_project_visibility"`
DefaultProjectsLimit int `json:"default_projects_limit"`
DefaultSnippetVisibility string `json:"default_snippet_visibility"`
DisabledOauthSignInSources []string `json:"disabled_oauth_sign_in_sources"`
DomainBlacklistEnabled bool `json:"domain_blacklist_enabled"`
DomainBlacklist []string `json:"domain_blacklist"`
DomainWhitelist []string `json:"domain_whitelist"`
DSAKeyRestriction int `json:"dsa_key_restriction"`
ECDSAKeyRestriction int `json:"ecdsa_key_restriction"`
Ed25519KeyRestriction int `json:"ed25519_key_restriction"`
EmailAuthorInBody bool `json:"email_author_in_body"`
EnabledGitAccessProtocol string `json:"enabled_git_access_protocol"`
GravatarEnabled bool `json:"gravatar_enabled"`
HelpPageHideCommercialContent bool `json:"help_page_hide_commercial_content"`
HelpPageSupportURL string `json:"help_page_support_url"`
HomePageURL string `json:"home_page_url"`
HousekeepingBitmapsEnabled bool `json:"housekeeping_bitmaps_enabled"`
HousekeepingEnabled bool `json:"housekeeping_enabled"`
HousekeepingFullRepackPeriod int `json:"housekeeping_full_repack_period"`
HousekeepingGcPeriod int `json:"housekeeping_gc_period"`
HousekeepingIncrementalRepackPeriod int `json:"housekeeping_incremental_repack_period"`
HTMLEmailsEnabled bool `json:"html_emails_enabled"`
ImportSources []string `json:"import_sources"`
KodingEnabled bool `json:"koding_enabled"`
KodingURL string `json:"koding_url"`
LocalMarkdownVersion int `json:"local_markdown_version"`
MaxArtifactsSize int `json:"max_artifacts_size"`
MaxAttachmentSize int `json:"max_attachment_size"`
MaxPagesSize int `json:"max_pages_size"`
MetricsEnabled bool `json:"metrics_enabled"`
MetricsHost string `json:"metrics_host"`
MetricsMethodCallThreshold int `json:"metrics_method_call_threshold"`
MetricsPacketSize int `json:"metrics_packet_size"`
MetricsPoolSize int `json:"metrics_pool_size"`
MetricsPort int `json:"metrics_port"`
MetricsSampleInterval int `json:"metrics_sample_interval"`
MetricsTimeout int `json:"metrics_timeout"`
PasswordAuthenticationEnabledForWeb bool `json:"password_authentication_enabled_for_web"`
PasswordAuthenticationEnabledForGit bool `json:"password_authentication_enabled_for_git"`
PerformanceBarAllowedGroupID string `json:"performance_bar_allowed_group_id"`
PerformanceBarEnabled bool `json:"performance_bar_enabled"`
PlantumlEnabled bool `json:"plantuml_enabled"`
PlantumlURL string `json:"plantuml_url"`
PollingIntervalMultiplier float64 `json:"polling_interval_multiplier,string"`
ProjectExportEnabled bool `json:"project_export_enabled"`
PrometheusMetricsEnabled bool `json:"prometheus_metrics_enabled"`
RecaptchaEnabled bool `json:"recaptcha_enabled"`
RecaptchaPrivateKey string `json:"recaptcha_private_key"`
RecaptchaSiteKey string `json:"recaptcha_site_key"`
RepositoryChecksEnabled bool `json:"repository_checks_enabled"`
RepositoryStorages []string `json:"repository_storages"`
RequireTwoFactorAuthentication bool `json:"require_two_factor_authentication"`
RestrictedVisibilityLevels []VisibilityValue `json:"restricted_visibility_levels"`
RsaKeyRestriction int `json:"rsa_key_restriction"`
SendUserConfirmationEmail bool `json:"send_user_confirmation_email"`
SentryDSN string `json:"sentry_dsn"`
SentryEnabled bool `json:"sentry_enabled"`
SessionExpireDelay int `json:"session_expire_delay"`
SharedRunnersEnabled bool `json:"shared_runners_enabled"`
SharedRunnersText string `json:"shared_runners_text"`
SidekiqThrottlingEnabled bool `json:"sidekiq_throttling_enabled"`
SidekiqThrottlingFactor float64 `json:"sidekiq_throttling_factor"`
SidekiqThrottlingQueues []string `json:"sidekiq_throttling_queues"`
SignInText string `json:"sign_in_text"`
SignupEnabled bool `json:"signup_enabled"`
TerminalMaxSessionTime int `json:"terminal_max_session_time"`
TwoFactorGracePeriod int `json:"two_factor_grace_period"`
UniqueIPsLimitEnabled bool `json:"unique_ips_limit_enabled"`
UniqueIPsLimitPerUser int `json:"unique_ips_limit_per_user"`
UniqueIPsLimitTimeWindow int `json:"unique_ips_limit_time_window"`
UsagePingEnabled bool `json:"usage_ping_enabled"`
UserDefaultExternal bool `json:"user_default_external"`
UserOauthApplications bool `json:"user_oauth_applications"`
VersionCheckEnabled bool `json:"version_check_enabled"`
ID int `json:"id"`
CreatedAt *time.Time `json:"created_at"`
UpdatedAt *time.Time `json:"updated_at"`
AdminNotificationEmail string `json:"admin_notification_email"`
AfterSignOutPath string `json:"after_sign_out_path"`
AfterSignUpText string `json:"after_sign_up_text"`
AkismetAPIKey string `json:"akismet_api_key"`
AkismetEnabled bool `json:"akismet_enabled"`
AllowGroupOwnersToManageLDAP bool `json:"allow_group_owners_to_manage_ldap"`
AllowLocalRequestsFromHooksAndServices bool `json:"allow_local_requests_from_hooks_and_services"`
AllowLocalRequestsFromSystemHooks bool `json:"allow_local_requests_from_system_hooks"`
AllowLocalRequestsFromWebHooksAndServices bool `json:"allow_local_requests_from_web_hooks_and_services"`
ArchiveBuildsInHumanReadable string `json:"archive_builds_in_human_readable"`
AssetProxyEnabled bool `json:"asset_proxy_enabled"`
AssetProxySecretKey string `json:"asset_proxy_secret_key"`
AssetProxyURL string `json:"asset_proxy_url"`
AssetProxyWhitelist []string `json:"asset_proxy_whitelist"`
AuthorizedKeysEnabled bool `json:"authorized_keys_enabled_enabled"`
AutoDevOpsDomain string `json:"auto_devops_domain"`
AutoDevOpsEnabled bool `json:"auto_devops_enabled"`
CheckNamespacePlan bool `json:"check_namespace_plan"`
CommitEmailHostname string `json:"commit_email_hostname"`
ContainerRegistryTokenExpireDelay int `json:"container_registry_token_expire_delay"`
DefaultArtifactsExpireIn string `json:"default_artifacts_expire_in"`
DefaultBranchProtection int `json:"default_branch_protection"`
DefaultGroupVisibility *VisibilityValue `json:"default_group_visibility"`
DefaultProjectCreation int `json:"default_project_creation"`
DefaultProjectsLimit int `json:"default_projects_limit"`
DefaultProjectVisibility *VisibilityValue `json:"default_project_visibility"`
DefaultSnippetVisibility *VisibilityValue `json:"default_snippet_visibility"`
DiffMaxPatchBytes int `json:"diff_max_patch_bytes"`
DisabledOauthSignInSources []string `json:"disabled_oauth_sign_in_sources"`
DNSRebindingProtectionEnabled bool `json:"dns_rebinding_protection_enabled"`
DomainBlacklist []string `json:"domain_blacklist"`
DomainBlacklistEnabled bool `json:"domain_blacklist_enabled"`
DomainWhitelist []string `json:"domain_whitelist"`
DSAKeyRestriction int `json:"dsa_key_restriction"`
ECDSAKeyRestriction int `json:"ecdsa_key_restriction"`
Ed25519KeyRestriction int `json:"ed25519_key_restriction"`
ElasticsearchAWSAccessKey string `json:"elasticsearch_aws_access_key"`
ElasticsearchAWS bool `json:"elasticsearch_aws"`
ElasticsearchAWSRegion string `json:"elasticsearch_aws_region"`
ElasticsearchAWSSecretAccessKey string `json:"elasticsearch_aws_secret_access_key"`
ElasticsearchIndexing bool `json:"elasticsearch_indexing"`
ElasticsearchLimitIndexing bool `json:"elasticsearch_limit_indexing"`
ElasticsearchNamespaceIDs []int `json:"elasticsearch_namespace_ids"`
ElasticsearchProjectIDs []int `json:"elasticsearch_project_ids"`
ElasticsearchSearch bool `json:"elasticsearch_search"`
ElasticsearchURL []string `json:"elasticsearch_url"`
EmailAdditionalText string `json:"email_additional_text"`
EmailAuthorInBody bool `json:"email_author_in_body"`
EnabledGitAccessProtocol string `json:"enabled_git_access_protocol"`
EnforceTerms bool `json:"enforce_terms"`
ExternalAuthClientCert string `json:"external_auth_client_cert"`
ExternalAuthClientKeyPass string `json:"external_auth_client_key_pass"`
ExternalAuthClientKey string `json:"external_auth_client_key"`
ExternalAuthorizationServiceDefaultLabel string `json:"external_authorization_service_default_label"`
ExternalAuthorizationServiceEnabled bool `json:"external_authorization_service_enabled"`
ExternalAuthorizationServiceTimeout float64 `json:"external_authorization_service_timeout"`
ExternalAuthorizationServiceURL string `json:"external_authorization_service_url"`
FileTemplateProjectID int `json:"file_template_project_id"`
FirstDayOfWeek int `json:"first_day_of_week"`
GeoNodeAllowedIPs string `json:"geo_node_allowed_ips"`
GeoStatusTimeout int `json:"geo_status_timeout"`
GitalyTimeoutDefault int `json:"gitaly_timeout_default"`
GitalyTimeoutFast int `json:"gitaly_timeout_fast"`
GitalyTimeoutMedium int `json:"gitaly_timeout_medium"`
GrafanaEnabled bool `json:"grafana_enabled"`
GrafanaURL string `json:"grafana_url"`
GravatarEnabled bool `json:"gravatar_enabled"`
HashedStorageEnabled bool `json:"hashed_storage_enabled"`
HelpPageHideCommercialContent bool `json:"help_page_hide_commercial_content"`
HelpPageSupportURL string `json:"help_page_support_url"`
HelpPageText string `json:"help_page_text"`
HelpText string `json:"help_text"`
HideThirdPartyOffers bool `json:"hide_third_party_offers"`
HomePageURL string `json:"home_page_url"`
HousekeepingBitmapsEnabled bool `json:"housekeeping_bitmaps_enabled"`
HousekeepingEnabled bool `json:"housekeeping_enabled"`
HousekeepingFullRepackPeriod int `json:"housekeeping_full_repack_period"`
HousekeepingGcPeriod int `json:"housekeeping_gc_period"`
HousekeepingIncrementalRepackPeriod int `json:"housekeeping_incremental_repack_period"`
HTMLEmailsEnabled bool `json:"html_emails_enabled"`
ImportSources []string `json:"import_sources"`
InstanceStatisticsVisibilityPrivate bool `json:"instance_statistics_visibility_private"`
LocalMarkdownVersion int `json:"local_markdown_version"`
MaxArtifactsSize int `json:"max_artifacts_size"`
MaxAttachmentSize int `json:"max_attachment_size"`
MaxPagesSize int `json:"max_pages_size"`
MetricsEnabled bool `json:"metrics_enabled"`
MetricsHost string `json:"metrics_host"`
MetricsMethodCallThreshold int `json:"metrics_method_call_threshold"`
MetricsPacketSize int `json:"metrics_packet_size"`
MetricsPoolSize int `json:"metrics_pool_size"`
MetricsPort int `json:"metrics_port"`
MetricsSampleInterval int `json:"metrics_sample_interval"`
MetricsTimeout int `json:"metrics_timeout"`
MirrorAvailable bool `json:"mirror_available"`
MirrorCapacityThreshold int `json:"mirror_capacity_threshold"`
MirrorMaxCapacity int `json:"mirror_max_capacity"`
MirrorMaxDelay int `json:"mirror_max_delay"`
OutboundLocalRequestsWhitelist []string `json:"outbound_local_requests_whitelist"`
PagesDomainVerificationEnabled bool `json:"pages_domain_verification_enabled"`
PasswordAuthenticationEnabledForGit bool `json:"password_authentication_enabled_for_git"`
PasswordAuthenticationEnabledForWeb bool `json:"password_authentication_enabled_for_web"`
PerformanceBarAllowedGroupID string `json:"performance_bar_allowed_group_id"`
PerformanceBarAllowedGroupPath string `json:"performance_bar_allowed_group_path"`
PerformanceBarEnabled bool `json:"performance_bar_enabled"`
PlantumlEnabled bool `json:"plantuml_enabled"`
PlantumlURL string `json:"plantuml_url"`
PollingIntervalMultiplier float64 `json:"polling_interval_multiplier,string"`
ProjectExportEnabled bool `json:"project_export_enabled"`
PrometheusMetricsEnabled bool `json:"prometheus_metrics_enabled"`
ProtectedCIVariables bool `json:"protected_ci_variables"`
PseudonymizerEnabled bool `json:"psedonymizer_enabled"`
PushEventHooksLimit int `json:"push_event_hooks_limit"`
PushEventActivitiesLimit int `json:"push_event_activities_limit"`
RecaptchaEnabled bool `json:"recaptcha_enabled"`
RecaptchaPrivateKey string `json:"recaptcha_private_key"`
RecaptchaSiteKey string `json:"recaptcha_site_key"`
ReceiveMaxInputSize int `json:"receive_max_input_size"`
RepositoryChecksEnabled bool `json:"repository_checks_enabled"`
RepositorySizeLimit int `json:"repository_size_limit"`
RepositoryStorages []string `json:"repository_storages"`
RequireTwoFactorAuthentication bool `json:"require_two_factor_authentication"`
RestrictedVisibilityLevels []VisibilityValue `json:"restricted_visibility_levels"`
RsaKeyRestriction int `json:"rsa_key_restriction"`
SendUserConfirmationEmail bool `json:"send_user_confirmation_email"`
SessionExpireDelay int `json:"session_expire_delay"`
SharedRunnersEnabled bool `json:"shared_runners_enabled"`
SharedRunnersMinutes int `json:"shared_runners_minutes"`
SharedRunnersText string `json:"shared_runners_text"`
SignInText string `json:"sign_in_text"`
SignupEnabled bool `json:"signup_enabled"`
SlackAppEnabled bool `json:"slack_app_enabled"`
SlackAppID string `json:"slack_app_id"`
SlackAppSecret string `json:"slack_app_secret"`
SlackAppVerificationToken string `json:"slack_app_verification_token"`
SnowplowCollectorHostname string `json:"snowplow_collector_hostname"`
SnowplowCookieDomain string `json:"snowplow_cookie_domain"`
SnowplowEnabled bool `json:"snowplow_enabled"`
SnowplowSiteID string `json:"snowplow_site_id"`
TerminalMaxSessionTime int `json:"terminal_max_session_time"`
Terms string `json:"terms"`
ThrottleAuthenticatedAPIEnabled bool `json:"throttle_authenticated_api_enabled"`
ThrottleAuthenticatedAPIPeriodInSeconds int `json:"throttle_authenticated_api_period_in_seconds"`
ThrottleAuthenticatedAPIRequestsPerPeriod int `json:"throttle_authenticated_api_requests_per_period"`
ThrottleAuthenticatedWebEnabled bool `json:"throttle_authenticated_web_enabled"`
ThrottleAuthenticatedWebPeriodInSeconds int `json:"throttle_authenticated_web_period_in_seconds"`
ThrottleAuthenticatedWebRequestsPerPeriod int `json:"throttle_authenticated_web_requests_per_period"`
ThrottleUnauthenticatedEnabled bool `json:"throttle_unauthenticated_enabled"`
ThrottleUnauthenticatedPeriodInSeconds int `json:"throttle_unauthenticated_period_in_seconds"`
ThrottleUnauthenticatedRequestsPerPeriod int `json:"throttle_unauthenticated_requests_per_period"`
TimeTrackingLimitToHours bool `json:"time_tracking_limit_to_hours"`
TwoFactorGracePeriod int `json:"two_factor_grace_period"`
UniqueIPsLimitEnabled bool `json:"unique_ips_limit_enabled"`
UniqueIPsLimitPerUser int `json:"unique_ips_limit_per_user"`
UniqueIPsLimitTimeWindow int `json:"unique_ips_limit_time_window"`
UsagePingEnabled bool `json:"usage_ping_enabled"`
UserDefaultExternal bool `json:"user_default_external"`
UserDefaultInternalRegex string `json:"user_default_internal_regex"`
UserOauthApplications bool `json:"user_oauth_applications"`
UserShowAddSSHKeyMessage bool `json:"user_show_add_ssh_key_message"`
VersionCheckEnabled bool `json:"version_check_enabled"`
WebIDEClientsidePreviewEnabled bool `json:"web_ide_clientside_preview_enabled"`
}
func (s Settings) String() string {
@ -154,97 +225,168 @@ func (s *SettingsService) GetSettings(options ...OptionFunc) (*Settings, *Respon
// GitLab API docs:
// https://docs.gitlab.com/ce/api/settings.html#change-application.settings
type UpdateSettingsOptions struct {
AdminNotificationEmail *string `url:"admin_notification_email,omitempty" json:"admin_notification_email,omitempty"`
AfterSignOutPath *string `url:"after_sign_out_path,omitempty" json:"after_sign_out_path,omitempty"`
AfterSignUpText *string `url:"after_sign_up_text,omitempty" json:"after_sign_up_text,omitempty"`
AkismetAPIKey *string `url:"akismet_api_key,omitempty" json:"akismet_api_key,omitempty"`
AkismetEnabled *bool `url:"akismet_enabled,omitempty" json:"akismet_enabled,omitempty"`
CircuitbreakerAccessRetries *int `url:"circuitbreaker_access_retries,omitempty" json:"circuitbreaker_access_retries,omitempty"`
CircuitbreakerBackoffThreshold *int `url:"circuitbreaker_backoff_threshold,omitempty" json:"circuitbreaker_backoff_threshold,omitempty"`
CircuitbreakerFailureCountThreshold *int `url:"circuitbreaker_failure_count_threshold,omitempty" json:"circuitbreaker_failure_count_threshold,omitempty"`
CircuitbreakerFailureResetTime *int `url:"circuitbreaker_failure_reset_time,omitempty" json:"circuitbreaker_failure_reset_time,omitempty"`
CircuitbreakerFailureWaitTime *int `url:"circuitbreaker_failure_wait_time,omitempty" json:"circuitbreaker_failure_wait_time,omitempty"`
CircuitbreakerStorageTimeout *int `url:"circuitbreaker_storage_timeout,omitempty" json:"circuitbreaker_storage_timeout,omitempty"`
ClientsideSentryDSN *string `url:"clientside_sentry_dsn,omitempty" json:"clientside_sentry_dsn,omitempty"`
ClientsideSentryEnabled *bool `url:"clientside_sentry_enabled,omitempty" json:"clientside_sentry_enabled,omitempty"`
ContainerRegistryTokenExpireDelay *int `url:"container_registry_token_expire_delay,omitempty" json:"container_registry_token_expire_delay,omitempty"`
DefaultArtifactsExpireIn *string `url:"default_artifacts_expire_in,omitempty" json:"default_artifacts_expire_in,omitempty"`
DefaultBranchProtection *int `url:"default_branch_protection,omitempty" json:"default_branch_protection,omitempty"`
DefaultGroupVisibility *string `url:"default_group_visibility,omitempty" json:"default_group_visibility,omitempty"`
DefaultProjectVisibility *string `url:"default_project_visibility,omitempty" json:"default_project_visibility,omitempty"`
DefaultProjectsLimit *int `url:"default_projects_limit,omitempty" json:"default_projects_limit,omitempty"`
DefaultSnippetVisibility *string `url:"default_snippet_visibility,omitempty" json:"default_snippet_visibility,omitempty"`
DisabledOauthSignInSources []string `url:"disabled_oauth_sign_in_sources,omitempty" json:"disabled_oauth_sign_in_sources,omitempty"`
DomainBlacklistEnabled *bool `url:"domain_blacklist_enabled,omitempty" json:"domain_blacklist_enabled,omitempty"`
DomainBlacklist []string `url:"domain_blacklist,omitempty" json:"domain_blacklist,omitempty"`
DomainWhitelist []string `url:"domain_whitelist,omitempty" json:"domain_whitelist,omitempty"`
DSAKeyRestriction *int `url:"dsa_key_restriction,omitempty" json:"dsa_key_restriction,omitempty"`
ECDSAKeyRestriction *int `url:"ecdsa_key_restriction,omitempty" json:"ecdsa_key_restriction,omitempty"`
Ed25519KeyRestriction *int `url:"ed25519_key_restriction,omitempty" json:"ed25519_key_restriction,omitempty"`
EmailAuthorInBody *bool `url:"email_author_in_body,omitempty" json:"email_author_in_body,omitempty"`
EnabledGitAccessProtocol *string `url:"enabled_git_access_protocol,omitempty" json:"enabled_git_access_protocol,omitempty"`
GravatarEnabled *bool `url:"gravatar_enabled,omitempty" json:"gravatar_enabled,omitempty"`
HelpPageHideCommercialContent *bool `url:"help_page_hide_commercial_content,omitempty" json:"help_page_hide_commercial_content,omitempty"`
HelpPageSupportURL *string `url:"help_page_support_url,omitempty" json:"help_page_support_url,omitempty"`
HomePageURL *string `url:"home_page_url,omitempty" json:"home_page_url,omitempty"`
HousekeepingBitmapsEnabled *bool `url:"housekeeping_bitmaps_enabled,omitempty" json:"housekeeping_bitmaps_enabled,omitempty"`
HousekeepingEnabled *bool `url:"housekeeping_enabled,omitempty" json:"housekeeping_enabled,omitempty"`
HousekeepingFullRepackPeriod *int `url:"housekeeping_full_repack_period,omitempty" json:"housekeeping_full_repack_period,omitempty"`
HousekeepingGcPeriod *int `url:"housekeeping_gc_period,omitempty" json:"housekeeping_gc_period,omitempty"`
HousekeepingIncrementalRepackPeriod *int `url:"housekeeping_incremental_repack_period,omitempty" json:"housekeeping_incremental_repack_period,omitempty"`
HTMLEmailsEnabled *bool `url:"html_emails_enabled,omitempty" json:"html_emails_enabled,omitempty"`
ImportSources []string `url:"import_sources,omitempty" json:"import_sources,omitempty"`
KodingEnabled *bool `url:"koding_enabled,omitempty" json:"koding_enabled,omitempty"`
KodingURL *string `url:"koding_url,omitempty" json:"koding_url,omitempty"`
LocalMarkdownVersion *int `url:"local_markdown_version,omitempty" json:"local_markdown_version,omitempty"`
MaxArtifactsSize *int `url:"max_artifacts_size,omitempty" json:"max_artifacts_size,omitempty"`
MaxAttachmentSize *int `url:"max_attachment_size,omitempty" json:"max_attachment_size,omitempty"`
MaxPagesSize *int `url:"max_pages_size,omitempty" json:"max_pages_size,omitempty"`
MetricsEnabled *bool `url:"metrics_enabled,omitempty" json:"metrics_enabled,omitempty"`
MetricsHost *string `url:"metrics_host,omitempty" json:"metrics_host,omitempty"`
MetricsMethodCallThreshold *int `url:"metrics_method_call_threshold,omitempty" json:"metrics_method_call_threshold,omitempty"`
MetricsPacketSize *int `url:"metrics_packet_size,omitempty" json:"metrics_packet_size,omitempty"`
MetricsPoolSize *int `url:"metrics_pool_size,omitempty" json:"metrics_pool_size,omitempty"`
MetricsPort *int `url:"metrics_port,omitempty" json:"metrics_port,omitempty"`
MetricsSampleInterval *int `url:"metrics_sample_interval,omitempty" json:"metrics_sample_interval,omitempty"`
MetricsTimeout *int `url:"metrics_timeout,omitempty" json:"metrics_timeout,omitempty"`
PasswordAuthenticationEnabledForWeb *bool `url:"password_authentication_enabled_for_web,omitempty" json:"password_authentication_enabled_for_web,omitempty"`
PasswordAuthenticationEnabledForGit *bool `url:"password_authentication_enabled_for_git,omitempty" json:"password_authentication_enabled_for_git,omitempty"`
PerformanceBarAllowedGroupID *string `url:"performance_bar_allowed_group_id,omitempty" json:"performance_bar_allowed_group_id,omitempty"`
PerformanceBarEnabled *bool `url:"performance_bar_enabled,omitempty" json:"performance_bar_enabled,omitempty"`
PlantumlEnabled *bool `url:"plantuml_enabled,omitempty" json:"plantuml_enabled,omitempty"`
PlantumlURL *string `url:"plantuml_url,omitempty" json:"plantuml_url,omitempty"`
PollingIntervalMultiplier *float64 `url:"polling_interval_multiplier,omitempty" json:"polling_interval_multiplier,omitempty"`
ProjectExportEnabled *bool `url:"project_export_enabled,omitempty" json:"project_export_enabled,omitempty"`
PrometheusMetricsEnabled *bool `url:"prometheus_metrics_enabled,omitempty" json:"prometheus_metrics_enabled,omitempty"`
RecaptchaEnabled *bool `url:"recaptcha_enabled,omitempty" json:"recaptcha_enabled,omitempty"`
RecaptchaPrivateKey *string `url:"recaptcha_private_key,omitempty" json:"recaptcha_private_key,omitempty"`
RecaptchaSiteKey *string `url:"recaptcha_site_key,omitempty" json:"recaptcha_site_key,omitempty"`
RepositoryChecksEnabled *bool `url:"repository_checks_enabled,omitempty" json:"repository_checks_enabled,omitempty"`
RepositoryStorages []string `url:"repository_storages,omitempty" json:"repository_storages,omitempty"`
RequireTwoFactorAuthentication *bool `url:"require_two_factor_authentication,omitempty" json:"require_two_factor_authentication,omitempty"`
RestrictedVisibilityLevels []VisibilityValue `url:"restricted_visibility_levels,omitempty" json:"restricted_visibility_levels,omitempty"`
RsaKeyRestriction *int `url:"rsa_key_restriction,omitempty" json:"rsa_key_restriction,omitempty"`
SendUserConfirmationEmail *bool `url:"send_user_confirmation_email,omitempty" json:"send_user_confirmation_email,omitempty"`
SentryDSN *string `url:"sentry_dsn,omitempty" json:"sentry_dsn,omitempty"`
SentryEnabled *bool `url:"sentry_enabled,omitempty" json:"sentry_enabled,omitempty"`
SessionExpireDelay *int `url:"session_expire_delay,omitempty" json:"session_expire_delay,omitempty"`
SharedRunnersEnabled *bool `url:"shared_runners_enabled,omitempty" json:"shared_runners_enabled,omitempty"`
SharedRunnersText *string `url:"shared_runners_text,omitempty" json:"shared_runners_text,omitempty"`
SidekiqThrottlingEnabled *bool `url:"sidekiq_throttling_enabled,omitempty" json:"sidekiq_throttling_enabled,omitempty"`
SidekiqThrottlingFactor *float64 `url:"sidekiq_throttling_factor,omitempty" json:"sidekiq_throttling_factor,omitempty"`
SidekiqThrottlingQueues []string `url:"sidekiq_throttling_queues,omitempty" json:"sidekiq_throttling_queues,omitempty"`
SignInText *string `url:"sign_in_text,omitempty" json:"sign_in_text,omitempty"`
SignupEnabled *bool `url:"signup_enabled,omitempty" json:"signup_enabled,omitempty"`
TerminalMaxSessionTime *int `url:"terminal_max_session_time,omitempty" json:"terminal_max_session_time,omitempty"`
TwoFactorGracePeriod *int `url:"two_factor_grace_period,omitempty" json:"two_factor_grace_period,omitempty"`
UniqueIPsLimitEnabled *bool `url:"unique_ips_limit_enabled,omitempty" json:"unique_ips_limit_enabled,omitempty"`
UniqueIPsLimitPerUser *int `url:"unique_ips_limit_per_user,omitempty" json:"unique_ips_limit_per_user,omitempty"`
UniqueIPsLimitTimeWindow *int `url:"unique_ips_limit_time_window,omitempty" json:"unique_ips_limit_time_window,omitempty"`
UsagePingEnabled *bool `url:"usage_ping_enabled,omitempty" json:"usage_ping_enabled,omitempty"`
UserDefaultExternal *bool `url:"user_default_external,omitempty" json:"user_default_external,omitempty"`
UserOauthApplications *bool `url:"user_oauth_applications,omitempty" json:"user_oauth_applications,omitempty"`
VersionCheckEnabled *bool `url:"version_check_enabled,omitempty" json:"version_check_enabled,omitempty"`
AdminNotificationEmail *string `url:"admin_notification_email,omitempty" json:"admin_notification_email,omitempty"`
AfterSignOutPath *string `url:"after_sign_out_path,omitempty" json:"after_sign_out_path,omitempty"`
AfterSignUpText *string `url:"after_sign_up_text,omitempty" json:"after_sign_up_text,omitempty"`
AkismetAPIKey *string `url:"akismet_api_key,omitempty" json:"akismet_api_key,omitempty"`
AkismetEnabled *bool `url:"akismet_enabled,omitempty" json:"akismet_enabled,omitempty"`
AllowGroupOwnersToManageLDAP *bool `url:"allow_group_owners_to_manage_ldap,omitempty" json:"allow_group_owners_to_manage_ldap,omitempty"`
AllowLocalRequestsFromHooksAndServices *bool `url:"allow_local_requests_from_hooks_and_services,omitempty" json:"allow_local_requests_from_hooks_and_services,omitempty"`
AllowLocalRequestsFromSystemHooks *bool `url:"allow_local_requests_from_system_hooks,omitempty" json:"allow_local_requests_from_system_hooks,omitempty"`
AllowLocalRequestsFromWebHooksAndServices *bool `url:"allow_local_requests_from_web_hooks_and_services,omitempty" json:"allow_local_requests_from_web_hooks_and_services,omitempty"`
ArchiveBuildsInHumanReadable *string `url:"archive_builds_in_human_readable,omitempty" json:"archive_builds_in_human_readable,omitempty"`
AssetProxyEnabled *bool `url:"asset_proxy_enabled,omitempty" json:"asset_proxy_enabled,omitempty"`
AssetProxySecretKey *string `url:"asset_proxy_secret_key,omitempty" json:"asset_proxy_secret_key,omitempty"`
AssetProxyURL *string `url:"asset_proxy_url,omitempty" json:"asset_proxy_url,omitempty"`
AssetProxyWhitelist []string `url:"asset_proxy_whitelist,omitempty" json:"asset_proxy_whitelist,omitempty"`
AuthorizedKeysEnabled *bool `url:"authorized_keys_enabled,omitempty" json:"authorized_keys_enabled,omitempty"`
AutoDevOpsDomain *string `url:"auto_devops_domain,omitempty" json:"auto_devops_domain,omitempty"`
AutoDevOpsEnabled *bool `url:"auto_devops_enabled,omitempty" json:"auto_devops_enabled,omitempty"`
CheckNamespacePlan *bool `url:"check_namespace_plan,omitempty" json:"check_namespace_plan,omitempty"`
CommitEmailHostname *string `url:"commit_email_hostname,omitempty" json:"commit_email_hostname,omitempty"`
ContainerRegistryTokenExpireDelay *int `url:"container_registry_token_expire_delay,omitempty" json:"container_registry_token_expire_delay,omitempty"`
DefaultArtifactsExpireIn *string `url:"default_artifacts_expire_in,omitempty" json:"default_artifacts_expire_in,omitempty"`
DefaultBranchProtection *int `url:"default_branch_protection,omitempty" json:"default_branch_protection,omitempty"`
DefaultGroupVisibility *VisibilityValue `url:"default_group_visibility,omitempty" json:"default_group_visibility,omitempty"`
DefaultProjectCreation *int `url:"default_project_creation,omitempty" json:"default_project_creation,omitempty"`
DefaultProjectsLimit *int `url:"default_projects_limit,omitempty" json:"default_projects_limit,omitempty"`
DefaultProjectVisibility *VisibilityValue `url:"default_project_visibility,omitempty" json:"default_project_visibility,omitempty"`
DefaultSnippetVisibility *VisibilityValue `url:"default_snippet_visibility,omitempty" json:"default_snippet_visibility,omitempty"`
DiffMaxPatchBytes *int `url:"diff_max_patch_bytes,omitempty" json:"diff_max_patch_bytes,omitempty"`
DisabledOauthSignInSources []string `url:"disabled_oauth_sign_in_sources,omitempty" json:"disabled_oauth_sign_in_sources,omitempty"`
DNSRebindingProtectionEnabled *bool `url:"dns_rebinding_protection_enabled,omitempty" json:"dns_rebinding_protection_enabled,omitempty"`
DomainBlacklist []string `url:"domain_blacklist,omitempty" json:"domain_blacklist,omitempty"`
DomainBlacklistEnabled *bool `url:"domain_blacklist_enabled,omitempty" json:"domain_blacklist_enabled,omitempty"`
DomainWhitelist []string `url:"domain_whitelist,omitempty" json:"domain_whitelist,omitempty"`
DSAKeyRestriction *int `url:"dsa_key_restriction,omitempty" json:"dsa_key_restriction,omitempty"`
ECDSAKeyRestriction *int `url:"ecdsa_key_restriction,omitempty" json:"ecdsa_key_restriction,omitempty"`
Ed25519KeyRestriction *int `url:"ed25519_key_restriction,omitempty" json:"ed25519_key_restriction,omitempty"`
ElasticsearchAWSAccessKey *string `url:"elasticsearch_aws_access_key,omitempty" json:"elasticsearch_aws_access_key,omitempty"`
ElasticsearchAWS *bool `url:"elasticsearch_aws,omitempty" json:"elasticsearch_aws,omitempty"`
ElasticsearchAWSRegion *string `url:"elasticsearch_aws_region,omitempty" json:"elasticsearch_aws_region,omitempty"`
ElasticsearchAWSSecretAccessKey *string `url:"elasticsearch_aws_secret_access_key,omitempty" json:"elasticsearch_aws_secret_access_key,omitempty"`
ElasticsearchIndexing *bool `url:"elasticsearch_indexing,omitempty" json:"elasticsearch_indexing,omitempty"`
ElasticsearchLimitIndexing *bool `url:"elasticsearch_limit_indexing,omitempty" json:"elasticsearch_limit_indexing,omitempty"`
ElasticsearchNamespaceIDs []int `url:"elasticsearch_namespace_ids,omitempty" json:"elasticsearch_namespace_ids,omitempty"`
ElasticsearchProjectIDs []int `url:"elasticsearch_project_ids,omitempty" json:"elasticsearch_project_ids,omitempty"`
ElasticsearchSearch *bool `url:"elasticsearch_search,omitempty" json:"elasticsearch_search,omitempty"`
ElasticsearchURL *string `url:"elasticsearch_url,omitempty" json:"elasticsearch_url,omitempty"`
EmailAdditionalText *string `url:"email_additional_text,omitempty" json:"email_additional_text,omitempty"`
EmailAuthorInBody *bool `url:"email_author_in_body,omitempty" json:"email_author_in_body,omitempty"`
EnabledGitAccessProtocol *string `url:"enabled_git_access_protocol,omitempty" json:"enabled_git_access_protocol,omitempty"`
EnforceTerms *bool `url:"enforce_terms,omitempty" json:"enforce_terms,omitempty"`
ExternalAuthClientCert *string `url:"external_auth_client_cert,omitempty" json:"external_auth_client_cert,omitempty"`
ExternalAuthClientKeyPass *string `url:"external_auth_client_key_pass,omitempty" json:"external_auth_client_key_pass,omitempty"`
ExternalAuthClientKey *string `url:"external_auth_client_key,omitempty" json:"external_auth_client_key,omitempty"`
ExternalAuthorizationServiceDefaultLabel *string `url:"external_authorization_service_default_label,omitempty" json:"external_authorization_service_default_label,omitempty"`
ExternalAuthorizationServiceEnabled *bool `url:"external_authorization_service_enabled,omitempty" json:"external_authorization_service_enabled,omitempty"`
ExternalAuthorizationServiceTimeout *float64 `url:"external_authorization_service_timeout,omitempty" json:"external_authorization_service_timeout,omitempty"`
ExternalAuthorizationServiceURL *string `url:"external_authorization_service_url,omitempty" json:"external_authorization_service_url,omitempty"`
FileTemplateProjectID *int `url:"file_template_project_id,omitempty" json:"file_template_project_id,omitempty"`
FirstDayOfWeek *int `url:"first_day_of_week,omitempty" json:"first_day_of_week,omitempty"`
GeoNodeAllowedIPs *string `url:"geo_node_allowed_ips,omitempty" json:"geo_node_allowed_ips,omitempty"`
GeoStatusTimeout *int `url:"geo_status_timeout,omitempty" json:"geo_status_timeout,omitempty"`
GitalyTimeoutDefault *int `url:"gitaly_timeout_default,omitempty" json:"gitaly_timeout_default,omitempty"`
GitalyTimeoutFast *int `url:"gitaly_timeout_fast,omitempty" json:"gitaly_timeout_fast,omitempty"`
GitalyTimeoutMedium *int `url:"gitaly_timeout_medium,omitempty" json:"gitaly_timeout_medium,omitempty"`
GrafanaEnabled *bool `url:"grafana_enabled,omitempty" json:"grafana_enabled,omitempty"`
GrafanaURL *string `url:"grafana_url,omitempty" json:"grafana_url,omitempty"`
GravatarEnabled *bool `url:"gravatar_enabled,omitempty" json:"gravatar_enabled,omitempty"`
HashedStorageEnabled *bool `url:"hashed_storage_enabled,omitempty" json:"hashed_storage_enabled,omitempty"`
HelpPageHideCommercialContent *bool `url:"help_page_hide_commercial_content,omitempty" json:"help_page_hide_commercial_content,omitempty"`
HelpPageSupportURL *string `url:"help_page_support_url,omitempty" json:"help_page_support_url,omitempty"`
HelpPageText *string `url:"help_page_text,omitempty" json:"help_page_text,omitempty"`
HelpText *string `url:"help_text,omitempty" json:"help_text,omitempty"`
HideThirdPartyOffers *bool `url:"hide_third_party_offers,omitempty" json:"hide_third_party_offers,omitempty"`
HomePageURL *string `url:"home_page_url,omitempty" json:"home_page_url,omitempty"`
HousekeepingBitmapsEnabled *bool `url:"housekeeping_bitmaps_enabled,omitempty" json:"housekeeping_bitmaps_enabled,omitempty"`
HousekeepingEnabled *bool `url:"housekeeping_enabled,omitempty" json:"housekeeping_enabled,omitempty"`
HousekeepingFullRepackPeriod *int `url:"housekeeping_full_repack_period,omitempty" json:"housekeeping_full_repack_period,omitempty"`
HousekeepingGcPeriod *int `url:"housekeeping_gc_period,omitempty" json:"housekeeping_gc_period,omitempty"`
HousekeepingIncrementalRepackPeriod *int `url:"housekeeping_incremental_repack_period,omitempty" json:"housekeeping_incremental_repack_period,omitempty"`
HTMLEmailsEnabled *bool `url:"html_emails_enabled,omitempty" json:"html_emails_enabled,omitempty"`
ImportSources []string `url:"import_sources,omitempty" json:"import_sources,omitempty"`
InstanceStatisticsVisibilityPrivate *bool `url:"instance_statistics_visibility_private,omitempty" json:"instance_statistics_visibility_private,omitempty"`
LocalMarkdownVersion *int `url:"local_markdown_version,omitempty" json:"local_markdown_version,omitempty"`
MaxArtifactsSize *int `url:"max_artifacts_size,omitempty" json:"max_artifacts_size,omitempty"`
MaxAttachmentSize *int `url:"max_attachment_size,omitempty" json:"max_attachment_size,omitempty"`
MaxPagesSize *int `url:"max_pages_size,omitempty" json:"max_pages_size,omitempty"`
MetricsEnabled *bool `url:"metrics_enabled,omitempty" json:"metrics_enabled,omitempty"`
MetricsHost *string `url:"metrics_host,omitempty" json:"metrics_host,omitempty"`
MetricsMethodCallThreshold *int `url:"metrics_method_call_threshold,omitempty" json:"metrics_method_call_threshold,omitempty"`
MetricsPacketSize *int `url:"metrics_packet_size,omitempty" json:"metrics_packet_size,omitempty"`
MetricsPoolSize *int `url:"metrics_pool_size,omitempty" json:"metrics_pool_size,omitempty"`
MetricsPort *int `url:"metrics_port,omitempty" json:"metrics_port,omitempty"`
MetricsSampleInterval *int `url:"metrics_sample_interval,omitempty" json:"metrics_sample_interval,omitempty"`
MetricsTimeout *int `url:"metrics_timeout,omitempty" json:"metrics_timeout,omitempty"`
MirrorAvailable *bool `url:"mirror_available,omitempty" json:"mirror_available,omitempty"`
MirrorCapacityThreshold *int `url:"mirror_capacity_threshold,omitempty" json:"mirror_capacity_threshold,omitempty"`
MirrorMaxCapacity *int `url:"mirror_max_capacity,omitempty" json:"mirror_max_capacity,omitempty"`
MirrorMaxDelay *int `url:"mirror_max_delay,omitempty" json:"mirror_max_delay,omitempty"`
OutboundLocalRequestsWhitelist []string `url:"outbound_local_requests_whitelist,omitempty" json:"outbound_local_requests_whitelist,omitempty"`
PagesDomainVerificationEnabled *bool `url:"pages_domain_verification_enabled,omitempty" json:"pages_domain_verification_enabled,omitempty"`
PasswordAuthenticationEnabledForGit *bool `url:"password_authentication_enabled_for_git,omitempty" json:"password_authentication_enabled_for_git,omitempty"`
PasswordAuthenticationEnabledForWeb *bool `url:"password_authentication_enabled_for_web,omitempty" json:"password_authentication_enabled_for_web,omitempty"`
PerformanceBarAllowedGroupID *string `url:"performance_bar_allowed_group_id,omitempty" json:"performance_bar_allowed_group_id,omitempty"`
PerformanceBarAllowedGroupPath *string `url:"performance_bar_allowed_group_path,omitempty" json:"performance_bar_allowed_group_path,omitempty"`
PerformanceBarEnabled *bool `url:"performance_bar_enabled,omitempty" json:"performance_bar_enabled,omitempty"`
PlantumlEnabled *bool `url:"plantuml_enabled,omitempty" json:"plantuml_enabled,omitempty"`
PlantumlURL *string `url:"plantuml_url,omitempty" json:"plantuml_url,omitempty"`
PollingIntervalMultiplier *float64 `url:"polling_interval_multiplier,omitempty" json:"polling_interval_multiplier,omitempty"`
ProjectExportEnabled *bool `url:"project_export_enabled,omitempty" json:"project_export_enabled,omitempty"`
PrometheusMetricsEnabled *bool `url:"prometheus_metrics_enabled,omitempty" json:"prometheus_metrics_enabled,omitempty"`
ProtectedCIVariables *bool `url:"protected_ci_variables,omitempty" json:"protected_ci_variables,omitempty"`
PseudonymizerEnabled *bool `url:"psedonymizer_enabled,omitempty" json:"psedonymizer_enabled,omitempty"`
PushEventHooksLimit *int `url:"push_event_hooks_limit,omitempty" json:"push_event_hooks_limit,omitempty"`
PushEventActivitiesLimit *int `url:"push_event_activities_limit,omitempty" json:"push_event_activities_limit,omitempty"`
RecaptchaEnabled *bool `url:"recaptcha_enabled,omitempty" json:"recaptcha_enabled,omitempty"`
RecaptchaPrivateKey *string `url:"recaptcha_private_key,omitempty" json:"recaptcha_private_key,omitempty"`
RecaptchaSiteKey *string `url:"recaptcha_site_key,omitempty" json:"recaptcha_site_key,omitempty"`
ReceiveMaxInputSize *int `url:"receive_max_input_size,omitempty" json:"receive_max_input_size,omitempty"`
RepositoryChecksEnabled *bool `url:"repository_checks_enabled,omitempty" json:"repository_checks_enabled,omitempty"`
RepositorySizeLimit *int `url:"repository_size_limit,omitempty" json:"repository_size_limit,omitempty"`
RepositoryStorages []string `url:"repository_storages,omitempty" json:"repository_storages,omitempty"`
RequireTwoFactorAuthentication *bool `url:"require_two_factor_authentication,omitempty" json:"require_two_factor_authentication,omitempty"`
RestrictedVisibilityLevels []VisibilityValue `url:"restricted_visibility_levels,omitempty" json:"restricted_visibility_levels,omitempty"`
RsaKeyRestriction *int `url:"rsa_key_restriction,omitempty" json:"rsa_key_restriction,omitempty"`
SendUserConfirmationEmail *bool `url:"send_user_confirmation_email,omitempty" json:"send_user_confirmation_email,omitempty"`
SessionExpireDelay *int `url:"session_expire_delay,omitempty" json:"session_expire_delay,omitempty"`
SharedRunnersEnabled *bool `url:"shared_runners_enabled,omitempty" json:"shared_runners_enabled,omitempty"`
SharedRunnersMinutes *int `url:"shared_runners_minutes,omitempty" json:"shared_runners_minutes,omitempty"`
SharedRunnersText *string `url:"shared_runners_text,omitempty" json:"shared_runners_text,omitempty"`
SignInText *string `url:"sign_in_text,omitempty" json:"sign_in_text,omitempty"`
SignupEnabled *bool `url:"signup_enabled,omitempty" json:"signup_enabled,omitempty"`
SlackAppEnabled *bool `url:"slack_app_enabled,omitempty" json:"slack_app_enabled,omitempty"`
SlackAppID *string `url:"slack_app_id,omitempty" json:"slack_app_id,omitempty"`
SlackAppSecret *string `url:"slack_app_secret,omitempty" json:"slack_app_secret,omitempty"`
SlackAppVerificationToken *string `url:"slack_app_verification_token,omitempty" json:"slack_app_verification_token,omitempty"`
SnowplowCollectorHostname *string `url:"snowplow_collector_hostname,omitempty" json:"snowplow_collector_hostname,omitempty"`
SnowplowCookieDomain *string `url:"snowplow_cookie_domain,omitempty" json:"snowplow_cookie_domain,omitempty"`
SnowplowEnabled *bool `url:"snowplow_enabled,omitempty" json:"snowplow_enabled,omitempty"`
SnowplowSiteID *string `url:"snowplow_site_id,omitempty" json:"snowplow_site_id,omitempty"`
TerminalMaxSessionTime *int `url:"terminal_max_session_time,omitempty" json:"terminal_max_session_time,omitempty"`
Terms *string `url:"terms,omitempty" json:"terms,omitempty"`
ThrottleAuthenticatedAPIEnabled *bool `url:"throttle_authenticated_api_enabled,omitempty" json:"throttle_authenticated_api_enabled,omitempty"`
ThrottleAuthenticatedAPIPeriodInSeconds *int `url:"throttle_authenticated_api_period_in_seconds,omitempty" json:"throttle_authenticated_api_period_in_seconds,omitempty"`
ThrottleAuthenticatedAPIRequestsPerPeriod *int `url:"throttle_authenticated_api_requests_per_period,omitempty" json:"throttle_authenticated_api_requests_per_period,omitempty"`
ThrottleAuthenticatedWebEnabled *bool `url:"throttle_authenticated_web_enabled,omitempty" json:"throttle_authenticated_web_enabled,omitempty"`
ThrottleAuthenticatedWebPeriodInSeconds *int `url:"throttle_authenticated_web_period_in_seconds,omitempty" json:"throttle_authenticated_web_period_in_seconds,omitempty"`
ThrottleAuthenticatedWebRequestsPerPeriod *int `url:"throttle_authenticated_web_requests_per_period,omitempty" json:"throttle_authenticated_web_requests_per_period,omitempty"`
ThrottleUnauthenticatedEnabled *bool `url:"throttle_unauthenticated_enabled,omitempty" json:"throttle_unauthenticated_enabled,omitempty"`
ThrottleUnauthenticatedPeriodInSeconds *int `url:"throttle_unauthenticated_period_in_seconds,omitempty" json:"throttle_unauthenticated_period_in_seconds,omitempty"`
ThrottleUnauthenticatedRequestsPerPeriod *int `url:"throttle_unauthenticated_requests_per_period,omitempty" json:"throttle_unauthenticated_requests_per_period,omitempty"`
TimeTrackingLimitToHours *bool `url:"time_tracking_limit_to_hours,omitempty" json:"time_tracking_limit_to_hours,omitempty"`
TwoFactorGracePeriod *int `url:"two_factor_grace_period,omitempty" json:"two_factor_grace_period,omitempty"`
UniqueIPsLimitEnabled *bool `url:"unique_ips_limit_enabled,omitempty" json:"unique_ips_limit_enabled,omitempty"`
UniqueIPsLimitPerUser *int `url:"unique_ips_limit_per_user,omitempty" json:"unique_ips_limit_per_user,omitempty"`
UniqueIPsLimitTimeWindow *int `url:"unique_ips_limit_time_window,omitempty" json:"unique_ips_limit_time_window,omitempty"`
UsagePingEnabled *bool `url:"usage_ping_enabled,omitempty" json:"usage_ping_enabled,omitempty"`
UserDefaultExternal *bool `url:"user_default_external,omitempty" json:"user_default_external,omitempty"`
UserDefaultInternalRegex *string `url:"user_default_internal_regex,omitempty" json:"user_default_internal_regex,omitempty"`
UserOauthApplications *bool `url:"user_oauth_applications,omitempty" json:"user_oauth_applications,omitempty"`
UserShowAddSSHKeyMessage *bool `url:"user_show_add_ssh_key_message,omitempty" json:"user_show_add_ssh_key_message,omitempty"`
VersionCheckEnabled *bool `url:"version_check_enabled,omitempty" json:"version_check_enabled,omitempty"`
WebIDEClientsidePreviewEnabled *bool `url:"web_ide_clientside_preview_enabled,omitempty" json:"web_ide_clientside_preview_enabled,omitempty"`
}
// UpdateSettings updates the application settings.