Skip to main content

Contains utilities for agile sprints that use the GitHub platform.

Project description


ghsprint is a Python library to simplify boring tasks of the sprint, like generating the report for sprint review. It fetches all stories from the given project board, detects which ones were pokered (they received labels with numbers in a certain time frame), detects which ones were repokered, detects what pull-requests relate to them, and detects pull-requests of that week. Finally it outputs an markdown-formatted text for copy-pasting. It takes around 20 seconds to generate a report.


Use the package manager pip to install ghsprint.

pip install ghsprint


python -m ghsprint --special-tags "on hold" --ignore-columns "Product Backlog" --login-name-mapper alxndrjhn:Alex,strenge:Robin --keep-columns "In Progress" ae71abf4f9a41cbb6af0005de932e265614f6a317c7 Storyboard company/some-service company/someLabel company/some_extraction


access-token is a personal access-token from GitHub, ghsprint requires only access to 'repo'

project-name is the project number, this will be fetched at stories are detected for the sprint. At the moment the number is only accessible through the Github API Projects endpoint

repos is space-separated list of owner/repository pairs, all pull-requests from this repositories will be considered for the sprint report. Example: myownName/myRepo someOrganization/some_service.

Optional parameters

--keep-columns list of columns names to have in the report when fetching stories from the project board, separated by commas. Example --keep-columns "In Process"

--login-name-mapper TEXT list of mappings in the format login_name:name_to_display,..., to have better names in the report

--special-tags TEXT list of special tags in the format tag1,tag2,..., this tags are mentioned if they are attached to a story or pull request. Example --special-tags "on hold"

--ignore-columns list of columns names to ignore when fetching stories from the project board, separated by commas. Example --ignore-columns "Product Backlog,Some other column"

-v verbosity level, if not given, only the report and errors will be printed to stdout, with -v warnings will be printed as well, with -vv info messages and with -vvv debug messages

-w or --week is the calender week-number, if not given, the current week will be used. Example: --week 6 will generate the report for the 6th week of the current year.


# title

19. June - 25. June 2019

Velocity: **X**

# Leftover stories from last week
- open  [**?(1)**] [**Service issue**]( ) Alex
   - PR open [some-service #1231 Update to `some_file.txt`]( )
      - +1, -1, files changed: 1
      - Reviews: Richard > approved, Robin > approved

- open  [**?(5)**] [**Preview**]( ) Alex, Some_Island
   - PR open [some-service #1210 Preview output functionality for customers]( )
      - +1461, -153, files changed: 38
      - Reviews: Richard > changes requested, Dennis > changes requested, Emma > changes requested

- open  [**?(3)**] [**Item has two instead thingies instead of one**]( ) Emma
   - PR open [some-service #652 Less thingies]( )
      - +163, -4, files changed: 9
      - Reviews: Some_Island > changes requested, Alex > changes requested

- open  [**?(2)**] [**Get quantiles for numbers**]( ) Some_Island

# Unchanged stories
- open  [**?(None)**] [**Investigate Error**]( ) Dennis, Emma

- open  [**?(8)**] [**Create some Converter**]( ) Dennis, Richard
   - PR open [some-service #1208 some csv converter implemented]( )
      - +598, -0, files changed: 8
      - Reviews: Alex > changes requested

- open [**on hold**] [**?(None)**] [**Error message while doing something wrong**]( ) Alex, Dennis
   - PR open [someImg #167 Ignoring issues]( )
      - +8, -6, files changed: 1
      - Reviews: not reviewed

- open  [**?(3)**] [**Create Email**]( ) not assigned
   - PR open [some-service #1208 other converter]( )
      - +598, -0, files changed: 8
      - Reviews: Alex > changes requested

- open  [**?(None)**] [**Explore options**]( ) Richard, Some_Island

- open  [**?(13)**] [**Another crazy converter**]( ) Dennis, Richard
   - PR open [some-service #123 more converter]( )
      - +308, -0, files changed: 5
      - Reviews: not reviewed

- open [**on hold**] [**?(8)**] [**Tool crashing**]( ) Alex, Dennis, Richard

Format and meaning

  • [**?(2)**] means that the story was pokered a 2 (agile pokering) and the ?means that it was not repokered in the expected time frame.
  • The names behind the stories are the usernames of the assignees of the story.
  • The name behind the PR is the username of the creator of the PR

Known issues

  • Wrong settings (like access-token argument) will silently fail and give no feedback.


Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.



Project details

Download files

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

Source Distribution

ghsprint-0.5.tar.gz (13.8 kB view hashes)

Uploaded source

Supported by

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