用于CLI工具的AWS代码工件授权令牌生成器
corf的Python项目详细描述
corf:一种代码伪影正射器
corf
是一个AWS代码工件正交化……我的意思是authorizationhelper for pipenv
和任何其他命令行工具,它们将CodeArtifact授权令牌作为环境变量读取。在
简介
假设您有一个Pipfile
,它将AWS codeartifactrepository描述为一个源和一个用于保存授权令牌的环境变量:
[[source]] name = "private-pypackages" url = "https://aws:$CODEARTIFACT_AUTH_TOKEN@starkindustries-012345678901.d.codeartifact.us-east-1.amazonaws.com/pypi/project-ultron/simple" verify_ssl = true
传统上,您需要每天运行两次授权令牌:
^{pr2}$但是,如果你是PowerShell或其他奇怪/奇妙的shell的粉丝呢?如果您不想为团队的不同开发机器维护一组助手脚本呢?在
corf
取代了这个:
# Magic goes here.
pipenv install --dev
…有了这个:
corf pipenv install
安装
corf
需要>;=python3.8。在
全球安装
pip3 install corf
在虚拟环境中安装
corf
很高兴通过pipenv
安装:
pipenv install corf
如果您的Pipfile
只有only私有源需要授权令牌,那么您可以添加一个方便的快捷方式脚本来从公共PyPI索引中提取corf
:
[scripts] get-corf = "pip install --upgrade corf -i https://pypi.python.org/simple"
要通过该快捷方式安装corf
,请执行以下操作:
pipenv shell pipenv run get-corf
如果您的私有存储库镜像公共PyPI索引,并且您将corf
放入Pipfile
依赖项中,那么您只需要运行get-corf
一次。corf pipenv install
的任何后续运行都将包括对corf
本身的更新。在
配置
corf
将遍历您的目录,以查找描述要设置的环境变量和从中请求授权令牌的代码工件域的配置文件。在
例如,要从AWS帐户“012345678901”的“eu-west-1”区域中的“starkindustries”域请求授权令牌,并将其设置为“AUTH\utoken_FOO”环境变量,可以在项目目录中创建.corf.yml
:
variables:AUTH_TOKEN_FOO:domain:account:"012345678901"name:starkindustriesregion:eu-west-1
要使用“AUTH_TOKEN_FOO”环境变量集运行pipenv install
,请运行:
corf pipenv install
命名配置文件
corf
将使用默认的AWS凭据而不提示。如果需要使用特定的命名配置文件,则有三个选项:
- 使用
--profile
选项运行corf
:
corf --profile corp pipenv install
不过,这很糟糕,因为你需要记住添加选项。在
- 将
profile
属性添加到.corf.yml
:
variables:AUTH_TOKEN_FOO:domain:account:"012345678901"name:starkindustriesregion:eu-west-1profile:corp
但是,如果您想将.corf.yml
提交给源代码管理以与您的团队共享,那么这很糟糕。他们可能并不都使用与您相同的命名配置文件。在
- 创建一个包含您个人详细信息的
.corf.user.yml
文件,不要将该文件提交给源代码管理。在
因此,如果.corf.yml
是:
variables:AUTH_TOKEN_FOO:domain:account:"012345678901"name:starkindustriesregion:eu-west-1
…如果.corf.user.yml
是:
variables:AUTH_TOKEN_FOO:domain:profile:corp
…然后这两个配置将在运行时合并。在
配置文件位置
corf
将合并它找到的所有配置。在
在任何给定的目录中,.corf.user.yml
优先于.corf.yml
。在
当前工作目录将优先,下至根目录,最后是主目录。在
开发说明
测试
./lint.sh && ./coverage.sh && ./build.sh
谢谢!在
我的名字是Cariad Eccleston,我是一名自由职业的DevOps工程师。我很感谢你来检查我的项目!我喜欢AWS和Python,我可以参加有趣的演出,我很乐意听到你的消息!在
常见问题解答
为什么corf
?
我really想将其称为cauth
,但这是上的保留名称pypi.org网站. corf
已经够近了。在
.corf.yml
是否应该致力于源代码管理?
.corf.yml
,是的。在
.corf.user.yml
,不
- 项目
标签: