Skip to main content

CodeArtifact utilties for Poetry

Project description

partifact

partifact is a tool to help with configuring and authenticating CodeArtifact as a repository for Poetry and pip.

AWS CLI offers functionality to configure CodeArtifact for pip. This tool offers the following improvements over the CLI:

  1. Poetry support.
  2. Assuming an AWS role to get the token. This is handy in automated pipelines, which may have the access key and secret key as environment variables, but want to install packages from CodeArtifact on a different account.
  3. Configuration persisted in a config file, making the tool more convenient to use than the CLI with the options it requires to be passed in from the command line.

How to use it?

Install partifact from pypi using pip the usual way:

pip install partifact

It's best to do this globally, rather than inside the virtualenv.

Before you can use partifact, the Poetry source repository needs to be configured in pyproject.toml.

[[tool.poetry.source]]
name = "my-repo"
url = "https://{code_artifact_domain}-{aws_account}.d.codeartifact.{aws_region}.amazonaws.com/pypi/{code_artifact_repository}/simple/"
default = true  # if this should be the default repository to install from

If you are publishing to the repository, the /simple/ suffix is not required at the end.

Once Poetry is configured, you can use the partifact command to authenticate:

partifact login my-repo

NOTE: Make sure your run the command from the directory where your pyproject.toml is!

Optionally, you can pass in an AWS profile and/or AWS role to use for CodeArtifact token generation.

partifact login myrepo --profile myprofile
partifact login myrepo --role myrole

If you would also like to configure global.index-url in the pip config, you can do so through the --configure-pip flag.

partifact login myrepo --profile myprofile --configure-pip

Known issues

  1. The CodeArtifact token seems to exceed the maximum length allowed in Windows Credential Manager, resulting in a misleading (1783, 'CredWrite', 'The stub received bad data.') error. The library has been tested on macOS.

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

partifact-0.3.0.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

partifact-0.3.0-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file partifact-0.3.0.tar.gz.

File metadata

  • Download URL: partifact-0.3.0.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.0 Linux/5.15.0-1041-azure

File hashes

Hashes for partifact-0.3.0.tar.gz
Algorithm Hash digest
SHA256 c40e0f7050bb7182a68cdfc8a55e3d7bc87d043f60717fc13ab650edd38c174e
MD5 61f20225972c4a4847eca780ba86d2da
BLAKE2b-256 9ab8c3d96df6803d03d37c7e2fb565ef9b6a8157a7fe3241eb27552ec6f48ef8

See more details on using hashes here.

File details

Details for the file partifact-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: partifact-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.0 Linux/5.15.0-1041-azure

File hashes

Hashes for partifact-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6e1639250a6da67b87d05999f22bbe8a46f1fff0b97ea42657b87594af08fc87
MD5 29f30367fb966a415692f3046c35a8db
BLAKE2b-256 5e50dfecbb670d415e7cf8ab5004a7ed0302aae5d41e833349df8330f8a24e46

See more details on using hashes here.

Supported by

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