{ "info": { "author": "Alexander Jahn", "author_email": "jahn.alexander@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Utilities" ], "description": "# ghsprint\n\nghsprint 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.\n\n## Installation\n\nUse the package manager [pip](https://pip.pypa.io/en/stable/) to install ghsprint.\n\n```bash\npip install ghsprint\n```\n\n## Usage\n\n```bash\npython -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\n```\n\n### Arguments\n`access-token` is a [personal access-token from GitHub](https://github.com/settings/tokens), `ghsprint` requires only access to 'repo'\n\n`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](https://developer.github.com/v3/projects/#list-repository-projects)\n\n`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`.\n\n### Optional parameters\n`--keep-columns`\nlist of columns names to have in the report when fetching stories from the project board, separated by commas. Example `--keep-columns \"In Process\"`\n\n`--login-name-mapper TEXT`\nlist of mappings in the format `login_name:name_to_display,...`, to have better names in the report\n\n`--special-tags TEXT`\nlist 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\"`\n\n`--ignore-columns`\nlist of columns names to ignore when fetching stories from the project board, separated by commas. Example `--ignore-columns \"Product Backlog,Some other column\"`\n\n`-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\n\n`-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.\n\n## Output\n```\n# title\n\n19. June - 25. June 2019\n\nVelocity: **X**\n\n# Leftover stories from last week\n- open [**?(1)**] [**Service issue**](https://github.com/company/some-service/issues/123 ) Alex\n - PR open [some-service #1231 Update to `some_file.txt`](https://github.com/company/some-service/pull/1231 )\n - +1, -1, files changed: 1\n - Reviews: Richard > approved, Robin > approved\n\n- open [**?(5)**] [**Preview**](https://github.com/company/some-service/issues/1234 ) Alex, Some_Island\n - PR open [some-service #1210 Preview output functionality for customers](https://github.com/company/some-service/pull/1210 )\n - +1461, -153, files changed: 38\n - Reviews: Richard > changes requested, Dennis > changes requested, Emma > changes requested\n\n- open [**?(3)**] [**Item has two instead thingies instead of one**](https://github.com/company/some-service/issues/12 ) Emma\n - PR open [some-service #652 Less thingies](https://github.com/company/some-service/pull/652 )\n - +163, -4, files changed: 9\n - Reviews: Some_Island > changes requested, Alex > changes requested\n\n- open [**?(2)**] [**Get quantiles for numbers**](https://github.com/company/some-service/issues/51 ) Some_Island\n\n# Unchanged stories\n- open [**?(None)**] [**Investigate Error**](https://github.com/company/some-service/issues/16 ) Dennis, Emma\n\n- open [**?(8)**] [**Create some Converter**](https://github.com/company/some-service/issues/73 ) Dennis, Richard\n - PR open [some-service #1208 some csv converter implemented](https://github.com/company/some-service/pull/484 )\n - +598, -0, files changed: 8\n - Reviews: Alex > changes requested\n\n- open [**on hold**] [**?(None)**] [**Error message while doing something wrong**](https://github.com/company/some-service/issues/95 ) Alex, Dennis\n - PR open [someImg #167 Ignoring issues](https://github.com/company/someImg/pull/76 )\n - +8, -6, files changed: 1\n - Reviews: not reviewed\n\n- open [**?(3)**] [**Create Email**](https://github.com/company/some-service/issues/47 ) not assigned\n - PR open [some-service #1208 other converter](https://github.com/company/some-service/pull/214 )\n - +598, -0, files changed: 8\n - Reviews: Alex > changes requested\n\n- open [**?(None)**] [**Explore options**](https://github.com/company/some-service/issues/756 ) Richard, Some_Island\n\n- open [**?(13)**] [**Another crazy converter**](https://github.com/company/some-service/issues/4 ) Dennis, Richard\n - PR open [some-service #123 more converter](https://github.com/company/some-service/pull/123 )\n - +308, -0, files changed: 5\n - Reviews: not reviewed\n\n- open [**on hold**] [**?(8)**] [**Tool crashing**](https://github.com/company/some-service/issues/1204 ) Alex, Dennis, Richard\n```\n\n### Format and meaning\n- `[**?(2)**]` means that the story was pokered a 2 ([agile pokering](https://www.mountaingoatsoftware.com/agile/planning-poker)) and the `?`means that it was not repokered in the expected time frame.\n- The names behind the stories are the usernames of the assignees of the story.\n- The name behind the PR is the username of the creator of the PR\n\n## Known issues\n- Wrong settings (like access-token argument) will silently fail and give no feedback.\n\n## Contributing\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\n\nPlease make sure to update tests as appropriate.\n\n## License\n[GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html)", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/AlxndrJhn/ghsprint/archive/0.5.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/AlxndrJhn/ghsprint", "keywords": "GitHub,utilities,reporting,sprint", "license": "GNU GPLv3", "maintainer": "", "maintainer_email": "", "name": "ghsprint", "package_url": "https://pypi.org/project/ghsprint/", "platform": "", "project_url": "https://pypi.org/project/ghsprint/", "project_urls": { "Download": "https://github.com/AlxndrJhn/ghsprint/archive/0.5.tar.gz", "Homepage": "https://github.com/AlxndrJhn/ghsprint" }, "release_url": "https://pypi.org/project/ghsprint/0.5/", "requires_dist": null, "requires_python": "", "summary": "Contains utilities for agile sprints that use the GitHub platform.", "version": "0.5" }, "last_serial": 5476687, "releases": { "0.4": [ { "comment_text": "", "digests": { "md5": "c97d3ffc8a4bdee59b3e21dbefa807c4", "sha256": "46d0223c44df44493b76049c5cda8c2a76837cbbe873b1c24d1baf3bb99cc1d2" }, "downloads": -1, "filename": "ghsprint-0.4.tar.gz", "has_sig": false, "md5_digest": "c97d3ffc8a4bdee59b3e21dbefa807c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13821, "upload_time": "2019-06-21T18:10:00", "url": "https://files.pythonhosted.org/packages/73/dc/72314a3d0533fc6ffa42e33260efd608bfcc21649408a0ddda3d5c0e446a/ghsprint-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "9c59a9b9a74fab729f643972f600cfa3", "sha256": "2a7a8d54485c5ac03412d97b05666b292ca313551b18ab6e26d2ea40740a1076" }, "downloads": -1, "filename": "ghsprint-0.5.tar.gz", "has_sig": false, "md5_digest": "9c59a9b9a74fab729f643972f600cfa3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13850, "upload_time": "2019-07-02T12:39:06", "url": "https://files.pythonhosted.org/packages/5e/67/bdc8494ed24e2ea3525088cd34a37d51009b84740388cf1f71931348681b/ghsprint-0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9c59a9b9a74fab729f643972f600cfa3", "sha256": "2a7a8d54485c5ac03412d97b05666b292ca313551b18ab6e26d2ea40740a1076" }, "downloads": -1, "filename": "ghsprint-0.5.tar.gz", "has_sig": false, "md5_digest": "9c59a9b9a74fab729f643972f600cfa3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13850, "upload_time": "2019-07-02T12:39:06", "url": "https://files.pythonhosted.org/packages/5e/67/bdc8494ed24e2ea3525088cd34a37d51009b84740388cf1f71931348681b/ghsprint-0.5.tar.gz" } ] }