Skip to main content

🔥 Autoflow 🔥

Automating your project workflows and making your life easier!


🔥 Introduction

Welcome to 🔥 Autoflow 🔥, the command-line tool that automates all of your project initializations and project setups!

Using this CLI, you will be able to use your time more productively by working through your project instead of going through tedious parts of the initialization workflow. You'll be able to jump to multiple projects from anywhere, start your project backends more easily, and set up new projects with less commands.

🔥 Support

  • Languages/Project types supported:
  • OS support:
  • Python versions supported:

🔥 Get Started

Let's install our package!

pip install python-af

or

pip3 install python-af

There's also one configuration that needs to be done. First, move to the package directory:

cd ~/.autoflow

There, you will find an af-config.json file. This is your global configuration file that enables Autoflow to link to your projects directory, open your text editor, or push to your GitHub. The defaults are set as below:

{
      "defaultDirectory": Path.home()
      "defaultTextEditor": "nano",
      "github_token": "${{ secrets.GITHUB_TOKEN }}"
}

Replace the default directory config with the path to wherever you keep your projects and the default text editor config with whatever you like to use for your editor(ie. "code" for VSCode). The github token config is set up for use in our CI/CD workflow and will not actually work for you. Replace it with your personal access token, which you can generate by going to github.com, going to Settings, clicking on "Developer Settings" on the right-side menu, clicking on "Personal Access Tokens" in the new menu, and clicking "Generate new token" in the right upper corner.

You are now set up to use Autoflow!

🔥 Usage

In order use Autoflow with any specific project, you will have to have a local configuration file within that project folder called af-config.json. This is how it should be set up:

{
     "type": "<project type>",
     "command": "<start server command for project>"
}

This is to ensure that the af start command works properly and starts your project backend if you have one. The project types supported are listed in the Support section.

In order to have these instructions again and see the commands you can run, run this command in your terminal: af --help. This will give you everything you need to start using this package and is similar to the instructions found here.

🔥 Autoflow in Action

🔥 Command: af jump

autoflow git-cli

🔥 Command: af new

autoflow git-cli

🔥 Command: af start

autoflow git-cli

🔥 Command: af git-cli

autoflow git-cli

🔥 Tech Stack:

  • CLI Backend:
  • Languages:
  • Testing:
  • CI/CD:
  • Version Control:

🔥 Testing

We used multiple tools to enable unit testing and CI/CD for this project. For testing, we used pytest and click.testing to invoke the commands and test their outputs in several situations in one test script. This test script is setup to work with GitHub Actions, which is what we used for our CI/CD workflow. We were able to implement unit tests in this way, and all the tests are commented through to enable easy read-through for other potential contributors.

GitHub actions allowed us to run multiple builds with multiple operating systems(macOS and Ubuntu) and multiple python versions(3.6, 3.7, 3.8). Once we add support for Windows, we will add that build to our matrix as well. As of right now, every time we push to the main branch of this project or merge something to the main branch, the GitHub actions testing workflow will run.

We will also be using releases to keep track of our versions. Our version released on November 24th will be version 1.

🔥 What We Learned

  • Subprocesses in Python
  • Testing with pytest
  • Linting with flake8
  • Setting up CI/CD with GitHub Actions
  • Building a CLI with Python
  • Publishing a package to PyPi
  • Using the GitHub API for our CLI

In regards to soft skills, we learned to ask for help from our MLH mentors instead of trying to solve problems with little success.

🔥 Contributing

Autoflow is fully Open-Source and open for contributions! We request you to respect our contribution guidelines as defined in our CODE OF CONDUCT and CONTRIBUTING GUIDELINES.

❤ Contributors

Made with ❤️️ by Team Autoflow as part of MLH Explorer Fall Fellowship 2020 Sprint 4.

Metadata

Release files for python-af 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for python-af 1.0.0
File Size Uploaded
python-af-1.0.0.tar.gz 19.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for python-af 1.0.0
File Interpreter ABI Platform
python_af-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 38.1 kB

Release files / python-af-1.0.0.tar.gz

Download URL python-af-1.0.0.tar.gz
Size 19.9 kB
Tags Source
SHA-256 checksum
How to use checksums
031e6b3431313f4aebcde4b8a1ab9b23880853020d46b302ba15f63747046a87
BLAKE2b-256 checksum
How to use checksums
cf4e2f19014667e5eebd38f6c2515393adabf12b6003a9de9f3b88121c0e22e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.23.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.6

Release files / python_af-1.0.0-py3-none-any.whl

Download URL python_af-1.0.0-py3-none-any.whl
Size 18.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bea5927b71861651b3d324aa34a060997cfb8fe1969f4f1144ff497ee23b682b
BLAKE2b-256 checksum
How to use checksums
21e701b3af264eb248739b1e080b02bfc75036dae3094984378b6b1a8ca576d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.6.1 requests/2.23.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.6

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page