diff --git a/doc/administration/audit_events.md b/doc/administration/audit_events.md index a948908b157f2886930c09fbeda5bdb296430bad..6fac21ef88901891106c334a26f52c60ab539669 100644 --- a/doc/administration/audit_events.md +++ b/doc/administration/audit_events.md @@ -185,6 +185,7 @@ From there, you can see the following actions: - Merge commit message template is updated ([introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/355805) in GitLab 15.0) - Squash commit message template is updated ([introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/355805) in GitLab 15.0) - Default description template for merge requests is updated ([introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/355805) in GitLab 15.0) +- Project was scheduled for deletion due to inactivity ([introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/85689) in GitLab 15.0) Project events can also be accessed via the [Project Audit Events API](../api/audit_events.md#project-audit-events). diff --git a/doc/administration/inactive_project_deletion.md b/doc/administration/inactive_project_deletion.md new file mode 100644 index 0000000000000000000000000000000000000000..a623e01a593ab454be2504c1c1dc020036248aca --- /dev/null +++ b/doc/administration/inactive_project_deletion.md @@ -0,0 +1,63 @@ +--- +stage: Manage +group: Compliance +info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments +--- + +# Inactive project deletion **(FREE SELF)** + +> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/85689) in GitLab 15.0 [with a flag](../administration/feature_flags.md) named `inactive_projects_deletion`. Disabled by default. + +FLAG: +On self-managed GitLab, by default this feature is not available. To make it available, ask an administrator to +[enable the feature flag](../administration/feature_flags.md) named `inactive_projects_deletion`. +On GitLab.com, this feature is not available. +This feature is not ready for production use. + +Administrators of large GitLab instances can find that over time, projects become inactive and are no longer used. +These projects take up unnecessary disk space. With inactive project deletion, you can identify these projects, warn +the maintainers ahead of time, and then delete the projects if they remain inactive. When an inactive project is +deleted, the action generates an audit event that it was performed by the first active administrator. + +## Configure inactive project deletion + +You can configure inactive projects deletion or turn it off using the +[Application settings API](../api/settings.md#change-application-settings). + +## Inactive project deletion options + +The following options are available: + +- **Delete inactive projects**: Enable or disable inactive project deletion. +- **Delete inactive projects that exceed**: Minimum size (MB) of inactive projects to be considered for deletion. + Projects smaller in size than this threshold aren't considered inactive. +- **Delete project after**: Minimum duration (months) after which a project is scheduled for deletion if it continues +be inactive. +- **Send warning email**: Minimum duration (months) after which a deletion warning email is sent if a project continues +to be inactive. The warning email is sent to users with the Owner and Maintainer roles of the inactive project. +This duration should be greater than the **Delete project after** duration. + +For example: + +- Delete inactive projects: enabled. +- Delete inactive projects that exceed: 50. +- Delete project after: 12. +- Send warning email: 6. + +In this scenario, when a project's size is: + +- Less than 50 MB, the project is not considered inactive. +- Greater than 50 MB and it is inactive for: + - More than 6 months, a deletion warning is email is sent to users with the Owner and Maintainer role on the project +with the scheduled date of deletion. + - More than 12 months, the project is scheduled for deletion. + +## Determine when a project was last active + +There are several ways to view the project's activities and determine when project was last active: + +1. Go to the [activity page](../user/project/working_with_projects.md#view-project-activity) for the project and view + the date of the latest event. +1. View the `last_activity_at` attribute for the project using the [Projects API](../api/projects.md). +1. List the visible events for the project using the [Events API](../api/events.md#list-a-projects-visible-events). + View the `created_at` attribute of the latest event. diff --git a/doc/user/admin_area/settings/index.md b/doc/user/admin_area/settings/index.md index 9c6aa22e63ceab5abd7b7d8592e3b19a84877bf4..970897fd8da4cb7b11f411959329a2dbdec2e451 100644 --- a/doc/user/admin_area/settings/index.md +++ b/doc/user/admin_area/settings/index.md @@ -177,8 +177,10 @@ The **Repository** settings contain: - Repository maintenance: - [Repository checks](../../../administration/repository_checks.md) - Configure automatic Git checks on repositories. - - [Housekeeping](../../../administration/housekeeping.md)). Configure automatic + - [Housekeeping](../../../administration/housekeeping.md). Configure automatic Git housekeeping on repositories. + - [Inactive project deletion](../../../administration/inactive_project_deletion.md). Configure inactive + project deletion. - [Repository static objects](../../../administration/static_objects_external_storage.md) - Serve repository static objects (for example, archives and blobs) from an external storage (for example, a CDN). diff --git a/doc/user/gitlab_com/index.md b/doc/user/gitlab_com/index.md index 4533af459bfa1f48b6852c1912e98834313e186f..e88777a7223dc12c3aaf2c65b20f10a7413ee619 100644 --- a/doc/user/gitlab_com/index.md +++ b/doc/user/gitlab_com/index.md @@ -99,6 +99,10 @@ If you are on: - Premium tier and above, you can disable this by changing the [group setting](../group/index.md#enable-delayed-project-deletion). - Free tier, you cannot disable this setting or restore projects. +## Inactive project deletion + +[Inactive project deletion](../../administration/inactive_project_deletion.md) is disabled on GitLab.com. + ## Alternative SSH port GitLab.com can be reached by using a [different SSH port](https://about.gitlab.com/blog/2016/02/18/gitlab-dot-com-now-supports-an-alternate-git-plus-ssh-port/) for `git+ssh`.