I have two accounts in github. I found I cannot save them both as OAuth, so I save one as OAuth, one as basic. I use ssh for OAuth account, https and password for basic account.
Every time when I commit to basic account, source tree will ask for the github password. Even I select "save to keychain", it still ask me next time. The account page have password saved already, and I can refresh remote repo in the basic account without need of inputing password.
I checked keychain in my mac, it only have the OAuth login saved, no 2nd github login found. So it seemed that sourcetree didn't save the login to keychain successfully.