Metadata-Version: 2.1
Name: plush-fabric
Version: 1.0.8
Summary: Helper library for Fabric to simplify creating and managing GitHub deploy keys when deploying GitHub-hosted repositories
Author-email: Kevin Barnes <kbarnes3@gmail.com>
Project-URL: Homepage, https://github.com/kbarnes3/Plush
Project-URL: Issues, https://github.com/kbarnes3/Plush/issues
Keywords: Fabric,GitHub,deployment
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE.TXT
Requires-Dist: oauth2client>=4.1.3
Requires-Dist: PyGithub>=2.5.0
Requires-Dist: keyring>=25.5.0
Requires-Dist: fabric>=3.2.2
Requires-Dist: colorama>=0.4.6
Provides-Extra: test
Requires-Dist: pylint; extra == "test"
Provides-Extra: publish
Requires-Dist: build; extra == "publish"
Requires-Dist: twine; extra == "publish"

Plush
==============

A helper library for [Fabric](https://www.fabfile.org) to simplify creating and managing GitHub deploy keys when deploying your GitHub-hosted
repository. Currently, Plush is only tested on Ubuntu 24.04 LTS.

Plush aims to make deployments easier by:
- Using OAuth flows to securely connect to the GitHub API on your behalf
(while supporting 2 factor auth and never handling your username/password)
- Generating SSH deploy keys on your target server/computer
- Registering these deploy keys with your GitHub repo programmatically
- Configuring your new clone to use the appropriate deploy key while not conflicting with other 
SSH keys used elsewhere on your server
- ACL'ing these keys so they can be reused by people to fetch/deploy on your behalf
(and not readable by anyone else on the server)
- Example PowerShell scripts are provided that give tab completion around fab.exe

To see this project in action, follow the directions in Setup-Dev-Environment.md. You will need access to an Ubuntu 24.04 machine (ideally a VM).

## Usage

This project is intended to be used by projects that use or are considering [Fabric](https://www.fabfile.org) for their deployments. Plush versions 1.0 and greater expect Fabric 3.2.2 and greater. In a project that uses Fabric, install Plush by running:

```
pip install plush-fabric
```

To get started, see the fabfile.py in this repo for a minimal usage of Plush. For a more complete example, see my [BaseDjangoAngular template](https://github.com/kbarnes3/BaseDjangoAngular).
