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.

Filename, size & hash SHA256 hash help File type Python version Upload date
pulsar_agile-0.5.0-py3-none-any.whl (31.3 kB) Copy SHA256 hash SHA256 Wheel 3.5
pulsar-agile-0.5.0.tar.gz (23.9 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page