Skip to main content

A restful web service for querying the repository sizes of a GitLab registry.

Project description

Introduction

GitLab-Registry-Usage-REST is a package that periodically collects repository information (names, tags, sizes) of a GitLab registry server and offers the data via a secured RESTful HAL api. For the initial authentication a LDAP server is needed. Subsequent queries are secured by JSON Web Tokens (JWT).

Installation

The latest version can be obtained from PyPI:

pip install gitlab-registry-usage-rest
gitlab-registry-usage-rest --help

or from DockerHub:

docker run sciapp/gitlab-registry-usage-rest:latest --help

Usage

Gitlab-Registry-Usage-REST needs a configuration file in order to run. The default path is /etc/gitlab_registry_usage_rest.conf but can be altered with the -c command line switch. To get started, you can run

gitlab-registry-usage-rest --print-default-config

and edit this default configuration to fit your environment.

If you would like to use the docker repository, you can bind mount a local configuration file with the -v switch:

docker run -v "$(pwd)/gitlab_registry_usage_rest.conf:/etc/gitlab_registry_usage_rest.conf" sciapp/gitlab-registry-usage-rest:latest

Note: Docker expects an absolute path for the local configuration file.

The server offers these api endpoints:

  • /auth_token: Accepts a request with basic auth (and valid LDAP credentials) and returns an auth token for further api usage. All other endpoints only accept requests with a valid Bearer authorization header:

    Authorization: Bearer <token>
  • /repositories: Lists attributes of the repositories collection. Currently, only the timestamp of the last data refresh is contained:

    {
        "timestamp": 1521796487.7021387
    }
  • /repositories/<repository_name>: Queries attributes of a specific repository:

    {
        "name": "scientific-it-systems/administration/gitlab-registry-usage-rest",
        "size": 39899199,
        "disk_size": 39898911
    }
  • /repositories/<repository_name>/tags: Endpoint for the collection of repository tags, currently without any content.

  • /repositories/<repository_name>/tags/<tag_name>: Lists attributes of a tagged image stored in a repository:

    {
        "name": "latest",
        "size": 39899199,
        "disk_size": 39898911
    }

Additionally, all api endpoints (except /auth_token) offer an _embedded and a _links attribute if requested with the query string:

?embed=true&links=true

Instead of a boolean value, the embed key can also take an integer number to only request a specific level of embedded resources.

Links can be used to easily navigate between related resources. Embedded resources are convenient to query a complete hierarchy of resources with one GET request. Accordingly, the request

/repositories?embed=true

returns all resources at once.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gitlab-registry-usage-rest-0.2.1.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gitlab_registry_usage_rest-0.2.1-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file gitlab-registry-usage-rest-0.2.1.tar.gz.

File metadata

File hashes

Hashes for gitlab-registry-usage-rest-0.2.1.tar.gz
Algorithm Hash digest
SHA256 1dd9b014cf19450ea65b59a553c2ea3863dd0f7af51c36ec3affb6f3bc633173
MD5 cb6b687e4396d596ec2d8c155530068f
BLAKE2b-256 d603ba575c3348c6d2cf76ad529178a2cf846da1015d08677e7015af39c4d073

See more details on using hashes here.

File details

Details for the file gitlab_registry_usage_rest-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for gitlab_registry_usage_rest-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7fc8733e1c773764aef41efba55f4e6fe016ca29d732dfb9e6df2c9560a268d4
MD5 2ddf1663341a72d7ba2dfecc8202bc84
BLAKE2b-256 0262761a47ff35122d7d52b5ea69db27f0e9e58fcb670738f07fc3b1f6634863

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page