# Glartifacts
Python utility to analyze and clean up GitLab artifacts.
Glartifacts is a tool designed to help GitLab administrators manage CI job
artifacts. The artifact expiration functionality provided by GitLab (11.6, as
of this writing) is primitive. The goal of this project is to design and
implement improved artifact expiration policies which act as a model for
future GitLab improvements.
See the [documentation](https://glartifacts.readthedocs.io/) for more detail on
how glartifacts works and how to use it.
## Requirements
Glartifacts requires Python 3.
It is also a tool for GitLab administrators, designed to run as root on the
GitLab server. It connects directly to the GitLab database and Gitaly gRPC
service.
## Warning: Backup your database and artifacts
Be sure you have a GitLab backup before you start.
Glartifacts modifies the `ci_builds.artifacts_expire_at` column in the GitLab
database. The next execution of the `Sidekiq` background task will **remove**
CI artifacts from the database and file system. Once removed, artifacts
are non-recoverable.
## Installation
Glartifacts from PyPI using pip.
```
$ sudo pip install glartifacts
```
## Configuration
Glartifacts requires access to the GitLab database and Gitaly server. The
default connection settings are based on a standard Omnibus install, but can be
modified for custom deployments via settings in `glartifacts.conf`. You can
also override individual settings per-invocation using environment variables.
The table below lists the available configuration options:
|Section |Option |ENV var |Default |
|----------|---------|----------|--------|
|postgres |dbname |`GLARTIFACTS_DBNAME` |`gitlabhq_production` |
|postgres |user |`GLARTIFACTS_DBUSER` |`gitlab` |
|postgres |host |`GLARTIFACTS_DBHOST` |`/var/opt/gitlab/postgresql` |
|postgres |port |`GLARTIFACTS_DBPORT` |`5432` |
|gitaly |address |`GLARTIFACTS_GITALYADDR` |`unix:/var/opt/gitlab/gitaly/gitaly.socket` |
The following paths are searched for the glartifacts.conf. Settings are merged
for each conf file found: `Defaults` > `System Settings` > `User Settings`.
```
$HOME/.config/glartifacts/glartifacts.conf
/etc/glartifacts/glartifacts.conf
```
Raw data
{
"_id": null,
"home_page": "https://gitlab.com/haboustak/gitlab-artifact-tools",
"name": "glartifacts",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "GitLab",
"author": "Mike Haboustak",
"author_email": "haboustak@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/f6/b5/be8c286e18a2b4e8ead4f21f2529343b822d91d1b9db9551dcf33afd2a17/glartifacts-2.4.0.tar.gz",
"platform": null,
"description": "# Glartifacts\nPython utility to analyze and clean up GitLab artifacts.\n\nGlartifacts is a tool designed to help GitLab administrators manage CI job\nartifacts. The artifact expiration functionality provided by GitLab (11.6, as\nof this writing) is primitive. The goal of this project is to design and\nimplement improved artifact expiration policies which act as a model for \nfuture GitLab improvements.\n\nSee the [documentation](https://glartifacts.readthedocs.io/) for more detail on\nhow glartifacts works and how to use it.\n\n## Requirements\nGlartifacts requires Python 3.\n\nIt is also a tool for GitLab administrators, designed to run as root on the \nGitLab server. It connects directly to the GitLab database and Gitaly gRPC\nservice.\n\n## Warning: Backup your database and artifacts\nBe sure you have a GitLab backup before you start.\n\nGlartifacts modifies the `ci_builds.artifacts_expire_at` column in the GitLab\ndatabase. The next execution of the `Sidekiq` background task will **remove**\nCI artifacts from the database and file system. Once removed, artifacts\nare non-recoverable.\n\n## Installation\nGlartifacts from PyPI using pip.\n```\n$ sudo pip install glartifacts\n```\n\n## Configuration\nGlartifacts requires access to the GitLab database and Gitaly server. The \ndefault connection settings are based on a standard Omnibus install, but can be\nmodified for custom deployments via settings in `glartifacts.conf`. You can\nalso override individual settings per-invocation using environment variables.\n\nThe table below lists the available configuration options:\n\n|Section |Option |ENV var |Default |\n|----------|---------|----------|--------|\n|postgres |dbname |`GLARTIFACTS_DBNAME` |`gitlabhq_production` |\n|postgres |user |`GLARTIFACTS_DBUSER` |`gitlab` |\n|postgres |host |`GLARTIFACTS_DBHOST` |`/var/opt/gitlab/postgresql` |\n|postgres |port |`GLARTIFACTS_DBPORT` |`5432` |\n|gitaly |address |`GLARTIFACTS_GITALYADDR` |`unix:/var/opt/gitlab/gitaly/gitaly.socket` |\n\nThe following paths are searched for the glartifacts.conf. Settings are merged\nfor each conf file found: `Defaults` > `System Settings` > `User Settings`.\n```\n$HOME/.config/glartifacts/glartifacts.conf\n/etc/glartifacts/glartifacts.conf\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Tools for managing GitLab CI build artifacts",
"version": "2.4.0",
"project_urls": {
"Homepage": "https://gitlab.com/haboustak/gitlab-artifact-tools"
},
"split_keywords": [
"gitlab"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a6508934d5a7834dc31dfdb18140fa8304bf313be4ec2b45c85f6b87b9c6034f",
"md5": "c7d7d474c4725ea14f1a660cadea7bae",
"sha256": "c02ed189325d40efbf0feed37c32f99bacdfa3c49e61fbf80b3292bd67345e54"
},
"downloads": -1,
"filename": "glartifacts-2.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c7d7d474c4725ea14f1a660cadea7bae",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 144584,
"upload_time": "2024-08-26T02:15:25",
"upload_time_iso_8601": "2024-08-26T02:15:25.090518Z",
"url": "https://files.pythonhosted.org/packages/a6/50/8934d5a7834dc31dfdb18140fa8304bf313be4ec2b45c85f6b87b9c6034f/glartifacts-2.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f6b5be8c286e18a2b4e8ead4f21f2529343b822d91d1b9db9551dcf33afd2a17",
"md5": "1cfc7869305f16c06abd18e5c07ade5e",
"sha256": "0664bdb3abeb1bfa7f496789ada49aab209bc0cb3828e21bea9f3d0129199384"
},
"downloads": -1,
"filename": "glartifacts-2.4.0.tar.gz",
"has_sig": false,
"md5_digest": "1cfc7869305f16c06abd18e5c07ade5e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 120117,
"upload_time": "2024-08-26T02:15:26",
"upload_time_iso_8601": "2024-08-26T02:15:26.580091Z",
"url": "https://files.pythonhosted.org/packages/f6/b5/be8c286e18a2b4e8ead4f21f2529343b822d91d1b9db9551dcf33afd2a17/glartifacts-2.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-26 02:15:26",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "haboustak",
"gitlab_project": "gitlab-artifact-tools",
"lcname": "glartifacts"
}