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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.