git-credential-osxkeychain has largely fallen behind other external credential helpers in the features it supports, and hasn't received any functional changes since 2013. As it stood, osxkeychain failed seven tests in the external credential helper test suite: not ok 8 - helper (osxkeychain) overwrites on store not ok 9 - helper (osxkeychain) can forget host not ok 11 - helper (osxkeychain) does not erase a password distinct from input not ok 15 - helper (osxkeychain) erases all matching credentials not ok 18 - helper (osxkeychain) gets password_expiry_utc not ok 19 - helper (osxkeychain) overwrites when password_expiry_utc changes not ok 21 - helper (osxkeychain) gets oauth_refresh_token osxkeychain also made use of macOS APIs that had been deprecated since 2014. Replacement API was able to be used without regressing the minimum supported macOS established in 5747c8072b (contrib/credential: avoid fixed-size buffer in osxkeychain, 2023-05-01). After this set of patches, osxkeychain passes all tests in the external credential helper test suite. Bo Anderson (4): osxkeychain: replace deprecated SecKeychain API osxkeychain: erase all matching credentials osxkeychain: erase matching passwords only osxkeychain: store new attributes contrib/credential/osxkeychain/Makefile | 3 +- .../osxkeychain/git-credential-osxkeychain.c | 376 ++++++++++++++---- 2 files changed, 310 insertions(+), 69 deletions(-) base-commit: 3e0d3cd5c7def4808247caf168e17f2bbf47892b Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1667%2FBo98%2Fosxkeychain-update-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1667/Bo98/osxkeychain-update-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/1667 -- gitgitgadget