extensions icon indicating copy to clipboard operation
extensions copied to clipboard

Add: Password Store Extension

Open aetiosfokeas opened this issue 1 year ago • 6 comments

Description

Raycast Extension for copying/pasting credentials from your password store (aka pass)

Screenshot

01-pass-list 02-pass-list-order 03-pass-details 04-pass-details-order 05-pass-actions

Checklist

aetiosfokeas avatar Jun 29 '24 09:06 aetiosfokeas

Congratulations on your new Raycast extension! :rocket:

We're currently experiencing high demand and limited capacity. As a result, extension reviews might take longer than usual to get the initial review. Please expect an initial review within 5-10 business days.

Once the PR is approved and merged, the extension will be available on our Store.

Sorry for the inconvenience

raycastbot avatar Jun 29 '24 09:06 raycastbot

Hi! Thank you for your contribution! My name is Milena and I will be reviewing it today.

I tried using your extension, but I couldn't make pass work. Do you know where I can find a dummy pass file to try with? Or do you mind making a video using your extension?

mil3na avatar Jul 04 '24 09:07 mil3na

Hi! Thank you for your contribution! My name is Milena and I will be reviewing it today.

I tried using your extension, but I couldn't make pass work. Do you know where I can find a dummy pass file to try with? Or do you mind making a video using your extension?

Hi @mil3na,

I can not provide you with a dummy pass file. The file needs to be generated by you so that it's encrypted (and later decrypted) using your own GPG key. You can install pass using the following command brew install pass (following the instructions of the official pass website). After that you need to also have a GPG key. To generate a GPG key (if you don't already have one) you can follow Github's own docs for Generating a new GPG key Finally, you will be able to initialize the password store: pass inint <GPG KEY ID>, and insert a couple of password (ex. pass insert Dev/Github/work, pass insert Dev/Github/personal, etc).

After that, the extension should work.

Let me know if you need anything else from me!

aetiosfokeas avatar Jul 04 '24 11:07 aetiosfokeas

Aha! Thank you! The GPG key was not clear to me, and that was what was missing! I managed to make it list the passwords I setup, but I can't decrypt

Error: Command failed: export PATH=$PATH:/opt/homebrew/bin && pass Dev/Github/personal
gpg: public key decryption failed: No such file or directory
gpg: decryption failed: No such file or directory

    at ChildProcess.exithandler (node:child_process:422:12)
    at ChildProcess.emit (node:events:514:28)
    at ChildProcess.emit (node:domain:488:12)
    at maybeClose (node:internal/child_process:1105:16)
    at Socket.<anonymous> (node:internal/child_process:457:11)
    at Socket.emit (node:events:514:28)
    at Socket.emit (node:domain:488:12)
    at Pipe.<anonymous> (node:net:337:12)

Any ideas what I did wrong? And I hope the users of this extension are more knowledgeable than me on this matter 😅

mil3na avatar Jul 05 '24 08:07 mil3na

And I hope the users of this extension are more knowledgeable than me on this matter 😅

I assumed that the users of this extension would already be familiar with the pass command and setup.

Any ideas what I did wrong?

It looks like the extension could not decrypt the password file. Most likely because it doesn't have the password. There are two solutions for that.

  1. You can store your password in macOS Keychain (that is why it was working on my Macbook, I already had the GPG password saved)
  2. I added a new 'preferences' option to save the GPG password directly in the extension. Please let me know if either of those two options worked for you.

aetiosfokeas avatar Jul 07 '24 12:07 aetiosfokeas

That preference definitely helped! But I'm still getting errors:

Error: Command failed: export PATH=$PATH:/opt/homebrew/bin && gpg  -d /Users/milena/.password-store/Dev/Github/work.gpg
gpg: encrypted with rsa3072 key, ID F62CD0F2A60E38B7, created 2024-07-05
      "Milena <myemail>"
gpg: public key decryption failed: Inappropriate ioctl for device
gpg: decryption failed: Inappropriate ioctl for device

    at ChildProcess.exithandler (node:child_process:422:12)
    at ChildProcess.emit (node:events:514:28)
    at ChildProcess.emit (node:domain:488:12)
    at maybeClose (node:internal/child_process:1105:16)
    at ChildProcess._handle.onexit (node:internal/child_process:305:5)

Any ideas? Feel free to contact me on Slack (https://raycast.com/community) if you feel it would be faster that way.

mil3na avatar Jul 09 '24 11:07 mil3na

Published to the Raycast Store: https://raycast.com/afok/password-store

github-actions[bot] avatar Jul 11 '24 13:07 github-actions[bot]

:tada: :tada: :tada:

Such a great contribution deserves a reward, but unfortunately we couldn't find your Raycast account based on your GitHub username (@aetiosfokeas). Please link your GitHub account to your Raycast account to receive your credits and soon be able to exchange them for some swag.

raycastbot avatar Jul 11 '24 13:07 raycastbot