-
Notifications
You must be signed in to change notification settings - Fork 18
feat: add pass (password-store) provider #51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds support for the Unix password manager pass (password-store) as a new secret provider. The implementation follows the dotenv provider pattern, storing all secrets in a single GPG-encrypted entry using KEY=value format to minimize GPG decryption operations.
Key changes:
- Full read/write provider implementation with KEY=value storage format
- Integration tests and provider registration
- Documentation for installation and usage
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
secretspec/src/provider/pass.rs |
New pass provider implementation with read/write operations using pass show and pass insert commands |
secretspec/src/provider/mod.rs |
Module registration for the pass provider |
secretspec/src/provider/tests.rs |
Integration tests for pass provider creation, URI parsing, and write capability verification |
test-pass.toml |
Test configuration file (should be relocated to tests/fixtures/) |
docs/src/content/docs/providers/pass.md |
User documentation covering installation, configuration, and usage examples |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
8ee5b41 to
70d2709
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
70d2709 to
e6255b5
Compare
Add provider for Unix password manager 'pass' with hierarchical storage.
- Stores secrets at: secretspec/{project}/{profile}/{key}
- One pass entry per secret (consistent with keyring/OnePassword/LastPass)
- Uses project and profile parameters for namespacing
- Supports both reading and writing secrets
- Requires pass CLI and GPG configuration
- Default password store: ~/.password-store
- Includes tests and documentation
- Example: pass://
Fixes cachix#12
e6255b5 to
d92f6a8
Compare
|
@domenkozar made the change. personally i'm using pass with yubikey, which is why i originally wanted a single gpg file for all secrets (one yubikey touch to decrypt everything vs touching it for every secret). but i understand the consistency argument with other providers. let me know if there's a better way to handle the yubikey touch UX or if we should just keep it as-is for consistency |
Add support for the Unix password manager
pass(password-store) as requested in #12.Features
secretspec/{project}/{profile}/{key}secretspec import dotenv://.envto migrate from plaintext to encrypted storageImplementation
~/.password-store/secretspec/{project}/{profile}/{key}.gpgpass show secretspec/{project}/{profile}/{key}for readingpass insert -e -f secretspec/{project}/{profile}/{key}for writingUsage Example
Storage Structure
Fixes #12