awsecr


Nameawsecr JSON
Version 0.5.5 PyPI version JSON
download
home_pagehttps://github.com/glasswalk3r/awsecr
SummaryEasy interaction with AWS ECR from a CLI
upload_time2024-08-07 19:53:34
maintainerNone
docs_urlNone
authorAlceu Rodrigues de Freitas Junior
requires_python>=3.8
licenseNone
keywords awsecr
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # awsecr

[![Python application](https://github.com/glasswalk3r/awsecr/actions/workflows/python-app.yml/badge.svg)](https://github.com/glasswalk3r/awsecr/actions/workflows/python-app.yml)

CLI to interact with AWS ECR service.

## Description

awsecr is a Python module that allows an end user to access an AWS ECR
repository to do the following:

- pull/push images
- list available repositories
- list available images per repository, summarizing all founded vulnerabilities.

Authentication between AWS ECR and the local Docker client is automatic.

See `TODO.txt` for next planned features.

## Samples outputs

The output samples will *roughly* look like the ones generated at the terminal
by the CLI. Expect to have better output in the terminal.

Listing repositories available:

```
$ awsecr repos
┌ All ECR repositories ───────┬────────────────────────────────────────────────────────────────┬────────────────┬───────────────┐
│ Name                        │ URI                                                            │ Tag Mutability │ Scan on push? │
├─────────────────────────────┼────────────────────────────────────────────────────────────────┼────────────────┼───────────────┤
│ nodejs                      │ 012345678910.dkr.ecr.us-east-1.amazonaws.com/nodejs            │ IMMUTABLE      │ True          │
│ spark-py                    │ 012345678910.dkr.ecr.us-east-1.amazonaws.com/spark-py          │ MUTABLE        │ False         │
│ hive-metastore              │ 012345678910.dkr.ecr.us-east-1.amazonaws.com/hive-metastore    │ IMMUTABLE      │ True          │
└─────────────────────────────┴────────────────────────────────────────────────────────────────┴────────────────┴───────────────┘
```

Listing images from a repository:

```
┌ Docker images at api-foobar123  ─────────────────────────────────┬─────────────┬────────────┬───────────────────────────┬────────────────────┐
│ Image                                                            │ Scan status │ Size (MB)  │ Pushed at                 │  Vulnerabilities   │
├──────────────────────────────────────────────────────────────────┼─────────────┼────────────┼───────────────────────────┼────────────────────┤
│ 012345678910.dkr.ecr.us-east-1.amazonaws.com/api-foobar123:1.3.5 │ COMPLETE    │ 205.1      │ 2021-12-09 18:06:20-03:00 │ 1/10/118/51/274/22 │
│ 012345678910.dkr.ecr.us-east-1.amazonaws.com/api-foobar123:1.3.6 │ COMPLETE    │ 133.8      │ 2021-12-09 15:42:28-03:00 │ 1/10/118/51/274/22 │
└──────────────────────────────────────────────────────────────────┴─────────────┴────────────┴───────────────────────────┴────────────────────┘
```

Except that the *Vulnerabilities* column will have `1/10/118/51/274/22` as
values in the terminal using colors to indicate severity, being highest to
lesser, left to right.

## How to install

The preferred way is to install it from https://pypi.org with:

```
pip install awsecr
```

## How to use it

You can check the `awsecr` CLI online help:

```
$ awsecr -h
usage: awsecr [OPERATION]

Easier interaction with AWS ECR to manage Docker images.

positional arguments:
  {repos,image}      the desired operation with the registry.

optional arguments:
  -h, --help         show this help message and exit.
  --image IMAGE      the local Docker image to use together with the image --push sub operation.
  --list REPOSITORY  sub operation for "image" operation. List all images from the repository.
  --push REPOSITORY  sub operation for "image" operation. Pushes a Docker image to the repository.

The "repos" operation requires no additional options. It lists the available
ECR repositories for the current AWS user credentials.
```

## References

Other open source projects that are related to awsecr:

- https://pypi.org/project/ecrtools/
- https://pypi.org/project/ecr-scan-reporter/
- https://github.com/muckamuck/ecrscan

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/glasswalk3r/awsecr",
    "name": "awsecr",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "awsecr",
    "author": "Alceu Rodrigues de Freitas Junior",
    "author_email": "glasswalk3r@yahoo.com.br",
    "download_url": "https://files.pythonhosted.org/packages/6d/e1/d956e801b5b749498567debd0aa7398cd0cbe526f88ab06aae42aad4ce1a/awsecr-0.5.5.tar.gz",
    "platform": null,
    "description": "# awsecr\n\n[![Python application](https://github.com/glasswalk3r/awsecr/actions/workflows/python-app.yml/badge.svg)](https://github.com/glasswalk3r/awsecr/actions/workflows/python-app.yml)\n\nCLI to interact with AWS ECR service.\n\n## Description\n\nawsecr is a Python module that allows an end user to access an AWS ECR\nrepository to do the following:\n\n- pull/push images\n- list available repositories\n- list available images per repository, summarizing all founded vulnerabilities.\n\nAuthentication between AWS ECR and the local Docker client is automatic.\n\nSee `TODO.txt` for next planned features.\n\n## Samples outputs\n\nThe output samples will *roughly* look like the ones generated at the terminal\nby the CLI. Expect to have better output in the terminal.\n\nListing repositories available:\n\n```\n$ awsecr repos\n\u250c All ECR repositories \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Name                        \u2502 URI                                                            \u2502 Tag Mutability \u2502 Scan on push? \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 nodejs                      \u2502 012345678910.dkr.ecr.us-east-1.amazonaws.com/nodejs            \u2502 IMMUTABLE      \u2502 True          \u2502\n\u2502 spark-py                    \u2502 012345678910.dkr.ecr.us-east-1.amazonaws.com/spark-py          \u2502 MUTABLE        \u2502 False         \u2502\n\u2502 hive-metastore              \u2502 012345678910.dkr.ecr.us-east-1.amazonaws.com/hive-metastore    \u2502 IMMUTABLE      \u2502 True          \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\nListing images from a repository:\n\n```\n\u250c Docker images at api-foobar123  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Image                                                            \u2502 Scan status \u2502 Size (MB)  \u2502 Pushed at                 \u2502  Vulnerabilities   \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 012345678910.dkr.ecr.us-east-1.amazonaws.com/api-foobar123:1.3.5 \u2502 COMPLETE    \u2502 205.1      \u2502 2021-12-09 18:06:20-03:00 \u2502 1/10/118/51/274/22 \u2502\n\u2502 012345678910.dkr.ecr.us-east-1.amazonaws.com/api-foobar123:1.3.6 \u2502 COMPLETE    \u2502 133.8      \u2502 2021-12-09 15:42:28-03:00 \u2502 1/10/118/51/274/22 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\nExcept that the *Vulnerabilities* column will have `1/10/118/51/274/22` as\nvalues in the terminal using colors to indicate severity, being highest to\nlesser, left to right.\n\n## How to install\n\nThe preferred way is to install it from https://pypi.org with:\n\n```\npip install awsecr\n```\n\n## How to use it\n\nYou can check the `awsecr` CLI online help:\n\n```\n$ awsecr -h\nusage: awsecr [OPERATION]\n\nEasier interaction with AWS ECR to manage Docker images.\n\npositional arguments:\n  {repos,image}      the desired operation with the registry.\n\noptional arguments:\n  -h, --help         show this help message and exit.\n  --image IMAGE      the local Docker image to use together with the image --push sub operation.\n  --list REPOSITORY  sub operation for \"image\" operation. List all images from the repository.\n  --push REPOSITORY  sub operation for \"image\" operation. Pushes a Docker image to the repository.\n\nThe \"repos\" operation requires no additional options. It lists the available\nECR repositories for the current AWS user credentials.\n```\n\n## References\n\nOther open source projects that are related to awsecr:\n\n- https://pypi.org/project/ecrtools/\n- https://pypi.org/project/ecr-scan-reporter/\n- https://github.com/muckamuck/ecrscan\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Easy interaction with AWS ECR from a CLI",
    "version": "0.5.5",
    "project_urls": {
        "Homepage": "https://github.com/glasswalk3r/awsecr"
    },
    "split_keywords": [
        "awsecr"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2e1a8cb6a2d3829c22476752cf41cf9add3299db0ac6e2c9c6ee81831aafdec9",
                "md5": "8950f0de8f3263d3a8b729826c9a6ef6",
                "sha256": "f84362b5e484e7888165daea77ce5331e61017e8acf6373e940446dc1f6d34b6"
            },
            "downloads": -1,
            "filename": "awsecr-0.5.5-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8950f0de8f3263d3a8b729826c9a6ef6",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=3.8",
            "size": 21756,
            "upload_time": "2024-08-07T19:53:32",
            "upload_time_iso_8601": "2024-08-07T19:53:32.893521Z",
            "url": "https://files.pythonhosted.org/packages/2e/1a/8cb6a2d3829c22476752cf41cf9add3299db0ac6e2c9c6ee81831aafdec9/awsecr-0.5.5-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6de1d956e801b5b749498567debd0aa7398cd0cbe526f88ab06aae42aad4ce1a",
                "md5": "7f7449e0d3aee5fcd37b041e3ba23eac",
                "sha256": "7b38165545236ce00a94ef5af717c9bebae17ee5b0aa8caf69d68f382dc33ac7"
            },
            "downloads": -1,
            "filename": "awsecr-0.5.5.tar.gz",
            "has_sig": false,
            "md5_digest": "7f7449e0d3aee5fcd37b041e3ba23eac",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 25707,
            "upload_time": "2024-08-07T19:53:34",
            "upload_time_iso_8601": "2024-08-07T19:53:34.437558Z",
            "url": "https://files.pythonhosted.org/packages/6d/e1/d956e801b5b749498567debd0aa7398cd0cbe526f88ab06aae42aad4ce1a/awsecr-0.5.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-07 19:53:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "glasswalk3r",
    "github_project": "awsecr",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "awsecr"
}
        
Elapsed time: 7.98188s