用于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凭据而不提示。如果需要使用特定的命名配置文件,则有三个选项:

  1. 使用--profile选项运行corf
corf --profile corp pipenv install

不过,这很糟糕,因为你需要记住添加选项。在

  1. profile属性添加到.corf.yml
variables:AUTH_TOKEN_FOO:domain:account:"012345678901"name:starkindustriesregion:eu-west-1profile:corp

但是,如果您想将.corf.yml提交给源代码管理以与您的团队共享,那么这很糟糕。他们可能并不都使用与您相同的命名配置文件。在

  1. 创建一个包含您个人详细信息的.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,不

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Android上已连接音频输入设备的java列表   java是创建类的新对象还是使用静态方法?   Java:Shift/Rotate对象数组   Java Casting ArrayIterator<Object>   在java中返回布尔值时出错   无法确定文本文件读入程序(java)中的各种元素   Java Swing JToolBar   JAVAlang.IllegalStateException执行Ghost4J(Linux 32对64位)   jvm如何增加ubuntu系统的java堆化?   java CORS策略“AccessControlAllowOrigin”(Anguar 8和Servlet)   使用dagger 2的java视图依赖项注入   单元测试中RxJava的java模拟活动生命周期   arraylist中的Java打印字符串   java返回值显示为0.0。为什么会这样?   java是clientserver应用程序所必需的MVC吗?   ByteToMessageDecoder类中的java内存泄漏   java将大量文档写入firestore   GWT项目中的java TomcatMaven插件。两者之间的区别是什么:org。科德豪斯。魔咒和组织。阿帕奇。公猫maven插件   java swing:向JTree项添加自定义图形按钮