Configure and use twine with CodeArtifact
twine
twine can only be used to publish Python packages. To install Python packages, you can use
pip
Configure twine with the login command
First, configure your AWS credentials for use with the AWS CLI, as described in Getting started with CodeArtifact. Then, use the CodeArtifact
login command to fetch credentials and configure twine with them.
Note
If you are accessing a repository in a domain that you own, you don't need to include
--domain-owner. For more information, see Cross-account domains.
To configure twine, run the following command.
aws codeartifact login --tooltwine--domainmy_domain--domain-owner111122223333--repositorymy_repo
login fetches an authorization token from CodeArtifact using your AWS credentials.
The login command configures twine for use with CodeArtifact by editing
~/.pypirc to add the repository specified by the
--repository option with credentials.
The default authorization period after calling login is 12 hours, and login must
be called to periodically refresh the token. For more information about
the authorization token created with the login command, see
Tokens created with the login command.
Configure twine without the login command
If you cannot use the login command to configure twine, you
can use the ~/.pypirc file or environment variables. To use the
~/.pypirc file, add the following entries to it. The password must
be an auth token acquired by the get-authorization-token API.
[distutils] index-servers = codeartifact [codeartifact] repository = https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/pypi/my_repo/ password =auth-tokenusername = aws
Note
To use a dualstack endpoint, use the codeartifact. endpoint.region.on.aws
To use environment variables, do the following.
Note
If you are accessing a repository in a domain that you own, you do not need to include the
--domain-owner. For more information, see Cross-account domains.
export TWINE_USERNAME=aws export TWINE_PASSWORD=`aws codeartifact get-authorization-token --domainmy_domain--domain-owner111122223333--query authorizationToken --output text` export TWINE_REPOSITORY_URL=`aws codeartifact get-repository-endpoint --domainmy_domain--domain-owner111122223333--repositorymy_repo--format pypi --query repositoryEndpoint --output text`
Run twine
Before using twine to publish Python package assets, you must first configure CodeArtifact permissions and resources.
Follow the steps in the Setting up with AWS CodeArtifact section to configure your AWS account, tools, and permissions.
Configure twine by following the steps in Configure twine with the login command or Configure twine without the login command.
After you configure twine, you can run twine commands. Use the
following command to publish Python package assets.
twine upload --repository codeartifact mypackage-1.0.tgz
For information about how to build and package your Python application, see Generating Distribution Archives