Skip to content

feat: update accounts and accounts:current commands to use the credential manager#3689

Open
k80bowman wants to merge 12 commits intofeat/credential-mgr-integrationfrom
k80/accounts-accounts-current
Open

feat: update accounts and accounts:current commands to use the credential manager#3689
k80bowman wants to merge 12 commits intofeat/credential-mgr-integrationfrom
k80/accounts-accounts-current

Conversation

@k80bowman
Copy link
Copy Markdown
Contributor

@k80bowman k80bowman commented May 7, 2026

Summary

Updates the heroku accounts and heroku accounts:current commands so they are able to retrieve a user's accounts from their system keychain instead of relying on the cache file used when a user's token is stored in a .netrc file. The .netrc implementation remains the same.

Also fixes an issue with the git:credentials command that was causing the Windows test suites to timout and fail.

Type of Change

Breaking Changes (major semver update)

  • Add a ! after your change type to denote a change that breaks current behavior

Feature Additions (minor semver update)

  • feat: Introduces a new feature to the codebase

Patch Updates (patch semver update)

  • fix: Bug fix
  • deps: Dependency upgrade
  • revert: Revert a previous commit
  • chore: Change that does not affect production code
  • refactor: Refactoring existing code without changing behavior
  • test: Add/update/remove tests

Testing

Notes:

Setup:

  1. Check out this branch and run npm i && npm run build
  2. Login using ./bin/run login
  3. Run HEROKU_NETRC_WRITE=true ./bin/run accounts:add to add your account to your .netrc accounts cache. Use the name arg to give it a recognizable name, like "personal" or "work".

Steps:

  1. Run ./bin/run accounts. You should see one account in your list, labeled with your email address, with a star next to it. This comes from the keychain.
  2. Run HEROKU_NETRC_WRITE=true ./bin/run accounts. You should see one account in your list, labeled with the recognizable name you chose above, with a star next to it. This comes from the .netrc accounts cache.
  3. Run ./bin/run accounts:current. You should see your account email address. This comes from the keychain.
  4. Run HEROKU_NETRC_WRITE=true ./bin/run accounts:current. You should see the recognizable name you gave your account above. This comes from the .netrc accounts cache.

Screenshots (if applicable)

Related Issues

GUS work item: W-20867059

@k80bowman k80bowman requested a review from a team as a code owner May 7, 2026 17:01
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 17:01 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 17:01 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 17:01 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 17:01 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 17:26 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 17:26 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 17:26 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 17:26 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 17:45 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 17:45 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 17:45 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 17:45 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 18:02 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 18:02 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 18:02 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 18:02 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 18:07 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 18:07 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 18:07 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 18:07 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 18:21 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 18:21 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 18:21 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 18:21 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 19:22 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 19:22 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 19:22 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 19:22 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 19:51 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 19:51 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 19:51 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 19:51 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 20:13 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 20:13 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 20:13 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 20:13 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 20:49 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 20:49 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 20:49 — with GitHub Actions Inactive
@k80bowman k80bowman temporarily deployed to AcceptanceTests May 7, 2026 20:49 — with GitHub Actions Inactive
Copy link
Copy Markdown
Contributor

@tlowrimore-heroku tlowrimore-heroku left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants