Skip to main content

Docker Hub Status

dockerhub-status lists all repositories and image tags published in a Docker Hub organization. The organization defaults to kaizten.

The report includes repository creation and update dates, total pulls, stars, visibility, status, storage size, and every tag. Tag details include the last push, update and pull timestamps, compressed size, status, digest, and platforms.

Docker Hub exposes pull counts per repository, not per tag. Because tags can be overwritten, the tag publication value is the latest push timestamp supplied by Docker Hub rather than an immutable first-publication date.

Requirements

  • Python 3.10 or newer
  • Network access to hub.docker.com

The package has no third-party runtime dependencies.

Usage

Run the source-tree script with the default organization:

./dockerhub-status.py

Select another organization:

./dockerhub-status.py --organization docker

Print structured JSON:

./dockerhub-status.py --format json

Skip tag requests for a faster repository-only summary:

./dockerhub-status.py --no-tags

After installing the package, use the same options with the console command:

dockerhub-status --organization kaizten

Authentication

Anonymous requests list public repositories. To include private repositories, provide a Docker Hub personal access token (PAT) or organization access token (OAT).

Docker Hub does not accept a PAT or OAT directly in an Authorization: Bearer header. Doing so returns:

Docker Hub API request failed with HTTP 401: A personal access token or organization access token cannot be used as a bearer

dockerhub-status avoids this error by exchanging the PAT/OAT for a short-lived access token at /v2/auth/token. Only that returned access token is sent as a bearer to the namespace API.

Organization access token

For an OAT, the value passed to --organization is also used as the authentication identifier by default:

export DOCKERHUB_TOKEN='your-organization-access-token'
dockerhub-status --organization kaizten

The token can instead be supplied directly on the command line, although an environment variable is less likely to expose it in shell history or process listings:

dockerhub-status \
  --organization kaizten \
  --token 'your-organization-access-token'

Personal access token

For a PAT, set the authentication identifier to your Docker Hub username. The username can differ from the organization being inspected:

export DOCKERHUB_IDENTIFIER='your-dockerhub-username'
export DOCKERHUB_TOKEN='your-personal-access-token'
dockerhub-status --organization kaizten

The same configuration can be provided with command-line options:

dockerhub-status \
  --organization kaizten \
  --identifier 'your-dockerhub-username' \
  --token 'your-personal-access-token'

Docker Hub can also restrict deep anonymous pagination for organizations with many repositories. In that case, authentication is required even when all the requested repositories are public; the command reports the API error instead of silently returning an incomplete list.

Build and publish

Build the wheel and source distribution and validate their metadata:

./build-package.sh

Publish an already built version to PyPI:

./publish-pypi.sh

PyPI does not allow an existing filename/version to be uploaded again. Increase the version in pyproject.toml before publishing a replacement release.

Metadata

Release files for dockerhub-status 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dockerhub-status 0.0.2
File Size Uploaded Provenance Actions
dockerhub_status-0.0.2.tar.gz 9.7 kB Without provenance Details for dockerhub_status-0.0.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for dockerhub-status 0.0.2
File Interpreter ABI Platform Actions
dockerhub_status-0.0.2-py3-none-any.whl Python 3 none any Details for dockerhub_status-0.0.2-py3-none-any.whl

Total release size: 17.1 kB

Release files / dockerhub_status-0.0.2.tar.gz

Download URL dockerhub_status-0.0.2.tar.gz
Size 9.7 kB
Tags Source
SHA-256 checksum
How to use checksums
88f9b41773c1314d2d347705f7e693853842758a19673c68a49479eb32dc7086
BLAKE2b-256 checksum
How to use checksums
59ddc570b9766b24f5b2c70ff0c88449ebb672b6a89032f49011d42a206270dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release files / dockerhub_status-0.0.2-py3-none-any.whl

Download URL dockerhub_status-0.0.2-py3-none-any.whl
Size 7.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
636ba9a87c2bc141fca8470118289b4bc6fa23fef69b8f756709e54d4a75dd3c
BLAKE2b-256 checksum
How to use checksums
df5c7d1567e623fd39df631f3567ae7899873af1b6fb65c89c97ceac68dce6ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Security for dockerhub-status 0.0.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page