wev-awscodeartifact:
A wev plugin to support Amazon Web Services CodeArtifact authorisation on the command line
- ⚙️ Plugin for wev (with environment variables).
- 📋 Requests and caches CodeArtifact authorisation tokens.
- 👩🏼💻 Great for freelancers working with multiple clients hosting CodeArtifact repositories.
Say your Pipfile is configured to pull packages from a private Amazon Web Services CodeArtifact repository:
[[source]]
name = "private"
url = "https://aws:$CODEARTIFACT_AUTH_TOKEN@corp-012345678901.d.codeartifact.eu-west-1.amazonaws.com/pypi/pypi-mirror/simple/"
verify_ssl = true
[packages]
tupper = "*"
[requires]
python = "3.9"
Your Pipfile expects the CODEARTIFACT_AUTH_TOKEN environment variable to be set to your authorisation token.
wev-awscodeartifact extends wev to handle your CodeArtifact authorisation token for you.
wev-awscodeartifact requires Python 3.8 or later and wev.
wev and wev plugins are usually happy to run within virtual environments, but that's tricky if your project's Pipfile has only private sources that require a token. wev-awscodeartifact cannot generate a token before it's installed.
I recommend installing wev and wev-awscodeartifact globally, outside of your virtual environment.
python -m pip install wev
python -m pip install wev-awscodeartifactSee wevcli.app/configuration for a detailed guide to wev configuration files.
If in doubt, create your configuration file as wev.yml in your project directory.
| Property | Required | Description | Default |
|---|---|---|---|
| account | AWS account ID | Your profile's account | |
| domain | ✔️ | CodeArtifact domain name1 | |
| profile | AWS named profile to use for authentication | Your default profile | |
| region | AWS region hosting the CodeArtifact domain | Your profile's region |
1 The CodeArtifact domain is not the same as the repository's domain name. Given the domain name corp-000000000000.d.codeartifact.eu-west-1.amazonaws.com, the CodeArtifact domain is corp.
CODEARTIFACT_AUTH_TOKEN:
plugin:
id: wev-awscodeartifact
domain: corpYou probably don't want to add the profile property to .wev.yml if you plan to commit and share it with your team mates. Profile names are personal, and you don't want to force everyone to use the same as you.
If you do need to set profile, I suggest you create it in .wev.user.yml (which should not be shared) and let wev merge it in.
For example:
# .wev.yml
CODEARTIFACT_AUTH_TOKEN:
plugin:
id: wev-awscodeartifact
account: "012345678901"
domain: corp
region: eu-west-1# .wev.user.yml
CODEARTIFACT_AUTH_TOKEN:
plugin:
profile: workRun wev with any command that requires a CodeArtifact authorisation token.
For example, to run pipenv install with a CodeArtifact authorisation token:
wev pipenv installMore examples:
Yes! Call it anything you like.
Yes! wev-awscodeartifact will work with any command line tool that needs CodeArtifact authorisation tokens in environment variables.
My name is Cariad, and I'm an independent freelance DevOps engineer.
I'd love to spend more time working on projects like this, but--as a freelancer--my income is sporadic and I need to chase gigs that pay the rent.
If this project has value to you, please consider ☕️ sponsoring me. Sponsorships grant me time to work on your wants rather than someone else's.
Thank you! ❤️