A Django-specific implementation of Fabric

pip install automation==0.4.0



Build Status

This module implements Fabric to perform the following tasks:

  • fab refresh to sync your database with the servers and rsync your media assets.
  • fab topic to create a new topic-specific branch
  • fab sync to pull changes from the master branch into your local topic branch.
  • fab merge to merge the changes from your topic branch back into master, or merge the master branch into the production branch.
  • fab pull_request to submit a pull request on GitHub for your topic to be merged into the production branch
  • fab deploy to run a "fast" or "full" deploy to either staging or production servers


Automation requires hub to perform GitHub pull requests.


Install via pip:

$ pip install automation

Create fabfile.py in your project's root directory and tell automation about your project, then import automation:

from fabric.api import env

env.project_name = 'myproject'
env.repo_source = 'git@github.com:myname/myproject.git'
env.django_settings_module = 'myproject.settings'
env.django_test_settings_module = 'myproject.test_settings'
env.roledefs = {
  'staging': ['web@'],
  'production': ['web@']}

from automation import *


Exactly as mentioned above, just enter the command in your shell. Note that you must be in your project's directory (or a sub-directory) thereof for Fabric to be able to find your fabfile.


~/projects/myproject $ fab topic


Email any questions to dustin@dustinfarris.com or report issues on GitHub