애플리케이션 설정 API
이 API 호출을 사용하면 /admin/application_settings/general
에 나타나는 GitLab 인스턴스의 애플리케이션 설정을 읽고 수정할 수 있습니다. 이 작업을 수행하려면 관리자여야 합니다.
애플리케이션 설정은 캐싱의 영향을 받을 수 있으며 즉시 적용되지 않을 수 있습니다. GitLab은 기본적으로 애플리케이션 설정을 60초 동안 캐시합니다. 인스턴스의 애플리케이션 설정 캐시를 제어하는 방법에 대한 정보는 Application cache interval를 참조하세요.
현재 애플리케이션 설정 가져오기
-
always_perform_delayed_deletion
기능 플래그는 GitLab 15.11에서 활성화되었습니다. -
delayed_project_deletion
및delayed_group_deletion
속성은 GitLab 16.0에서 제거되었습니다. -
in_product_marketing_emails_enabled
속성은 GitLab 16.6에서 제거되었습니다. -
repository_storages
속성은 GitLab 16.6에서 제거되었습니다. -
user_email_lookup_limit
속성은 GitLab 16.7에서 제거되었습니다.
GitLab 인스턴스의 현재 애플리케이션 설정을 나열합니다.
GET /application/settings
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/application/settings"
응답 예시:
{
"default_projects_limit" : 100000,
"signup_enabled" : true,
"id" : 1,
"default_branch_protection" : 2,
"default_branch_protection_defaults": {
"allowed_to_push": [
{
"access_level": 40
}
],
"allow_force_push": false,
"allowed_to_merge": [
{
"access_level": 40
}
]
},
"default_preferred_language" : "en",
"failed_login_attempts_unlock_period_in_minutes": 30,
...
}
GitLab Premium 또는 Ultimate 사용자는 또한 다음과 같은 매개변수를 볼 수 있습니다:
group_owners_can_manage_default_branch_protection
file_template_project_id
geo_node_allowed_ips
geo_status_timeout
default_project_deletion_protection
deletion_adjourned_period
disable_personal_access_tokens
security_policy_global_group_approvers_enabled
security_approval_policies_limit
delete_unconfirmed_users
unconfirmed_users_delete_after_days
duo_features_enabled
lock_duo_features_enabled
use_clickhouse_for_analytics
pre_receive_secret_detection_enabled
{
"id": 1,
"signup_enabled": true,
"group_owners_can_manage_default_branch_protection": true,
"file_template_project_id": 1,
"geo_node_allowed_ips": "0.0.0.0/0, ::/0",
...
}
애플리케이션 설정 변경
GitLab 인스턴스의 애플리케이션 설정을 수정하려면 API 호출을 사용합니다.
PUT /application/settings
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/application/settings?signup_enabled=false&default_project_visibility=internal"
예시 응답:
{
"id": 1,
"default_projects_limit": 100000,
"default_preferred_language": "en",
"failed_login_attempts_unlock_period_in_minutes": 30,
"signup_enabled": false,
"password_authentication_enabled_for_web": true,
"gravatar_enabled": true,
"created_at": "2015-06-12T15:51:55.432Z",
"updated_at": "2015-06-30T13:22:42.210Z",
"home_page_url": "",
"default_branch_protection": 2,
"default_branch_protection_defaults": {
"allowed_to_push": [
{
"access_level": 40
}
],
"allow_force_push": false,
"allowed_to_merge": [
{
"access_level": 40
}
]
},
"restricted_visibility_levels": [],
"max_attachment_size": 10,
"max_decompressed_archive_size": 25600,
"max_export_size": 50,
"max_import_size": 50,
"max_import_remote_file_size": 10240,
"max_login_attempts": 3,
"session_expire_delay": 10080,
"default_ci_config_path" : null,
"default_project_visibility": "internal",
"default_snippet_visibility": "private",
"default_group_visibility": "private",
"outbound_local_requests_whitelist": [],
"domain_allowlist": [],
"domain_denylist_enabled" : false,
"domain_denylist" : [],
"external_authorization_service_enabled": true,
"external_authorization_service_url": "https://authorize.me",
"external_authorization_service_default_label": "default",
"external_authorization_service_timeout": 0.5,
"user_oauth_applications": true,
"after_sign_out_path": "",
"container_expiration_policies_enable_historic_entries": true,
"container_registry_cleanup_tags_service_max_list_size": 200,
"container_registry_delete_tags_service_timeout": 250,
"container_registry_expiration_policies_caching": true,
"container_registry_expiration_policies_worker_capacity": 4,
"container_registry_token_expire_delay": 5,
"decompress_archive_file_timeout": 210,
"package_registry_cleanup_policies_worker_capacity": 2,
"plantuml_enabled": false,
"plantuml_url": null,
"diagramsnet_enabled": true,
"diagramsnet_url": "https://embed.diagrams.net",
"terminal_max_session_time": 0,
"polling_interval_multiplier": 1.0,
"rsa_key_restriction": 0,
"dsa_key_restriction": 0,
"ecdsa_key_restriction": 0,
"ed25519_key_restriction": 0,
"ecdsa_sk_key_restriction": 0,
"ed25519_sk_key_restriction": 0,
"first_day_of_week": 0,
"enforce_terms": true,
"terms": "Hello world!",
"performance_bar_allowed_group_id": 42,
"user_show_add_ssh_key_message": true,
"file_template_project_id": 1,
"local_markdown_version": 0,
"asset_proxy_enabled": true,
"asset_proxy_url": "https://assets.example.com",
"asset_proxy_allowlist": ["example.com", "*.example.com", "your-instance.com"],
}
GitLab Premium 또는 Ultimate 사용자는 또한 다음 매개변수를 볼 수 있습니다:
group_owners_can_manage_default_branch_protection
file_template_project_id
geo_node_allowed_ips
geo_status_timeout
default_project_deletion_protection
deletion_adjourned_period
disable_personal_access_tokens
security_policy_global_group_approvers_enabled
security_approval_policies_limit
delete_unconfirmed_users
unconfirmed_users_delete_after_days
duo_features_enabled
lock_duo_features_enabled
use_clickhouse_for_analytics
예시 응답:
"file_template_project_id": 1,
"geo_node_allowed_ips": "0.0.0.0/0, ::/0",
"duo_features_enabled": true,
"lock_duo_features_enabled": false,
API 호출을 통해 액세스할 수 있는 설정 목록
-
housekeeping_full_repack_period
,housekeeping_gc_period
, 그리고housekeeping_incremental_repack_period
은 GitLab 15.8에서 사용 중지됨. 대신housekeeping_optimize_repository_period
를 사용하세요. -
allow_account_deletion
은 GitLab 16.1에서 도입됨. -
allow_project_creation_for_guest_and_below
은 GitLab 16.8에서 도입됨. -
silent_admin_exports_enabled
은 GitLab 17.0에서 도입됨. -
require_personal_access_token_expiry
은 GitLab 17.3에서 도입됨. -
receptive_cluster_agents_enabled
은 GitLab 17.4에서 도입됨.
일반적으로 모든 설정은 선택 사항입니다. 그러나 활성화된 경우, 일부 설정은 올바르게 작동하려면 다른 설정이 설정되어 있어야 합니다. 해당 요구 사항은 관련 설정의 설명에서 나열되어 있습니다.
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
admin_mode
| boolean | 아니요 | 관리자가 관리 작업을 위해 다시 인증하도록 요구 |
비활성 프로젝트 삭제 구성
비활성 프로젝트 삭제를 구성하거나 해제할 수 있습니다.
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
delete_inactive_projects
| 부울 | 아니요 |
비활성 프로젝트 삭제를 활성화합니다. 기본값은 false 입니다. 기능 플래그 없이 사용됨 - GitLab 15.4에서.
|
inactive_projects_delete_after_months
| 정수 | 아니요 |
delete_inactive_projects 가 true 인 경우, 비활성 프로젝트를 삭제하기 전에 대기해야 하는 기간(월). 기본값은 2 입니다. 운영이 된 것 - GitLab 15.0에서.
|
inactive_projects_min_size_mb
| 정수 | 아니요 |
delete_inactive_projects 가 true 인 경우, 비활성 프로젝트의 최소 저장소 크기를 확인하는 값. 기본값은 0 입니다. 운영이 된 것 - GitLab 15.0에서.
|
inactive_projects_send_warning_email_after_months
| 정수 | 아니요 |
delete_inactive_projects 가 true 인 경우, 프로젝트가 비활성임으로 예정된 삭제 이메일을 유지자에게 보내기 전에 대기해야 하는 기간(월). 기본값은 1 입니다. 운영이 된 것 - GitLab 15.0에서.
|
Housekeeping 필드
::탭
:::탭타이틀 15.8 이상
만약 housekeeping_optimize_repository_period
필드가 정수로 설정되면, 지정한 Git 푸시 수행 후 housekeeping 작업이 수행됩니다.
:::탭타이틀 15.7 이하
housekeeping_enabled
필드는 Git housekeeping을 활성화 또는 비활성화합니다. 이 필드가 올바르게 기능하려면 housekeeping_optimize_repository_period
가 설정되어 있거나 모든 이 값들이 설정되어야 합니다:
- housekeeping_bitmaps_enabled
- housekeeping_full_repack_period
- housekeeping_gc_period
::엔드탭
Package registry: Package file size limits
패키지 파일 크기 제한은 Application 설정 API의 일부가 아닙니다. 대신, 이러한 설정은 Plan limits API를 사용하여 액세스할 수 있습니다.