heroku 11.5.0-alpha.8 → 11.5.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -247
- package/dist/commands/accounts/add.js +11 -9
- package/dist/commands/accounts/current.js +1 -1
- package/dist/commands/accounts/index.js +4 -5
- package/dist/commands/accounts/remove.js +4 -8
- package/dist/commands/accounts/set.js +5 -7
- package/dist/commands/apps/create.js +0 -1
- package/dist/commands/auth/login.js +0 -9
- package/dist/commands/auth/logout.js +1 -15
- package/dist/commands/auth/whoami.js +1 -1
- package/dist/commands/ci/config/unset.js +1 -1
- package/dist/commands/git/clone.js +0 -1
- package/dist/commands/git/credentials.d.ts +0 -6
- package/dist/commands/git/credentials.js +3 -38
- package/dist/commands/git/remote.js +0 -1
- package/dist/lib/accounts/accounts.d.ts +8 -25
- package/dist/lib/accounts/accounts.js +30 -174
- package/dist/lib/analytics-telemetry/backboard-herokulytics-client.d.ts +5 -1
- package/dist/lib/analytics-telemetry/backboard-herokulytics-client.js +22 -5
- package/dist/lib/git/git.d.ts +2 -15
- package/dist/lib/git/git.js +5 -41
- package/npm-shrinkwrap.json +2297 -481
- package/oclif.manifest.json +4431 -4431
- package/package.json +8 -5
package/CHANGELOG.md
CHANGED
|
@@ -4,277 +4,32 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
## [11.5.0-
|
|
7
|
+
## [11.5.0-beta.0](https://github.com/heroku/cli/compare/v11.4.0...v11.5.0-beta.0) (2026-06-11)
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
### Features
|
|
11
11
|
|
|
12
|
-
* add alias files for keychain accounts ([e1c572c](https://github.com/heroku/cli/commit/e1c572c942386b519b6ab63aac52c5ed56060d05))
|
|
13
|
-
* add getAliasEmail helper method ([bb53b87](https://github.com/heroku/cli/commit/bb53b87479d3009518c02420027da1dc7b8ddace))
|
|
14
12
|
* add hidden --method flag to data:pg:migrate ([#3743](https://github.com/heroku/cli/issues/3743)) ([665b189](https://github.com/heroku/cli/commit/665b1896d50f399cc20cfe39500b603665bc814a))
|
|
15
|
-
* add listAliasFiles helper method ([01da5e4](https://github.com/heroku/cli/commit/01da5e44ae9c7257fddb27566fb3b3c02f7c8444))
|
|
16
|
-
* adds alias support for keychain-based accounts ([#3752](https://github.com/heroku/cli/issues/3752)) ([c5d1a45](https://github.com/heroku/cli/commit/c5d1a450601405b44b23648593b498bf61de2b20))
|
|
17
|
-
* implement heroku git:credentials as a git credential helper ([#3683](https://github.com/heroku/cli/issues/3683)) ([781e99e](https://github.com/heroku/cli/commit/781e99e1b9c56339b1245e30087aa9b312c10e69))
|
|
18
|
-
* prevent duplicate aliases for same email in accounts:add ([c094aa6](https://github.com/heroku/cli/commit/c094aa61670a0beaa15d3c8a31e0839f082c50d5))
|
|
19
|
-
* remove alias files for keychain and netrc accounts ([0d3b417](https://github.com/heroku/cli/commit/0d3b4175391b48ae84a712f9f86743a85ff2efbd))
|
|
20
|
-
* remove cached netrc account on logout ([#3710](https://github.com/heroku/cli/issues/3710)) ([b07137b](https://github.com/heroku/cli/commit/b07137bed5282a1618ae7e2b1e7f603eeb9a70be))
|
|
21
|
-
* update accounts and accounts:current commands to use the credential manager ([#3689](https://github.com/heroku/cli/issues/3689)) ([e753d06](https://github.com/heroku/cli/commit/e753d06407fe8ebf6f87b25131d6198d78e824e8))
|
|
22
|
-
* update accounts:add description for clarity ([a34d687](https://github.com/heroku/cli/commit/a34d687ecee13d4db831ef39011c9698d676bcb3))
|
|
23
|
-
* update accounts:add to use the credential manager ([#3699](https://github.com/heroku/cli/issues/3699)) ([49e3938](https://github.com/heroku/cli/commit/49e3938f44ec52451870cf24c692d440a7a69701))
|
|
24
|
-
* update accounts:remove to work with credential manager ([#3701](https://github.com/heroku/cli/issues/3701)) ([89d7b14](https://github.com/heroku/cli/commit/89d7b148df950429f902691c8348afc5bba07454))
|
|
25
|
-
* update accounts:set to work with keychain managers ([#3696](https://github.com/heroku/cli/issues/3696)) ([1f896aa](https://github.com/heroku/cli/commit/1f896aab4b23fb312d444420a06ed9d839ec8cf4))
|
|
26
|
-
* update list() to merge keychain accounts with alias files ([940bb6f](https://github.com/heroku/cli/commit/940bb6f89326e26e176b199db8fe0defa141c29d))
|
|
27
|
-
* update remove() to resolve alias before keychain removal ([92e2fe1](https://github.com/heroku/cli/commit/92e2fe133ca2d52f4c0b744c0096be2196fb106b))
|
|
28
|
-
* update set() to handle aliased keychain accounts ([114d3a7](https://github.com/heroku/cli/commit/114d3a7740c7f1c10e1425c5d9c7613811182658))
|
|
29
13
|
|
|
30
14
|
|
|
31
15
|
### Bug Fixes
|
|
32
16
|
|
|
33
17
|
* 'run:inside' args ordering (W-22693654) ([#3727](https://github.com/heroku/cli/issues/3727)) ([355113e](https://github.com/heroku/cli/commit/355113e8253b8547ea86be4ef540287ea263af80))
|
|
34
18
|
* add missing warning to 'data:pg:migrate' (W-22544849) ([#3716](https://github.com/heroku/cli/issues/3716)) ([400fc6e](https://github.com/heroku/cli/commit/400fc6e26eb7b7fdd634e0e4465fc5c19762303a))
|
|
35
|
-
* allow switching to netrc mode with keychain-created aliases ([386bd16](https://github.com/heroku/cli/commit/386bd163b31cb2899d7d17332e79b0e68d63a5c0))
|
|
36
19
|
* call _heroku.pg_stat_statements_reset() on Essential and Advanced plans ([#3751](https://github.com/heroku/cli/issues/3751)) ([5414e36](https://github.com/heroku/cli/commit/5414e3621ae732124bafcc9fdd1eabb56fc81c9d))
|
|
37
|
-
* fix linting errors in accounts lib file ([a8368d6](https://github.com/heroku/cli/commit/a8368d696dc91552ffef901da286e003a3091596))
|
|
38
|
-
* fix whoami and update heroku-cli-command and heroku-cli-util ([#3719](https://github.com/heroku/cli/issues/3719)) ([7db768f](https://github.com/heroku/cli/commit/7db768f21f0dbe04d8d422f93919bc4f6f9156c5))
|
|
39
20
|
* inherit secrets in reusable workflow ([#3711](https://github.com/heroku/cli/issues/3711)) ([5dd58af](https://github.com/heroku/cli/commit/5dd58af6c14f55ab85fe8584598718ebee03ae4b))
|
|
40
|
-
* make getAliasEmail test cross-platform compatible ([0f5b958](https://github.com/heroku/cli/commit/0f5b958f4782cf2ec5b5cb53812bdd636cb436e9))
|
|
41
21
|
* pass empty string to rl.write in repl finally block (W-22295448) ([#3721](https://github.com/heroku/cli/issues/3721)) ([ebdf082](https://github.com/heroku/cli/commit/ebdf082ed317cb74a59945c60dc274615b735b81))
|
|
42
|
-
* prevent cross-mode account removal with helpful error messages ([efa00a3](https://github.com/heroku/cli/commit/efa00a3e473eb2bb9be5a96f0412dced0851ec89))
|
|
43
|
-
* prevent password from being written to keychain alias files ([4b0e92d](https://github.com/heroku/cli/commit/4b0e92d1045dc649c5b5d92b649fa9d8d613e267))
|
|
44
|
-
* restore git configuration on logout ([#3697](https://github.com/heroku/cli/issues/3697)) ([5479fa5](https://github.com/heroku/cli/commit/5479fa53c75b152aece718999deee50b94b1f5ce))
|
|
45
|
-
* update accounts:remove to check for email or alias to validate current account ([969afab](https://github.com/heroku/cli/commit/969afabbfaa46bfdaf37cac7eab854440fbcd601))
|
|
46
|
-
* update error text for accounts commands ([a15d8bd](https://github.com/heroku/cli/commit/a15d8bd1f8b86b802b9c74efccf3de1136cc3483))
|
|
47
|
-
* update error text for accounts commands ([#3756](https://github.com/heroku/cli/issues/3756)) ([35350e8](https://github.com/heroku/cli/commit/35350e89b86080fd415ad0c4c20928695fbac42b))
|
|
48
22
|
|
|
49
23
|
|
|
50
24
|
### Miscellaneous Chores
|
|
51
25
|
|
|
52
26
|
* add CLAUDE.md and Copilot instructions pointing to AGENTS.md ([#3724](https://github.com/heroku/cli/issues/3724)) ([8abed2f](https://github.com/heroku/cli/commit/8abed2faad739a1897734fe414cc2e1b70ea245a))
|
|
53
27
|
* consolidate release for trusted publishing ([#3744](https://github.com/heroku/cli/issues/3744)) ([0e81dd8](https://github.com/heroku/cli/commit/0e81dd8429cecba42ea31c64cbbaac9db2bd2f87))
|
|
54
|
-
* fix linting errors ([7df4bf0](https://github.com/heroku/cli/commit/7df4bf076497d70c4c0ab3ae672598853f761247))
|
|
55
28
|
* inline npm publish workflow ([#3750](https://github.com/heroku/cli/issues/3750)) ([5618ee2](https://github.com/heroku/cli/commit/5618ee2e161f71594305de28965d672cf4eba8f3))
|
|
56
|
-
*
|
|
57
|
-
* merge main ([#3737](https://github.com/heroku/cli/issues/3737)) ([cb751e6](https://github.com/heroku/cli/commit/cb751e6a23d11baf44cd6111f7a1741e8477c06d))
|
|
58
|
-
* merge main ([#3757](https://github.com/heroku/cli/issues/3757)) ([07a78a3](https://github.com/heroku/cli/commit/07a78a3d8023bd56c9b2935d98ffad61925be803))
|
|
29
|
+
* pass PR title via env in pr-title-check workflow ([#3763](https://github.com/heroku/cli/issues/3763)) ([96310c3](https://github.com/heroku/cli/commit/96310c372b3431aa0c6b4c9313d035b40c7cd0bd))
|
|
59
30
|
* remove unused workflow file ([#3712](https://github.com/heroku/cli/issues/3712)) ([8860aa4](https://github.com/heroku/cli/commit/8860aa412261f05fae3df19438cfd50a5f4ae67f))
|
|
60
|
-
* update CLI analytics to use heroku credential manager ([#3685](https://github.com/heroku/cli/issues/3685)) ([5f86e4c](https://github.com/heroku/cli/commit/5f86e4cf9a6b8ca74d6ef0650abbae1f940fab7d))
|
|
61
31
|
* upload arm64 win installer to Stampy unsigned bucket (W-22733412) ([#3734](https://github.com/heroku/cli/issues/3734)) ([e171ad5](https://github.com/heroku/cli/commit/e171ad5f670bb4d7aae80d625ae5bf65d77cd1ff))
|
|
62
32
|
|
|
63
|
-
|
|
64
|
-
### Code Refactoring
|
|
65
|
-
|
|
66
|
-
* add accountsDir() helper to reduce code duplication ([efff0f5](https://github.com/heroku/cli/commit/efff0f5acd9cd4554ba74eb96d611abd9f44c830))
|
|
67
|
-
* extract Ruby symbol conversion to helper method ([dae3901](https://github.com/heroku/cli/commit/dae390196a0c3654cc8be22126bb48bedb022ed0))
|
|
68
|
-
* simplify account lookup in set command ([c540bec](https://github.com/heroku/cli/commit/c540bec1ab5829e683f5296baa0806b427439605))
|
|
69
|
-
* simplify add() method with writeAccountFile helper ([b15db3a](https://github.com/heroku/cli/commit/b15db3ae0abf1ad92b20d14fb62c72039b1488c2))
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
### Tests
|
|
73
|
-
|
|
74
|
-
* fix accounts, apps, auth, buildpacks, container, git, and ps-exec tests ([391b6a6](https://github.com/heroku/cli/commit/391b6a6cff1cb754697db642f1c11464a8de6de3))
|
|
75
|
-
* update analytics tests to use the credential manager ([#3688](https://github.com/heroku/cli/issues/3688)) ([4fde394](https://github.com/heroku/cli/commit/4fde394ac2351504a727829fd86fd647136afbc8))
|
|
76
|
-
|
|
77
|
-
## [11.5.0-alpha.7](https://github.com/heroku/cli/compare/v11.4.0...v11.5.0-alpha.7) (2026-06-09)
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
### Features
|
|
81
|
-
|
|
82
|
-
* add alias files for keychain accounts ([e1c572c](https://github.com/heroku/cli/commit/e1c572c942386b519b6ab63aac52c5ed56060d05))
|
|
83
|
-
* add getAliasEmail helper method ([bb53b87](https://github.com/heroku/cli/commit/bb53b87479d3009518c02420027da1dc7b8ddace))
|
|
84
|
-
* add hidden --method flag to data:pg:migrate ([#3743](https://github.com/heroku/cli/issues/3743)) ([665b189](https://github.com/heroku/cli/commit/665b1896d50f399cc20cfe39500b603665bc814a))
|
|
85
|
-
* add listAliasFiles helper method ([01da5e4](https://github.com/heroku/cli/commit/01da5e44ae9c7257fddb27566fb3b3c02f7c8444))
|
|
86
|
-
* adds alias support for keychain-based accounts ([#3752](https://github.com/heroku/cli/issues/3752)) ([c5d1a45](https://github.com/heroku/cli/commit/c5d1a450601405b44b23648593b498bf61de2b20))
|
|
87
|
-
* implement heroku git:credentials as a git credential helper ([#3683](https://github.com/heroku/cli/issues/3683)) ([781e99e](https://github.com/heroku/cli/commit/781e99e1b9c56339b1245e30087aa9b312c10e69))
|
|
88
|
-
* prevent duplicate aliases for same email in accounts:add ([c094aa6](https://github.com/heroku/cli/commit/c094aa61670a0beaa15d3c8a31e0839f082c50d5))
|
|
89
|
-
* remove alias files for keychain and netrc accounts ([0d3b417](https://github.com/heroku/cli/commit/0d3b4175391b48ae84a712f9f86743a85ff2efbd))
|
|
90
|
-
* remove cached netrc account on logout ([#3710](https://github.com/heroku/cli/issues/3710)) ([b07137b](https://github.com/heroku/cli/commit/b07137bed5282a1618ae7e2b1e7f603eeb9a70be))
|
|
91
|
-
* update accounts and accounts:current commands to use the credential manager ([#3689](https://github.com/heroku/cli/issues/3689)) ([e753d06](https://github.com/heroku/cli/commit/e753d06407fe8ebf6f87b25131d6198d78e824e8))
|
|
92
|
-
* update accounts:add description for clarity ([a34d687](https://github.com/heroku/cli/commit/a34d687ecee13d4db831ef39011c9698d676bcb3))
|
|
93
|
-
* update accounts:add to use the credential manager ([#3699](https://github.com/heroku/cli/issues/3699)) ([49e3938](https://github.com/heroku/cli/commit/49e3938f44ec52451870cf24c692d440a7a69701))
|
|
94
|
-
* update accounts:remove to work with credential manager ([#3701](https://github.com/heroku/cli/issues/3701)) ([89d7b14](https://github.com/heroku/cli/commit/89d7b148df950429f902691c8348afc5bba07454))
|
|
95
|
-
* update accounts:set to work with keychain managers ([#3696](https://github.com/heroku/cli/issues/3696)) ([1f896aa](https://github.com/heroku/cli/commit/1f896aab4b23fb312d444420a06ed9d839ec8cf4))
|
|
96
|
-
* update list() to merge keychain accounts with alias files ([940bb6f](https://github.com/heroku/cli/commit/940bb6f89326e26e176b199db8fe0defa141c29d))
|
|
97
|
-
* update remove() to resolve alias before keychain removal ([92e2fe1](https://github.com/heroku/cli/commit/92e2fe133ca2d52f4c0b744c0096be2196fb106b))
|
|
98
|
-
* update set() to handle aliased keychain accounts ([114d3a7](https://github.com/heroku/cli/commit/114d3a7740c7f1c10e1425c5d9c7613811182658))
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
### Bug Fixes
|
|
102
|
-
|
|
103
|
-
* 'run:inside' args ordering (W-22693654) ([#3727](https://github.com/heroku/cli/issues/3727)) ([355113e](https://github.com/heroku/cli/commit/355113e8253b8547ea86be4ef540287ea263af80))
|
|
104
|
-
* add missing warning to 'data:pg:migrate' (W-22544849) ([#3716](https://github.com/heroku/cli/issues/3716)) ([400fc6e](https://github.com/heroku/cli/commit/400fc6e26eb7b7fdd634e0e4465fc5c19762303a))
|
|
105
|
-
* allow switching to netrc mode with keychain-created aliases ([386bd16](https://github.com/heroku/cli/commit/386bd163b31cb2899d7d17332e79b0e68d63a5c0))
|
|
106
|
-
* fix linting errors in accounts lib file ([a8368d6](https://github.com/heroku/cli/commit/a8368d696dc91552ffef901da286e003a3091596))
|
|
107
|
-
* fix whoami and update heroku-cli-command and heroku-cli-util ([#3719](https://github.com/heroku/cli/issues/3719)) ([7db768f](https://github.com/heroku/cli/commit/7db768f21f0dbe04d8d422f93919bc4f6f9156c5))
|
|
108
|
-
* inherit secrets in reusable workflow ([#3711](https://github.com/heroku/cli/issues/3711)) ([5dd58af](https://github.com/heroku/cli/commit/5dd58af6c14f55ab85fe8584598718ebee03ae4b))
|
|
109
|
-
* make getAliasEmail test cross-platform compatible ([0f5b958](https://github.com/heroku/cli/commit/0f5b958f4782cf2ec5b5cb53812bdd636cb436e9))
|
|
110
|
-
* pass empty string to rl.write in repl finally block (W-22295448) ([#3721](https://github.com/heroku/cli/issues/3721)) ([ebdf082](https://github.com/heroku/cli/commit/ebdf082ed317cb74a59945c60dc274615b735b81))
|
|
111
|
-
* prevent cross-mode account removal with helpful error messages ([efa00a3](https://github.com/heroku/cli/commit/efa00a3e473eb2bb9be5a96f0412dced0851ec89))
|
|
112
|
-
* prevent password from being written to keychain alias files ([4b0e92d](https://github.com/heroku/cli/commit/4b0e92d1045dc649c5b5d92b649fa9d8d613e267))
|
|
113
|
-
* restore git configuration on logout ([#3697](https://github.com/heroku/cli/issues/3697)) ([5479fa5](https://github.com/heroku/cli/commit/5479fa53c75b152aece718999deee50b94b1f5ce))
|
|
114
|
-
* update accounts:remove to check for email or alias to validate current account ([969afab](https://github.com/heroku/cli/commit/969afabbfaa46bfdaf37cac7eab854440fbcd601))
|
|
115
|
-
* update error text for accounts commands ([a15d8bd](https://github.com/heroku/cli/commit/a15d8bd1f8b86b802b9c74efccf3de1136cc3483))
|
|
116
|
-
* update error text for accounts commands ([#3756](https://github.com/heroku/cli/issues/3756)) ([35350e8](https://github.com/heroku/cli/commit/35350e89b86080fd415ad0c4c20928695fbac42b))
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
### Miscellaneous Chores
|
|
120
|
-
|
|
121
|
-
* add CLAUDE.md and Copilot instructions pointing to AGENTS.md ([#3724](https://github.com/heroku/cli/issues/3724)) ([8abed2f](https://github.com/heroku/cli/commit/8abed2faad739a1897734fe414cc2e1b70ea245a))
|
|
122
|
-
* consolidate release for trusted publishing ([#3744](https://github.com/heroku/cli/issues/3744)) ([0e81dd8](https://github.com/heroku/cli/commit/0e81dd8429cecba42ea31c64cbbaac9db2bd2f87))
|
|
123
|
-
* fix linting errors ([7df4bf0](https://github.com/heroku/cli/commit/7df4bf076497d70c4c0ab3ae672598853f761247))
|
|
124
|
-
* merge in main to feature branch ([#3747](https://github.com/heroku/cli/issues/3747)) ([8c100fd](https://github.com/heroku/cli/commit/8c100fd4667a88e414a4c9379ff896792ef07498))
|
|
125
|
-
* merge main ([#3737](https://github.com/heroku/cli/issues/3737)) ([cb751e6](https://github.com/heroku/cli/commit/cb751e6a23d11baf44cd6111f7a1741e8477c06d))
|
|
126
|
-
* remove unused workflow file ([#3712](https://github.com/heroku/cli/issues/3712)) ([8860aa4](https://github.com/heroku/cli/commit/8860aa412261f05fae3df19438cfd50a5f4ae67f))
|
|
127
|
-
* update CLI analytics to use heroku credential manager ([#3685](https://github.com/heroku/cli/issues/3685)) ([5f86e4c](https://github.com/heroku/cli/commit/5f86e4cf9a6b8ca74d6ef0650abbae1f940fab7d))
|
|
128
|
-
* upload arm64 win installer to Stampy unsigned bucket (W-22733412) ([#3734](https://github.com/heroku/cli/issues/3734)) ([e171ad5](https://github.com/heroku/cli/commit/e171ad5f670bb4d7aae80d625ae5bf65d77cd1ff))
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
### Code Refactoring
|
|
132
|
-
|
|
133
|
-
* add accountsDir() helper to reduce code duplication ([efff0f5](https://github.com/heroku/cli/commit/efff0f5acd9cd4554ba74eb96d611abd9f44c830))
|
|
134
|
-
* extract Ruby symbol conversion to helper method ([dae3901](https://github.com/heroku/cli/commit/dae390196a0c3654cc8be22126bb48bedb022ed0))
|
|
135
|
-
* simplify account lookup in set command ([c540bec](https://github.com/heroku/cli/commit/c540bec1ab5829e683f5296baa0806b427439605))
|
|
136
|
-
* simplify add() method with writeAccountFile helper ([b15db3a](https://github.com/heroku/cli/commit/b15db3ae0abf1ad92b20d14fb62c72039b1488c2))
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
### Tests
|
|
140
|
-
|
|
141
|
-
* fix accounts, apps, auth, buildpacks, container, git, and ps-exec tests ([391b6a6](https://github.com/heroku/cli/commit/391b6a6cff1cb754697db642f1c11464a8de6de3))
|
|
142
|
-
* update analytics tests to use the credential manager ([#3688](https://github.com/heroku/cli/issues/3688)) ([4fde394](https://github.com/heroku/cli/commit/4fde394ac2351504a727829fd86fd647136afbc8))
|
|
143
|
-
|
|
144
|
-
## [11.6.0](https://github.com/heroku/cli/compare/v11.4.0...v11.6.0) (2026-06-09)
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
### Features
|
|
148
|
-
|
|
149
|
-
* add alias files for keychain accounts ([e1c572c](https://github.com/heroku/cli/commit/e1c572c942386b519b6ab63aac52c5ed56060d05))
|
|
150
|
-
* add getAliasEmail helper method ([bb53b87](https://github.com/heroku/cli/commit/bb53b87479d3009518c02420027da1dc7b8ddace))
|
|
151
|
-
* add hidden --method flag to data:pg:migrate ([#3743](https://github.com/heroku/cli/issues/3743)) ([665b189](https://github.com/heroku/cli/commit/665b1896d50f399cc20cfe39500b603665bc814a))
|
|
152
|
-
* add listAliasFiles helper method ([01da5e4](https://github.com/heroku/cli/commit/01da5e44ae9c7257fddb27566fb3b3c02f7c8444))
|
|
153
|
-
* adds alias support for keychain-based accounts ([#3752](https://github.com/heroku/cli/issues/3752)) ([c5d1a45](https://github.com/heroku/cli/commit/c5d1a450601405b44b23648593b498bf61de2b20))
|
|
154
|
-
* implement heroku git:credentials as a git credential helper ([#3683](https://github.com/heroku/cli/issues/3683)) ([781e99e](https://github.com/heroku/cli/commit/781e99e1b9c56339b1245e30087aa9b312c10e69))
|
|
155
|
-
* prevent duplicate aliases for same email in accounts:add ([c094aa6](https://github.com/heroku/cli/commit/c094aa61670a0beaa15d3c8a31e0839f082c50d5))
|
|
156
|
-
* remove alias files for keychain and netrc accounts ([0d3b417](https://github.com/heroku/cli/commit/0d3b4175391b48ae84a712f9f86743a85ff2efbd))
|
|
157
|
-
* remove cached netrc account on logout ([#3710](https://github.com/heroku/cli/issues/3710)) ([b07137b](https://github.com/heroku/cli/commit/b07137bed5282a1618ae7e2b1e7f603eeb9a70be))
|
|
158
|
-
* update accounts and accounts:current commands to use the credential manager ([#3689](https://github.com/heroku/cli/issues/3689)) ([e753d06](https://github.com/heroku/cli/commit/e753d06407fe8ebf6f87b25131d6198d78e824e8))
|
|
159
|
-
* update accounts:add description for clarity ([a34d687](https://github.com/heroku/cli/commit/a34d687ecee13d4db831ef39011c9698d676bcb3))
|
|
160
|
-
* update accounts:add to use the credential manager ([#3699](https://github.com/heroku/cli/issues/3699)) ([49e3938](https://github.com/heroku/cli/commit/49e3938f44ec52451870cf24c692d440a7a69701))
|
|
161
|
-
* update accounts:remove to work with credential manager ([#3701](https://github.com/heroku/cli/issues/3701)) ([89d7b14](https://github.com/heroku/cli/commit/89d7b148df950429f902691c8348afc5bba07454))
|
|
162
|
-
* update accounts:set to work with keychain managers ([#3696](https://github.com/heroku/cli/issues/3696)) ([1f896aa](https://github.com/heroku/cli/commit/1f896aab4b23fb312d444420a06ed9d839ec8cf4))
|
|
163
|
-
* update list() to merge keychain accounts with alias files ([940bb6f](https://github.com/heroku/cli/commit/940bb6f89326e26e176b199db8fe0defa141c29d))
|
|
164
|
-
* update remove() to resolve alias before keychain removal ([92e2fe1](https://github.com/heroku/cli/commit/92e2fe133ca2d52f4c0b744c0096be2196fb106b))
|
|
165
|
-
* update set() to handle aliased keychain accounts ([114d3a7](https://github.com/heroku/cli/commit/114d3a7740c7f1c10e1425c5d9c7613811182658))
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
### Bug Fixes
|
|
169
|
-
|
|
170
|
-
* 'run:inside' args ordering (W-22693654) ([#3727](https://github.com/heroku/cli/issues/3727)) ([355113e](https://github.com/heroku/cli/commit/355113e8253b8547ea86be4ef540287ea263af80))
|
|
171
|
-
* add missing warning to 'data:pg:migrate' (W-22544849) ([#3716](https://github.com/heroku/cli/issues/3716)) ([400fc6e](https://github.com/heroku/cli/commit/400fc6e26eb7b7fdd634e0e4465fc5c19762303a))
|
|
172
|
-
* allow switching to netrc mode with keychain-created aliases ([386bd16](https://github.com/heroku/cli/commit/386bd163b31cb2899d7d17332e79b0e68d63a5c0))
|
|
173
|
-
* fix linting errors in accounts lib file ([a8368d6](https://github.com/heroku/cli/commit/a8368d696dc91552ffef901da286e003a3091596))
|
|
174
|
-
* fix whoami and update heroku-cli-command and heroku-cli-util ([#3719](https://github.com/heroku/cli/issues/3719)) ([7db768f](https://github.com/heroku/cli/commit/7db768f21f0dbe04d8d422f93919bc4f6f9156c5))
|
|
175
|
-
* inherit secrets in reusable workflow ([#3711](https://github.com/heroku/cli/issues/3711)) ([5dd58af](https://github.com/heroku/cli/commit/5dd58af6c14f55ab85fe8584598718ebee03ae4b))
|
|
176
|
-
* make getAliasEmail test cross-platform compatible ([0f5b958](https://github.com/heroku/cli/commit/0f5b958f4782cf2ec5b5cb53812bdd636cb436e9))
|
|
177
|
-
* pass empty string to rl.write in repl finally block (W-22295448) ([#3721](https://github.com/heroku/cli/issues/3721)) ([ebdf082](https://github.com/heroku/cli/commit/ebdf082ed317cb74a59945c60dc274615b735b81))
|
|
178
|
-
* prevent cross-mode account removal with helpful error messages ([efa00a3](https://github.com/heroku/cli/commit/efa00a3e473eb2bb9be5a96f0412dced0851ec89))
|
|
179
|
-
* prevent password from being written to keychain alias files ([4b0e92d](https://github.com/heroku/cli/commit/4b0e92d1045dc649c5b5d92b649fa9d8d613e267))
|
|
180
|
-
* restore git configuration on logout ([#3697](https://github.com/heroku/cli/issues/3697)) ([5479fa5](https://github.com/heroku/cli/commit/5479fa53c75b152aece718999deee50b94b1f5ce))
|
|
181
|
-
* update accounts:remove to check for email or alias to validate current account ([969afab](https://github.com/heroku/cli/commit/969afabbfaa46bfdaf37cac7eab854440fbcd601))
|
|
182
|
-
* update error text for accounts commands ([a15d8bd](https://github.com/heroku/cli/commit/a15d8bd1f8b86b802b9c74efccf3de1136cc3483))
|
|
183
|
-
* update error text for accounts commands ([#3756](https://github.com/heroku/cli/issues/3756)) ([35350e8](https://github.com/heroku/cli/commit/35350e89b86080fd415ad0c4c20928695fbac42b))
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
### Miscellaneous Chores
|
|
187
|
-
|
|
188
|
-
* add CLAUDE.md and Copilot instructions pointing to AGENTS.md ([#3724](https://github.com/heroku/cli/issues/3724)) ([8abed2f](https://github.com/heroku/cli/commit/8abed2faad739a1897734fe414cc2e1b70ea245a))
|
|
189
|
-
* consolidate release for trusted publishing ([#3744](https://github.com/heroku/cli/issues/3744)) ([0e81dd8](https://github.com/heroku/cli/commit/0e81dd8429cecba42ea31c64cbbaac9db2bd2f87))
|
|
190
|
-
* fix linting errors ([7df4bf0](https://github.com/heroku/cli/commit/7df4bf076497d70c4c0ab3ae672598853f761247))
|
|
191
|
-
* merge in main to feature branch ([#3747](https://github.com/heroku/cli/issues/3747)) ([8c100fd](https://github.com/heroku/cli/commit/8c100fd4667a88e414a4c9379ff896792ef07498))
|
|
192
|
-
* merge main ([#3737](https://github.com/heroku/cli/issues/3737)) ([cb751e6](https://github.com/heroku/cli/commit/cb751e6a23d11baf44cd6111f7a1741e8477c06d))
|
|
193
|
-
* remove unused workflow file ([#3712](https://github.com/heroku/cli/issues/3712)) ([8860aa4](https://github.com/heroku/cli/commit/8860aa412261f05fae3df19438cfd50a5f4ae67f))
|
|
194
|
-
* update CLI analytics to use heroku credential manager ([#3685](https://github.com/heroku/cli/issues/3685)) ([5f86e4c](https://github.com/heroku/cli/commit/5f86e4cf9a6b8ca74d6ef0650abbae1f940fab7d))
|
|
195
|
-
* upload arm64 win installer to Stampy unsigned bucket (W-22733412) ([#3734](https://github.com/heroku/cli/issues/3734)) ([e171ad5](https://github.com/heroku/cli/commit/e171ad5f670bb4d7aae80d625ae5bf65d77cd1ff))
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
### Code Refactoring
|
|
199
|
-
|
|
200
|
-
* add accountsDir() helper to reduce code duplication ([efff0f5](https://github.com/heroku/cli/commit/efff0f5acd9cd4554ba74eb96d611abd9f44c830))
|
|
201
|
-
* extract Ruby symbol conversion to helper method ([dae3901](https://github.com/heroku/cli/commit/dae390196a0c3654cc8be22126bb48bedb022ed0))
|
|
202
|
-
* simplify account lookup in set command ([c540bec](https://github.com/heroku/cli/commit/c540bec1ab5829e683f5296baa0806b427439605))
|
|
203
|
-
* simplify add() method with writeAccountFile helper ([b15db3a](https://github.com/heroku/cli/commit/b15db3ae0abf1ad92b20d14fb62c72039b1488c2))
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
### Tests
|
|
207
|
-
|
|
208
|
-
* fix accounts, apps, auth, buildpacks, container, git, and ps-exec tests ([391b6a6](https://github.com/heroku/cli/commit/391b6a6cff1cb754697db642f1c11464a8de6de3))
|
|
209
|
-
* update analytics tests to use the credential manager ([#3688](https://github.com/heroku/cli/issues/3688)) ([4fde394](https://github.com/heroku/cli/commit/4fde394ac2351504a727829fd86fd647136afbc8))
|
|
210
|
-
|
|
211
|
-
## [11.5.0](https://github.com/heroku/cli/compare/v11.4.0...v11.5.0) (2026-06-09)
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
### Features
|
|
215
|
-
|
|
216
|
-
* add alias files for keychain accounts ([e1c572c](https://github.com/heroku/cli/commit/e1c572c942386b519b6ab63aac52c5ed56060d05))
|
|
217
|
-
* add getAliasEmail helper method ([bb53b87](https://github.com/heroku/cli/commit/bb53b87479d3009518c02420027da1dc7b8ddace))
|
|
218
|
-
* add hidden --method flag to data:pg:migrate ([#3743](https://github.com/heroku/cli/issues/3743)) ([665b189](https://github.com/heroku/cli/commit/665b1896d50f399cc20cfe39500b603665bc814a))
|
|
219
|
-
* add listAliasFiles helper method ([01da5e4](https://github.com/heroku/cli/commit/01da5e44ae9c7257fddb27566fb3b3c02f7c8444))
|
|
220
|
-
* adds alias support for keychain-based accounts ([#3752](https://github.com/heroku/cli/issues/3752)) ([c5d1a45](https://github.com/heroku/cli/commit/c5d1a450601405b44b23648593b498bf61de2b20))
|
|
221
|
-
* implement heroku git:credentials as a git credential helper ([#3683](https://github.com/heroku/cli/issues/3683)) ([781e99e](https://github.com/heroku/cli/commit/781e99e1b9c56339b1245e30087aa9b312c10e69))
|
|
222
|
-
* prevent duplicate aliases for same email in accounts:add ([c094aa6](https://github.com/heroku/cli/commit/c094aa61670a0beaa15d3c8a31e0839f082c50d5))
|
|
223
|
-
* remove alias files for keychain and netrc accounts ([0d3b417](https://github.com/heroku/cli/commit/0d3b4175391b48ae84a712f9f86743a85ff2efbd))
|
|
224
|
-
* remove cached netrc account on logout ([#3710](https://github.com/heroku/cli/issues/3710)) ([b07137b](https://github.com/heroku/cli/commit/b07137bed5282a1618ae7e2b1e7f603eeb9a70be))
|
|
225
|
-
* update accounts and accounts:current commands to use the credential manager ([#3689](https://github.com/heroku/cli/issues/3689)) ([e753d06](https://github.com/heroku/cli/commit/e753d06407fe8ebf6f87b25131d6198d78e824e8))
|
|
226
|
-
* update accounts:add description for clarity ([a34d687](https://github.com/heroku/cli/commit/a34d687ecee13d4db831ef39011c9698d676bcb3))
|
|
227
|
-
* update accounts:add to use the credential manager ([#3699](https://github.com/heroku/cli/issues/3699)) ([49e3938](https://github.com/heroku/cli/commit/49e3938f44ec52451870cf24c692d440a7a69701))
|
|
228
|
-
* update accounts:remove to work with credential manager ([#3701](https://github.com/heroku/cli/issues/3701)) ([89d7b14](https://github.com/heroku/cli/commit/89d7b148df950429f902691c8348afc5bba07454))
|
|
229
|
-
* update accounts:set to work with keychain managers ([#3696](https://github.com/heroku/cli/issues/3696)) ([1f896aa](https://github.com/heroku/cli/commit/1f896aab4b23fb312d444420a06ed9d839ec8cf4))
|
|
230
|
-
* update list() to merge keychain accounts with alias files ([940bb6f](https://github.com/heroku/cli/commit/940bb6f89326e26e176b199db8fe0defa141c29d))
|
|
231
|
-
* update remove() to resolve alias before keychain removal ([92e2fe1](https://github.com/heroku/cli/commit/92e2fe133ca2d52f4c0b744c0096be2196fb106b))
|
|
232
|
-
* update set() to handle aliased keychain accounts ([114d3a7](https://github.com/heroku/cli/commit/114d3a7740c7f1c10e1425c5d9c7613811182658))
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
### Bug Fixes
|
|
236
|
-
|
|
237
|
-
* 'run:inside' args ordering (W-22693654) ([#3727](https://github.com/heroku/cli/issues/3727)) ([355113e](https://github.com/heroku/cli/commit/355113e8253b8547ea86be4ef540287ea263af80))
|
|
238
|
-
* add missing warning to 'data:pg:migrate' (W-22544849) ([#3716](https://github.com/heroku/cli/issues/3716)) ([400fc6e](https://github.com/heroku/cli/commit/400fc6e26eb7b7fdd634e0e4465fc5c19762303a))
|
|
239
|
-
* allow switching to netrc mode with keychain-created aliases ([386bd16](https://github.com/heroku/cli/commit/386bd163b31cb2899d7d17332e79b0e68d63a5c0))
|
|
240
|
-
* fix linting errors in accounts lib file ([a8368d6](https://github.com/heroku/cli/commit/a8368d696dc91552ffef901da286e003a3091596))
|
|
241
|
-
* fix whoami and update heroku-cli-command and heroku-cli-util ([#3719](https://github.com/heroku/cli/issues/3719)) ([7db768f](https://github.com/heroku/cli/commit/7db768f21f0dbe04d8d422f93919bc4f6f9156c5))
|
|
242
|
-
* inherit secrets in reusable workflow ([#3711](https://github.com/heroku/cli/issues/3711)) ([5dd58af](https://github.com/heroku/cli/commit/5dd58af6c14f55ab85fe8584598718ebee03ae4b))
|
|
243
|
-
* make getAliasEmail test cross-platform compatible ([0f5b958](https://github.com/heroku/cli/commit/0f5b958f4782cf2ec5b5cb53812bdd636cb436e9))
|
|
244
|
-
* pass empty string to rl.write in repl finally block (W-22295448) ([#3721](https://github.com/heroku/cli/issues/3721)) ([ebdf082](https://github.com/heroku/cli/commit/ebdf082ed317cb74a59945c60dc274615b735b81))
|
|
245
|
-
* prevent cross-mode account removal with helpful error messages ([efa00a3](https://github.com/heroku/cli/commit/efa00a3e473eb2bb9be5a96f0412dced0851ec89))
|
|
246
|
-
* prevent password from being written to keychain alias files ([4b0e92d](https://github.com/heroku/cli/commit/4b0e92d1045dc649c5b5d92b649fa9d8d613e267))
|
|
247
|
-
* restore git configuration on logout ([#3697](https://github.com/heroku/cli/issues/3697)) ([5479fa5](https://github.com/heroku/cli/commit/5479fa53c75b152aece718999deee50b94b1f5ce))
|
|
248
|
-
* update accounts:remove to check for email or alias to validate current account ([969afab](https://github.com/heroku/cli/commit/969afabbfaa46bfdaf37cac7eab854440fbcd601))
|
|
249
|
-
* update error text for accounts commands ([a15d8bd](https://github.com/heroku/cli/commit/a15d8bd1f8b86b802b9c74efccf3de1136cc3483))
|
|
250
|
-
* update error text for accounts commands ([#3756](https://github.com/heroku/cli/issues/3756)) ([35350e8](https://github.com/heroku/cli/commit/35350e89b86080fd415ad0c4c20928695fbac42b))
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
### Miscellaneous Chores
|
|
254
|
-
|
|
255
|
-
* add CLAUDE.md and Copilot instructions pointing to AGENTS.md ([#3724](https://github.com/heroku/cli/issues/3724)) ([8abed2f](https://github.com/heroku/cli/commit/8abed2faad739a1897734fe414cc2e1b70ea245a))
|
|
256
|
-
* consolidate release for trusted publishing ([#3744](https://github.com/heroku/cli/issues/3744)) ([0e81dd8](https://github.com/heroku/cli/commit/0e81dd8429cecba42ea31c64cbbaac9db2bd2f87))
|
|
257
|
-
* fix linting errors ([7df4bf0](https://github.com/heroku/cli/commit/7df4bf076497d70c4c0ab3ae672598853f761247))
|
|
258
|
-
* merge in main to feature branch ([#3747](https://github.com/heroku/cli/issues/3747)) ([8c100fd](https://github.com/heroku/cli/commit/8c100fd4667a88e414a4c9379ff896792ef07498))
|
|
259
|
-
* merge main ([#3737](https://github.com/heroku/cli/issues/3737)) ([cb751e6](https://github.com/heroku/cli/commit/cb751e6a23d11baf44cd6111f7a1741e8477c06d))
|
|
260
|
-
* remove unused workflow file ([#3712](https://github.com/heroku/cli/issues/3712)) ([8860aa4](https://github.com/heroku/cli/commit/8860aa412261f05fae3df19438cfd50a5f4ae67f))
|
|
261
|
-
* update CLI analytics to use heroku credential manager ([#3685](https://github.com/heroku/cli/issues/3685)) ([5f86e4c](https://github.com/heroku/cli/commit/5f86e4cf9a6b8ca74d6ef0650abbae1f940fab7d))
|
|
262
|
-
* upload arm64 win installer to Stampy unsigned bucket (W-22733412) ([#3734](https://github.com/heroku/cli/issues/3734)) ([e171ad5](https://github.com/heroku/cli/commit/e171ad5f670bb4d7aae80d625ae5bf65d77cd1ff))
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
### Code Refactoring
|
|
266
|
-
|
|
267
|
-
* add accountsDir() helper to reduce code duplication ([efff0f5](https://github.com/heroku/cli/commit/efff0f5acd9cd4554ba74eb96d611abd9f44c830))
|
|
268
|
-
* extract Ruby symbol conversion to helper method ([dae3901](https://github.com/heroku/cli/commit/dae390196a0c3654cc8be22126bb48bedb022ed0))
|
|
269
|
-
* simplify account lookup in set command ([c540bec](https://github.com/heroku/cli/commit/c540bec1ab5829e683f5296baa0806b427439605))
|
|
270
|
-
* simplify add() method with writeAccountFile helper ([b15db3a](https://github.com/heroku/cli/commit/b15db3ae0abf1ad92b20d14fb62c72039b1488c2))
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
### Tests
|
|
274
|
-
|
|
275
|
-
* fix accounts, apps, auth, buildpacks, container, git, and ps-exec tests ([391b6a6](https://github.com/heroku/cli/commit/391b6a6cff1cb754697db642f1c11464a8de6de3))
|
|
276
|
-
* update analytics tests to use the credential manager ([#3688](https://github.com/heroku/cli/issues/3688)) ([4fde394](https://github.com/heroku/cli/commit/4fde394ac2351504a727829fd86fd647136afbc8))
|
|
277
|
-
|
|
278
33
|
## [11.4.0](https://github.com/heroku/cli/compare/v11.3.0...v11.4.0) (2026-05-13)
|
|
279
34
|
|
|
280
35
|
|
|
@@ -4,24 +4,26 @@ import { Args, ux } from '@oclif/core';
|
|
|
4
4
|
import AccountsModule from '../../lib/accounts/accounts.js';
|
|
5
5
|
export default class Add extends Command {
|
|
6
6
|
static args = {
|
|
7
|
-
name: Args.string({ description: '
|
|
7
|
+
name: Args.string({ description: 'name of Heroku account to add', required: true }),
|
|
8
8
|
};
|
|
9
|
-
static description = 'add
|
|
9
|
+
static description = 'add a Heroku account to your cache';
|
|
10
10
|
static example = `${color.command('heroku accounts:add my-account')}`;
|
|
11
11
|
async run() {
|
|
12
12
|
const { args } = await this.parse(Add);
|
|
13
13
|
const { name } = args;
|
|
14
|
-
const
|
|
15
|
-
if (
|
|
14
|
+
const logInMessage = 'You must be logged in to run this command.';
|
|
15
|
+
if (AccountsModule.list().some(a => a.name === name)) {
|
|
16
16
|
ux.error(`${name} already exists`);
|
|
17
17
|
}
|
|
18
18
|
const { body: account } = await this.heroku.get('/account');
|
|
19
|
-
const email = account.email;
|
|
20
|
-
const
|
|
21
|
-
if (
|
|
22
|
-
ux.error(
|
|
19
|
+
const email = account.email || '';
|
|
20
|
+
const token = this.heroku.auth || '';
|
|
21
|
+
if (token === '') {
|
|
22
|
+
ux.error(logInMessage);
|
|
23
|
+
}
|
|
24
|
+
if (email === '') {
|
|
25
|
+
ux.error(logInMessage);
|
|
23
26
|
}
|
|
24
|
-
const token = this.heroku.auth;
|
|
25
27
|
AccountsModule.add(name, email, token);
|
|
26
28
|
}
|
|
27
29
|
}
|
|
@@ -8,7 +8,7 @@ export default class Current extends Command {
|
|
|
8
8
|
static example = `${color.command('heroku accounts:current')}`;
|
|
9
9
|
static promptFlagActive = false;
|
|
10
10
|
async run() {
|
|
11
|
-
const accountName = await AccountsModule.current(
|
|
11
|
+
const accountName = await AccountsModule.current();
|
|
12
12
|
if (accountName) {
|
|
13
13
|
hux.styledHeader(`Current account is ${color.user(accountName)}`);
|
|
14
14
|
}
|
|
@@ -8,17 +8,16 @@ export default class AccountsIndex extends Command {
|
|
|
8
8
|
static example = `${color.command('heroku accounts')}`;
|
|
9
9
|
static promptFlagActive = false;
|
|
10
10
|
async run() {
|
|
11
|
-
const accounts =
|
|
11
|
+
const accounts = accountsModule.list();
|
|
12
12
|
if (accounts.length === 0) {
|
|
13
13
|
ux.error('You don\'t have any accounts in your cache.');
|
|
14
14
|
}
|
|
15
|
-
const current = await accountsModule.current(this.heroku);
|
|
16
15
|
for (const account of accounts) {
|
|
17
|
-
if (account.name ===
|
|
18
|
-
ux.stdout(`* ${account.name
|
|
16
|
+
if (account.name === await accountsModule.current()) {
|
|
17
|
+
ux.stdout(`* ${account.name}`);
|
|
19
18
|
}
|
|
20
19
|
else {
|
|
21
|
-
ux.stdout(` ${account.name
|
|
20
|
+
ux.stdout(` ${account.name}`);
|
|
22
21
|
}
|
|
23
22
|
}
|
|
24
23
|
}
|
|
@@ -11,16 +11,12 @@ export default class Remove extends Command {
|
|
|
11
11
|
async run() {
|
|
12
12
|
const { args } = await this.parse(Remove);
|
|
13
13
|
const { name } = args;
|
|
14
|
-
|
|
15
|
-
const account = accounts.find(a => a.name === name || a.username === name);
|
|
16
|
-
if (!account) {
|
|
14
|
+
if (!AccountsModule.list().some(a => a.name === name)) {
|
|
17
15
|
ux.error(`${name} doesn't exist in your accounts cache.`);
|
|
18
16
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (currentAccount === name || currentAccount === account.username) {
|
|
22
|
-
ux.error(`${name} is the current account. To log out, run ${color.command('heroku logout')}.`);
|
|
17
|
+
if (await AccountsModule.current() === name) {
|
|
18
|
+
ux.error(`${name} is the current account.`);
|
|
23
19
|
}
|
|
24
|
-
|
|
20
|
+
AccountsModule.remove(name);
|
|
25
21
|
}
|
|
26
22
|
}
|
|
@@ -4,18 +4,16 @@ import { Args, ux } from '@oclif/core';
|
|
|
4
4
|
import AccountsModule from '../../lib/accounts/accounts.js';
|
|
5
5
|
export default class Set extends Command {
|
|
6
6
|
static args = {
|
|
7
|
-
name: Args.string({ description: 'name
|
|
7
|
+
name: Args.string({ description: 'name of account to set', required: true }),
|
|
8
8
|
};
|
|
9
|
-
static description = 'set the current Heroku account from your
|
|
9
|
+
static description = 'set the current Heroku account from your cache';
|
|
10
10
|
static example = `${color.command('heroku accounts:set my-account')}`;
|
|
11
11
|
async run() {
|
|
12
12
|
const { args } = await this.parse(Set);
|
|
13
13
|
const { name } = args;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if (!account) {
|
|
17
|
-
ux.error(`${name} doesn't exist in your accounts cache or system keychain.`);
|
|
14
|
+
if (!AccountsModule.list().some(a => a.name === name)) {
|
|
15
|
+
ux.error(`${name} does not exist in your accounts cache.`);
|
|
18
16
|
}
|
|
19
|
-
|
|
17
|
+
AccountsModule.set(name);
|
|
20
18
|
}
|
|
21
19
|
}
|
|
@@ -69,7 +69,6 @@ async function configureGitRemote(context, app) {
|
|
|
69
69
|
const remoteUrl = git.httpGitUrl(app.name || '');
|
|
70
70
|
if (!context.flags['no-remote'] && git.inGitRepo()) {
|
|
71
71
|
await git.createRemote(context.flags.remote || 'heroku', remoteUrl);
|
|
72
|
-
await git.configureCredentialHelper();
|
|
73
72
|
}
|
|
74
73
|
return remoteUrl;
|
|
75
74
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Command, flags } from '@heroku-cli/command';
|
|
2
2
|
import * as color from '@heroku/heroku-cli-util/color';
|
|
3
|
-
import Git from '../../lib/git/git.js';
|
|
4
3
|
export default class Login extends Command {
|
|
5
4
|
static aliases = ['login'];
|
|
6
5
|
static description = 'login with your Heroku credentials';
|
|
@@ -18,14 +17,6 @@ export default class Login extends Command {
|
|
|
18
17
|
await this.heroku.login({ browser: flags.browser, expiresIn: flags['expires-in'], method });
|
|
19
18
|
const { body: account } = await this.heroku.get('/account', { retryAuth: false });
|
|
20
19
|
this.log(`Logged in as ${color.user(account.email)}`);
|
|
21
|
-
const git = new Git();
|
|
22
|
-
try {
|
|
23
|
-
await git.configureCredentialHelper();
|
|
24
|
-
await git.eraseCredentials();
|
|
25
|
-
}
|
|
26
|
-
catch {
|
|
27
|
-
// ignore
|
|
28
|
-
}
|
|
29
20
|
await this.config.runHook('recache', { type: 'login' });
|
|
30
21
|
}
|
|
31
22
|
}
|
|
@@ -1,28 +1,14 @@
|
|
|
1
1
|
import { Command } from '@heroku-cli/command';
|
|
2
2
|
import { ux } from '@oclif/core/ux';
|
|
3
|
-
import AccountsModule from '../../lib/accounts/accounts.js';
|
|
4
|
-
import Git from '../../lib/git/git.js';
|
|
5
3
|
export default class Logout extends Command {
|
|
6
4
|
static aliases = ['logout'];
|
|
7
5
|
static baseFlags = Command.baseFlagsWithoutPrompt();
|
|
8
6
|
static description = 'clears local login credentials and invalidates API session';
|
|
9
7
|
static promptFlagActive = false;
|
|
10
8
|
async run() {
|
|
11
|
-
|
|
9
|
+
this.parse(Logout);
|
|
12
10
|
ux.action.start('Logging out');
|
|
13
|
-
const cachedNetrcAccount = await AccountsModule.currentNetrc();
|
|
14
11
|
await this.heroku.logout();
|
|
15
|
-
const git = new Git();
|
|
16
|
-
try {
|
|
17
|
-
await git.removeCredentialHelper();
|
|
18
|
-
await git.eraseCredentials();
|
|
19
|
-
}
|
|
20
|
-
catch {
|
|
21
|
-
// ignore
|
|
22
|
-
}
|
|
23
|
-
if (cachedNetrcAccount) {
|
|
24
|
-
await AccountsModule.remove(cachedNetrcAccount);
|
|
25
|
-
}
|
|
26
12
|
await this.config.runHook('recache', { type: 'logout' });
|
|
27
13
|
ux.action.stop();
|
|
28
14
|
}
|
|
@@ -27,7 +27,7 @@ export default class CiConfigUnset extends Command {
|
|
|
27
27
|
vars[iAmStr] = null;
|
|
28
28
|
}
|
|
29
29
|
await ux.action.start(`Unsetting ${Object.keys(vars).join(', ')}`);
|
|
30
|
-
|
|
30
|
+
setPipelineConfigVars(this.heroku, pipeline.id, vars);
|
|
31
31
|
ux.action.stop();
|
|
32
32
|
}
|
|
33
33
|
}
|
|
@@ -6,10 +6,4 @@ export declare class GitCredentials extends Command {
|
|
|
6
6
|
static description: string;
|
|
7
7
|
static hidden: boolean;
|
|
8
8
|
run(): Promise<void>;
|
|
9
|
-
/**
|
|
10
|
-
* Reads git-credential input from stdin
|
|
11
|
-
* Format: key=value pairs, one per line, terminated by blank line
|
|
12
|
-
* Returns parsed object with protocol, host, username, and path
|
|
13
|
-
*/
|
|
14
|
-
private readInput;
|
|
15
9
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { Command
|
|
1
|
+
import { Command } from '@heroku-cli/command';
|
|
2
2
|
import { Args, ux } from '@oclif/core';
|
|
3
|
-
import * as readline from 'node:readline';
|
|
4
3
|
export class GitCredentials extends Command {
|
|
5
4
|
static args = {
|
|
6
5
|
command: Args.string({ description: 'command name of the git credentials', required: true }),
|
|
@@ -17,16 +16,10 @@ export class GitCredentials extends Command {
|
|
|
17
16
|
break;
|
|
18
17
|
}
|
|
19
18
|
case 'get': {
|
|
20
|
-
|
|
21
|
-
const { httpGitHost } = vars;
|
|
22
|
-
if (protocol !== 'https' || host !== httpGitHost) {
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
if (!this.heroku.auth) {
|
|
19
|
+
if (!this.heroku.auth)
|
|
26
20
|
throw new Error('not logged in');
|
|
27
|
-
}
|
|
28
21
|
ux.stdout(`protocol=https
|
|
29
|
-
host
|
|
22
|
+
host=git.heroku.com
|
|
30
23
|
username=heroku
|
|
31
24
|
password=${this.heroku.auth}`);
|
|
32
25
|
break;
|
|
@@ -36,32 +29,4 @@ password=${this.heroku.auth}`);
|
|
|
36
29
|
}
|
|
37
30
|
}
|
|
38
31
|
}
|
|
39
|
-
/**
|
|
40
|
-
* Reads git-credential input from stdin
|
|
41
|
-
* Format: key=value pairs, one per line, terminated by blank line
|
|
42
|
-
* Returns parsed object with protocol, host, username, and path
|
|
43
|
-
*/
|
|
44
|
-
async readInput() {
|
|
45
|
-
return new Promise(resolve => {
|
|
46
|
-
const rl = readline.createInterface({
|
|
47
|
-
input: process.stdin,
|
|
48
|
-
terminal: false,
|
|
49
|
-
});
|
|
50
|
-
const input = {};
|
|
51
|
-
rl.on('line', (line) => {
|
|
52
|
-
if (!line.trim()) {
|
|
53
|
-
rl.close();
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
const [key, value] = line.split('=', 2);
|
|
57
|
-
if (key && value) {
|
|
58
|
-
input[key] = value;
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
rl.on('close', () => {
|
|
62
|
-
process.stdin.pause();
|
|
63
|
-
resolve(input);
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
32
|
}
|
|
@@ -34,6 +34,5 @@ ${color.command('heroku git:remote --remote heroku-staging -a example-staging')}
|
|
|
34
34
|
: git.exec(['remote', 'add', remote, url].concat(argv)));
|
|
35
35
|
const newRemote = await git.remoteUrl(remote);
|
|
36
36
|
this.log(`set git remote ${color.cyan(remote)} to ${color.cyan(newRemote)}`);
|
|
37
|
-
await git.configureCredentialHelper();
|
|
38
37
|
}
|
|
39
38
|
}
|