Contributing to Passpie
***********************
Whether reporting bugs, discussing improvements and new ideas or writing
extensions: Contributions to Passpie are welcome! Here's how to get started:
1. Check for open issues or open a fresh issue to start a discussion around
a feature idea or a bug
2. Fork `the repository `_
clone your fork and start making your changes
3. Write a test which shows that the bug was fixed or that the feature works
as expected
4. Send a pull request and bug the maintainer until it gets merged and
published ☺
Documentation
=============
Passpie documentation is always open to improvements, to help passpie with better documentation. Passpie documentation is hosted on https://readthedocs.org and documentation files are written in `RestructuredText for Sphinx `_
Coding
======
::
git clone https://github.com/marcwebbie/passpie.git
cd passpie
virtualenv .venv && source .venv/bin/activate
make develop
make
Importers
=========
Importers should be independent pluggable code. To add a new importer. Create python module into importers package. If you were writting an importer to a site called ``superpassword``.
::
touch passpie/importers/superpassword.py
This importer should inherit from ``passpie.importers.BaseImporter`` and override two methods:
+ ``match``: This method should check file passed as filepath and see if it is parseable and can be read by importer
+ ``handle``: Return parsed credentials from file. The return must be a list of credentials with plain text passwords
.. code-block:: python
from passpie.importers import BaseImporter
class DefaultImporter(BaseImporter):
def match(self, filepath):
return True
def handle(self, filepath):
credentials = []
return credentials