Skydio / revup

Effortlessly create and manage pull requests without changing branches. Powers a stacked diffs workflow with python and git "plumbing" commands.
https://github.com/Skydio/revup
MIT License
303 stars 58 forks source link

Password protected keys unsupported #33

Open gbalke opened 1 year ago

gbalke commented 1 year ago

Describe the bug Password protected SSH keys lead to revup hanging/crashing.

Expected behavior Be prompted to type in ssh key's password.

To Reproduce Use an ssh key with a password and then run revup upload

Logs

⠸ Pushing remote branches… <-- revup hangs on this line
W: git@github.com: Permission denied (publickey).
   fatal: Could not read from remote repository.

   Please make sure you have the correct access rights
   and the repository exists.

Traceback (most recent call last):
  File "/home/greg/.local/bin/revup", line 5, in <module>
    from revup import __main__
  File "/home/greg/.local/lib/python3.8/site-packages/revup/__main__.py", line 10, in <module>
    sys.exit(asyncio.run(main()))
  File "/usr/lib/python3.8/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
    return future.result()
  File "/home/greg/.local/lib/python3.8/site-packages/revup/revup.py", line 340, in main
    return await upload.main(
  File "/home/greg/.local/lib/python3.8/site-packages/revup/upload.py", line 88, in main
    await topics.push_git_refs(git_ctx.author, args.create_local_branches)
  File "/home/greg/.local/lib/python3.8/site-packages/revup/topic_stack.py", line 912, in push_git_refs
    await self.git_ctx.git(*push_args, stderr=subprocess.PIPE)

Workaround I enabled session unlock of the key using an ssh agent. I don't think this is a solution as some people may be interested in authenticating for each push: https://stackoverflow.com/a/18915067

hi-mel commented 1 month ago

I found using keychain easier here, see https://stackoverflow.com/a/24902046