Skip to main content

Python toolkit for agile release managing, building and issue tracking

Project description

Toolkit for agile development with python, git, github, docker and aws

Badges:license pyversions status pypiversion
Master CI:master-build coverage-master
Mailing list:google user group
Design by:Quantmind and Luca Sbardella
Platforms:Linux, OSX, Windows. Python 3.5 and above
Keywords:git, github, python, aws, release, documentation


This is a python package for aiding deployment and dev-ops type operations on the local machine. To install the package you need python 3.5 or above:

pip install -U pulsar-agile


Once installed, create the script inside of your repository:

if __name__ == '__main__':
    from import AgileManager
    AgileManager(description='Release manager for my package').start()

and create the agile.json file along side it.


Check tasks available:

python -l


When running tasks, the logging level is by default set to info. For a more verbose logging pass --log-level agile.debug.



Pulsar agile contains two commands which interacts with github:

  • labels
  • release


Before using github commands one needs to configure the .gitconfig file by adding the username and the token. The token is obtained from github from the personal access tokens page:

  email = ...
  username = lsbardel
  token = bqedoeunzplesw52tme00zwuj2lhbjr8emrbrxax


Keep labels consistent across repositories. To add a label command create the labels entry in the agile.json file:

    "labels": {
        "group1": {
            "repositories": [
            "labels": {
                "aws": "e47911",
                "benchmark": "006b75"
    "tasks": {
        "repo-labels": {
            "description": "Update labels in all repositories",
            "command": ["labels"]

and run the repo-labels command:

python repo-labels


Release dry run:

python release

Release push:

python release --push


Copy files over an Http connection. For example:

"httpcopy": {
    "sockjs": {
        "src": "{{ sockjs_version }}/sockjs.js",
        "target": "/media/"


Compile scss files using SASS


Run arbitrary commands on the shell


Transform jinja2 templates files into new files with context dictionary given in the agile.json or other json files. It can also replace ad-hoc string via the replace directive.


To run unit tests, create a file alongside this file and add the following two entries:

import os

os.environ['GITHUB_USERNAME'] = "<username for token>"
os.environ['GITHUB_TOKEN'] = "<generate one from>"
os.environ['GITHUB_TEST_REPO'] = "<username>/<reponame>"

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pulsar-agile, version 0.5.0
Filename, size File type Python version Upload date Hashes
Filename, size pulsar_agile-0.5.0-py3-none-any.whl (31.3 kB) File type Wheel Python version 3.5 Upload date Hashes View
Filename, size pulsar-agile-0.5.0.tar.gz (23.9 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page