mirror of
https://github.com/jdalrymple/gitbeaker.git
synced 2026-01-18 15:55:30 +00:00
Adding extensive typing support Unified browser and Node.JS implementations Adding support of Gitlab API 16.0
275 lines
11 KiB
TypeScript
275 lines
11 KiB
TypeScript
import { BaseResource } from '@gitbeaker/requester-utils';
|
|
import { RequestHelper } from '../infrastructure';
|
|
import type { BaseRequestOptions, GitlabAPIResponse, ShowExpanded, Sudo } from '../infrastructure';
|
|
|
|
export interface ApplicationSettingsSchema extends Record<string, unknown> {
|
|
admin_mode?: boolean;
|
|
admin_notification_email?: string;
|
|
abuse_notification_email?: string;
|
|
after_sign_out_path?: string;
|
|
after_sign_up_text?: string;
|
|
akismet_api_key?: string;
|
|
akismet_enabled?: boolean;
|
|
allow_group_owners_to_manage_ldap?: boolean;
|
|
allow_local_requests_from_hooks_and_services?: boolean;
|
|
allow_local_requests_from_system_hooks?: boolean;
|
|
allow_local_requests_from_web_hooks_and_services?: boolean;
|
|
allow_runner_registration_token?: boolean;
|
|
archive_builds_in_human_readable?: string;
|
|
asset_proxy_enabled?: boolean;
|
|
asset_proxy_secret_key?: string;
|
|
asset_proxy_url?: string;
|
|
asset_proxy_whitelist?: string | string[];
|
|
asset_proxy_allowlist?: string | string[];
|
|
authorized_keys_enabled?: boolean;
|
|
auto_devops_domain?: string;
|
|
auto_devops_enabled?: boolean;
|
|
automatic_purchased_storage_allocation?: boolean;
|
|
bulk_import_enabled?: boolean;
|
|
can_create_group?: boolean;
|
|
check_namespace_plan?: boolean;
|
|
commit_email_hostname?: string;
|
|
container_expiration_policies_enable_historic_entries?: boolean;
|
|
container_registry_cleanup_tags_service_max_list_size?: number;
|
|
container_registry_delete_tags_service_timeout?: number;
|
|
container_registry_expiration_policies_caching?: boolean;
|
|
container_registry_expiration_policies_worker_capacity?: number;
|
|
container_registry_token_expire_delay?: number;
|
|
package_registry_cleanup_policies_worker_capacity?: number;
|
|
deactivate_dormant_users?: boolean;
|
|
deactivate_dormant_users_period?: number;
|
|
default_artifacts_expire_in?: string;
|
|
default_branch_name?: string;
|
|
default_branch_protection?: number;
|
|
default_ci_config_path?: string;
|
|
default_group_visibility?: string;
|
|
default_preferred_language?: string;
|
|
default_project_creation?: number;
|
|
default_project_visibility?: string;
|
|
default_projects_limit?: number;
|
|
default_snippet_visibility?: string;
|
|
default_syntax_highlighting_theme?: number;
|
|
delayed_project_deletion?: boolean;
|
|
delayed_group_deletion?: boolean;
|
|
deletion_adjourned_period?: number;
|
|
diff_max_patch_bytes?: number;
|
|
diff_max_files?: number;
|
|
diff_max_lines?: number;
|
|
disable_admin_oauth_scopes?: boolean;
|
|
disable_feed_token?: boolean;
|
|
disable_personal_access_token?: boolean;
|
|
disabled_oauth_sign_in_sources?: string[];
|
|
dns_rebinding_protection_enabled?: boolean;
|
|
domain_denylist_enabled?: boolean;
|
|
domain_denylist?: string[];
|
|
domain_allowlist?: string[];
|
|
dsa_key_restriction?: number;
|
|
ecdsa_key_restriction?: number;
|
|
ecdsa_sk_key_restriction?: number;
|
|
ed25519_key_restriction?: number;
|
|
ed25519_sk_key_restriction?: number;
|
|
eks_access_key_id?: string;
|
|
eks_account_id?: string;
|
|
eks_integration_enabled?: boolean;
|
|
eks_secret_access_key?: string;
|
|
elasticsearch_aws_access_key?: string;
|
|
elasticsearch_aws_region?: string;
|
|
elasticsearch_aws_secret_access_key?: string;
|
|
elasticsearch_aws?: boolean;
|
|
elasticsearch_indexed_field_length_limit?: number;
|
|
elasticsearch_indexed_file_size_limit_kb?: number;
|
|
elasticsearch_indexing?: boolean;
|
|
elasticsearch_limit_indexing?: boolean;
|
|
elasticsearch_max_bulk_concurrency?: number;
|
|
elasticsearch_max_bulk_size_mb?: number;
|
|
elasticsearch_namespace_ids?: number[];
|
|
elasticsearch_project_ids?: number[];
|
|
elasticsearch_search?: boolean;
|
|
elasticsearch_url?: string;
|
|
elasticsearch_username?: string;
|
|
elasticsearch_password?: string;
|
|
email_additional_text?: string;
|
|
email_author_in_body?: boolean;
|
|
email_confirmation_setting?: string;
|
|
enabled_git_access_protocol?: string;
|
|
enforce_namespace_storage_limit?: boolean;
|
|
enforce_terms?: boolean;
|
|
external_auth_client_cert?: string;
|
|
external_auth_client_key_pass?: string;
|
|
external_auth_client_key?: string;
|
|
external_authorization_service_default_label?: string;
|
|
external_authorization_service_enabled?: boolean;
|
|
external_authorization_service_timeout?: number;
|
|
external_authorization_service_url?: string;
|
|
external_pipeline_validation_service_url?: string;
|
|
external_pipeline_validation_service_token?: string;
|
|
external_pipeline_validation_service_timeout?: number;
|
|
file_template_project_id?: number;
|
|
first_day_of_week?: number;
|
|
geo_node_allowed_ips?: string;
|
|
geo_status_timeout?: number;
|
|
git_two_factor_session_expiry?: number;
|
|
gitaly_timeout_default?: number;
|
|
gitaly_timeout_fast?: number;
|
|
gitaly_timeout_medium?: number;
|
|
gitlab_dedicated_instance?: boolean;
|
|
grafana_enabled?: boolean;
|
|
grafana_url?: string;
|
|
gravatar_enabled?: boolean;
|
|
group_owners_can_manage_default_branch_protection?: boolean;
|
|
hashed_storage_enabled?: boolean;
|
|
help_page_hide_commercial_content?: boolean;
|
|
help_page_support_url?: string;
|
|
help_page_text?: string;
|
|
help_text?: string;
|
|
hide_third_party_offers?: boolean;
|
|
home_page_url?: string;
|
|
housekeeping_enabled?: boolean;
|
|
housekeeping_optimize_repository_period?: number;
|
|
html_emails_enabled?: boolean;
|
|
import_sources?: string[];
|
|
in_product_marketing_emails_enabled?: boolean;
|
|
invisible_captcha_enabled?: boolean;
|
|
issues_create_limit?: number;
|
|
keep_latest_artifact?: boolean;
|
|
local_markdown_version?: number;
|
|
mailgun_signing_key?: string;
|
|
mailgun_events_enabled?: boolean;
|
|
maintenance_mode_message?: string;
|
|
maintenance_mode?: boolean;
|
|
max_artifacts_size?: number;
|
|
max_attachment_size?: number;
|
|
max_export_size?: number;
|
|
max_import_size?: number;
|
|
max_pages_size?: number;
|
|
max_personal_access_token_lifetime?: number;
|
|
max_ssh_key_lifetime?: number;
|
|
max_terraform_state_size_bytes?: number;
|
|
metrics_method_call_threshold?: number;
|
|
max_number_of_repository_downloads?: number;
|
|
max_number_of_repository_downloads_within_time_period?: number;
|
|
git_rate_limit_users_allowlist?: string[];
|
|
git_rate_limit_users_alertlist?: number[];
|
|
auto_ban_user_on_excessive_projects_download?: boolean;
|
|
mirror_available?: boolean;
|
|
mirror_capacity_threshold?: number;
|
|
mirror_max_capacity?: number;
|
|
mirror_max_delay?: number;
|
|
maven_package_requests_forwarding?: boolean;
|
|
npm_package_requests_forwarding?: boolean;
|
|
pypi_package_requests_forwarding?: boolean;
|
|
outbound_local_requests_whitelist?: string[];
|
|
pages_domain_verification_enabled?: boolean;
|
|
password_authentication_enabled_for_git?: boolean;
|
|
password_authentication_enabled_for_web?: boolean;
|
|
password_number_required?: boolean;
|
|
password_symbol_required?: boolean;
|
|
password_uppercase_required?: boolean;
|
|
password_lowercase_required?: boolean;
|
|
performance_bar_allowed_group_path?: string;
|
|
personal_access_token_prefix?: string;
|
|
pipeline_limit_per_project_user_sha?: number;
|
|
plantuml_enabled?: boolean;
|
|
plantuml_url?: string;
|
|
polling_interval_multiplier?: number;
|
|
project_export_enabled?: boolean;
|
|
projects_api_rate_limit_unauthenticated?: number;
|
|
prometheus_metrics_enabled?: boolean;
|
|
protected_ci_variables?: boolean;
|
|
push_event_activities_limit?: number;
|
|
push_event_hooks_limit?: number;
|
|
rate_limiting_response_text?: string;
|
|
raw_blob_request_limit?: number;
|
|
search_rate_limit?: number;
|
|
search_rate_limit_unauthenticated?: number;
|
|
recaptcha_enabled?: boolean;
|
|
recaptcha_private_key?: string;
|
|
recaptcha_site_key?: string;
|
|
receive_max_input_size?: number;
|
|
repository_checks_enabled?: boolean;
|
|
repository_size_limit?: number;
|
|
repository_storages_weighted?: Record<string, number>;
|
|
repository_storages?: string[];
|
|
require_admin_approval_after_user_signup?: boolean;
|
|
require_two_factor_authentication?: boolean;
|
|
restricted_visibility_levels?: string[];
|
|
rsa_key_restriction?: number;
|
|
session_expire_delay?: number;
|
|
shared_runners_enabled?: boolean;
|
|
shared_runners_minutes?: number;
|
|
shared_runners_text?: string;
|
|
sidekiq_job_limiter_mode?: string;
|
|
sidekiq_job_limiter_compression_threshold_bytes?: number;
|
|
sidekiq_job_limiter_limit_bytes?: number;
|
|
sign_in_text?: string;
|
|
signup_enabled?: boolean;
|
|
slack_app_enabled?: boolean;
|
|
slack_app_id?: string;
|
|
slack_app_secret?: string;
|
|
slack_app_signing_secret?: string;
|
|
slack_app_verification_token?: string;
|
|
snippet_size_limit?: number;
|
|
snowplow_app_id?: string;
|
|
snowplow_collector_hostname?: string;
|
|
snowplow_cookie_domain?: string;
|
|
snowplow_enabled?: boolean;
|
|
sourcegraph_enabled?: boolean;
|
|
sourcegraph_public_only?: boolean;
|
|
sourcegraph_url?: string;
|
|
spam_check_endpoint_enabled?: boolean;
|
|
spam_check_endpoint_url?: string;
|
|
spam_check_api_key?: string;
|
|
suggest_pipeline_enabled?: boolean;
|
|
terminal_max_session_time?: number;
|
|
terms?: string;
|
|
throttle_authenticated_api_enabled?: boolean;
|
|
throttle_authenticated_api_period_in_seconds?: number;
|
|
throttle_authenticated_api_requests_per_period?: number;
|
|
throttle_authenticated_packages_api_enabled?: boolean;
|
|
throttle_authenticated_packages_api_period_in_seconds?: number;
|
|
throttle_authenticated_packages_api_requests_per_period?: number;
|
|
throttle_authenticated_web_enabled?: boolean;
|
|
throttle_authenticated_web_period_in_seconds?: number;
|
|
throttle_authenticated_web_requests_per_period?: number;
|
|
throttle_unauthenticated_api_enabled?: boolean;
|
|
throttle_unauthenticated_api_period_in_seconds?: number;
|
|
throttle_unauthenticated_api_requests_per_period?: number;
|
|
throttle_unauthenticated_packages_api_enabled?: boolean;
|
|
throttle_unauthenticated_packages_api_period_in_seconds?: number;
|
|
throttle_unauthenticated_packages_api_requests_per_period?: number;
|
|
throttle_unauthenticated_web_enabled?: boolean;
|
|
throttle_unauthenticated_web_period_in_seconds?: number;
|
|
throttle_unauthenticated_web_requests_per_period?: number;
|
|
time_tracking_limit_to_hours?: boolean;
|
|
two_factor_grace_period?: number;
|
|
unique_ips_limit_enabled?: boolean;
|
|
unique_ips_limit_per_user?: number;
|
|
unique_ips_limit_time_window?: number;
|
|
usage_ping_enabled?: boolean;
|
|
user_deactivation_emails_enabled?: boolean;
|
|
user_default_external?: boolean;
|
|
user_default_internal_regex?: string;
|
|
user_defaults_to_private_profile?: boolean;
|
|
user_oauth_applications?: boolean;
|
|
user_show_add_ssh_key_message?: boolean;
|
|
version_check_enabled?: boolean;
|
|
whats_new_variant?: string;
|
|
wiki_page_max_content_bytes?: number;
|
|
jira_connect_application_key?: string;
|
|
jira_connect_proxy_url?: string;
|
|
}
|
|
|
|
export class ApplicationSettings<C extends boolean = false> extends BaseResource<C> {
|
|
show<E extends boolean = false>(
|
|
options?: Sudo & ShowExpanded<E>,
|
|
): Promise<GitlabAPIResponse<ApplicationSettingsSchema, C, E, void>> {
|
|
return RequestHelper.get<ApplicationSettingsSchema>()(this, 'application/settings', options);
|
|
}
|
|
|
|
edit<E extends boolean = false>(
|
|
options?: BaseRequestOptions<E>,
|
|
): Promise<GitlabAPIResponse<ApplicationSettingsSchema, C, E, void>> {
|
|
return RequestHelper.put<ApplicationSettingsSchema>()(this, 'application/settings', options);
|
|
}
|
|
}
|