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 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-alpha.8](https://github.com/heroku/cli/compare/v11.4.0...v11.5.0-alpha.8) (2026-06-09)
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
- * merge in main to feature branch ([#3747](https://github.com/heroku/cli/issues/3747)) ([8c100fd](https://github.com/heroku/cli/commit/8c100fd4667a88e414a4c9379ff896792ef07498))
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: 'alias for Heroku account to add', required: true }),
7
+ name: Args.string({ description: 'name of Heroku account to add', required: true }),
8
8
  };
9
- static description = 'add the current Heroku account to your accounts cache';
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 accounts = await AccountsModule.list();
15
- if (accounts.some(account => account.name === name)) {
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 existingAlias = accounts.find(account => account.name && account.username === email);
21
- if (existingAlias) {
22
- ux.error(`Account ${email} already has an alias of ${existingAlias.name}.`);
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(this.heroku);
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 = await accountsModule.list();
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 === current || account.username === current) {
18
- ux.stdout(`* ${account.name ?? account.username}`);
16
+ if (account.name === await accountsModule.current()) {
17
+ ux.stdout(`* ${account.name}`);
19
18
  }
20
19
  else {
21
- ux.stdout(` ${account.name ?? account.username}`);
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
- const accounts = await AccountsModule.list();
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
- const currentAccount = await AccountsModule.current(this.heroku);
20
- // Check both alias (name) and email (username) against current account
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
- await AccountsModule.remove(name);
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 or username of account to set', required: true }),
7
+ name: Args.string({ description: 'name of account to set', required: true }),
8
8
  };
9
- static description = 'set the current Heroku account from your accounts cache or system keychain';
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
- const accounts = await AccountsModule.list();
15
- const account = accounts.find(account => account.name === name || account.username === name);
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
- await AccountsModule.set(account, this.config.dataDir);
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
- await this.parse(Logout);
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
  }
@@ -17,7 +17,7 @@ export default class AuthWhoami extends Command {
17
17
  this.log(account.email);
18
18
  }
19
19
  catch (error) {
20
- if (error.http.statusCode === 401)
20
+ if (error.statusCode === 401)
21
21
  this.notloggedin();
22
22
  throw error;
23
23
  }
@@ -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
- await setPipelineConfigVars(this.heroku, pipeline.id, vars);
30
+ setPipelineConfigVars(this.heroku, pipeline.id, vars);
31
31
  ux.action.stop();
32
32
  }
33
33
  }
@@ -24,6 +24,5 @@ remote: Counting objects: 42, done.
24
24
  const directory = args.DIRECTORY || app.name;
25
25
  const remote = flags.remote || 'heroku';
26
26
  await git.spawn(['clone', '-o', remote, git.url(app.name), directory]);
27
- await git.configureCredentialHelper();
28
27
  }
29
28
  }
@@ -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, vars } from '@heroku-cli/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
- const { host, protocol } = await this.readInput();
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=${httpGitHost}
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
  }