bridge uses pass(1) even though "Helper" is "secret-service"
Expected Behavior
When the keychain helper is set to "secret-service" or "secret-service-dbus" all other helpers should not be tried
Current Behavior
All possible helpers are used in the setup, due to the isUsable() checks in init() of pkg/keychain/helper_linux.go
https://github.com/ProtonMail/proton-bridge/blob/384154c7678944d1bdafda21b1bf87f9db559d27/pkg/keychain/helper_linux.go#L75-L105
This messes up keychains that track history, in my case pass, as that adds multiple entries whenever the bridge starts. If the bridge has explicitly been told to use a certain keychain, all others should not be touched even if they seem to be available.
Possible Solution
Don't check for usability of helpers that are not configured if the user explicitly set a helper in the config
Steps to Reproduce
- Install pass, make it use the git integration
- configure the bridge to use the secret-service helper
- check the
pass git logentries, you'll see a add + remove for every invocation of the bridge
Version Information
v3.4.2 (br-165)
Thanks for the report. Internally tracked as GODT-2961.
I haven't bumped into this in a while ... today when rebooting I lost credentials and had to sign in again.