$ heroku run ls --app my-app
heroku: Press any key to open up the browser to login or q to exit:
› Error: quit
$ HEROKU_API_KEY='ddf4a0e5-9299-4c5f-8820-b51c52fce4f9' heroku run ls --app my-app
Running ls on ⬢ my-app... up, run.5029 (Hobby)
<some file names>
$
编辑:对于Windows计算机
运行heroku authorizations:create后,复制“令牌”,并运行以下命令:
set HEROKU_API_KEY=ddf4a0e5-9299-4c5f-8820-b51c52fce4f9
heroku run ls --app my-app
-H "Accept: application/vnd.heroku+json; version=3" \
-H "Authorization: Bearer YOUR_TOKEN```
If *YOUR_APP_NAME* had only one config variable called *my_var* the response of the above call would be
{
"my_var": some_value
}
I've found using this all the time in CI tools that need access to *Heroku* information / resources.
4条答案
按热度按时间w9apscun1#
Heroku CLI仅使用您的用户名和密码来检索API密钥,该密钥存储在您的
~/.netrc
文件(Windows上为$HOME\_netrc
)中。您可以手动检索API密钥并将其添加到
~/.netrc
文件中:1.登录Heroku Web界面
1.导航到您的帐户设置页面
1.向下滚动到API Key部分,然后单击Reveal按钮
1.复制API密钥
1.打开您的
~/.netrc
文件,或使用您喜爱的文本编辑器创建它1.增加以下内容:
将
<your-email@address>
替换为向Heroku注册的电子邮件地址,将<your-api-key>
替换为从Heroku复制的API密钥。这应该可以手动完成
heroku login
自动完成的任务。**但是,我不推荐这样做。**运行heroku login
可以更轻松地完成同样的任务,并且出错的机会更少。如果您决定在计算机或帐户之间复制
~/.netrc
文件,则应注意两个主要警告:如果您打算使用
heroku login
以外的任何机制登录Heroku,请务必小心。ds97pgxw2#
您可以生成一个不过期的OAuth令牌,然后通过一个环境变量将其传递给CLI。如果您需要从调度程序无限期地运行Heroku CLI命令,并且不希望登录过期,这将非常有用。请按以下步骤操作(顺便说一句,这些不是实际的令牌和ID):
从该授权获取令牌(* 而不是 * ID),并将其传递到CLI:
顺便说一下,这也解决了当您在Heroku帐户上启用了MFA,但您的计算机没有Web浏览器时如何使用Heroku CLI的问题,例如,如果您通过SSH在EC2设备上工作:
编辑:对于Windows计算机
运行
heroku authorizations:create
后,复制“令牌”,并运行以下命令:unhi4e5o3#
如果你的目标只是获取源代码,你可以使用一个简单的git客户端。你只需要api密钥。
获取API密钥的步骤
使用git下载源代码
使用此url模板进行git克隆
在我的例子中,user值是我的电子邮件,没有domain。
最后像克隆其他git仓库一样克隆它:
hc2pp10m4#
我同意 Heroku 现在应该已经提供了一种方法来使用他们的更高级别的CLI工具完成此任务。
您可以通过简单地使用 curl 和Heroku API来避免极端的解决方案(您应该这样做,就像Chris在他的answer中提到的那样)。Heroku 允许您使用您的 *API令牌 *(可通过 Heroku Jmeter 板上的用户设置/profile page获得)。
然后,您可以使用API来实现您希望使用他们的命令行工具执行的任何操作。
例如,如果我想获取某个应用的所有配置变量,我会编写一个脚本,执行如下操作: