Skip to main content

A Python package that parses a specific PR template given a list of PRs and generates release notes form them.

Project description

# Setup pip install release-notes-generator

This will provide a self-documenting command line tool under the name: release_notes

You can ask for help as you would expect: release_notes –help

You will need to set your github access token to use it: export GITHUB_API_TOKEN = <token>

# Usage You can fetch release notes like: release_notes getfor auto_pipeline

By default this will look for an existing release and try to parse out the pr numbers from it’s description. Alternatively, you can use a file: release_notes getfor auto_pipeline –source pr_numbers.txt

Either way will output to the console release notes of the following form: ` h2. SOME TITLE CHANGE_TYPE: UI DESCRIPTION: Some descriptions JIRA TICKET: LIMS-123 PULL REQUEST: 123 RISK: LOW RISK DESCRIPTION: Some description `

Optionally redirect to a file: release_notes getfor auto_pipeline > release_notes.txt

# How this Works You can look at cli.py for an example of how to use this script.

Essentially, cli.py runs the following where the token variable is looking for GITHUB_API_TOKEN to be set.

`python ReleaseNoteGenerator(token, repository_name=repository_name).release_notes() ReleaseNotesFormatter.output(notes) `

ReleaseNoteGenerator parses the PR numbers from the latest release, if no release exists it will return nothing. It then passes the PR numbers to the pr fetcher which grabs the descriptions. A good entry point it to look at ReleaseNoteGenerator.release_notes

# Future Work This is a quick and dirty initial implementation and we should expand this for easy reuse.

[Complete] Iteration 1: Packaging and Interface Features - command line interaction to run with a repository_name arg ` # print output to the screen release_notes auto_pipeline --print ` - packaging for easy pip install and use across LIMS projects (ie. use in individual release scripts) - document API

Iteration 2: Granularity and Robustness Features - expose the PRFetcher so that we are not coupled to fetching the initial list purely from - add ability to diff the latest release and previous release and auto generate pr numbers (is this in the ARMS release script?) - auto generate tag and release adding the PRs to the release notes

Other Features: - tests - auto ignore markdown comments - filter out heading fields in the description and only parse the one line description - include full pull request links

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

release_notes_generator-1.2.1.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

release_notes_generator-1.2.1-py2-none-any.whl (7.8 kB view details)

Uploaded Python 2

File details

Details for the file release_notes_generator-1.2.1.tar.gz.

File metadata

  • Download URL: release_notes_generator-1.2.1.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.10.0 setuptools/28.8.0 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/2.7.14

File hashes

Hashes for release_notes_generator-1.2.1.tar.gz
Algorithm Hash digest
SHA256 3334fddd09395071192c69c489f4d85bd205f2eed7a13980627c578cfbd5e430
MD5 5bc9e9cbad3b8101c5290c84b319c251
BLAKE2b-256 9accdd8b6aaf0e2103e08d77f72d6e4d58c3fa85f455d8a9d0f09d8ddd0e5c2c

See more details on using hashes here.

File details

Details for the file release_notes_generator-1.2.1-py2-none-any.whl.

File metadata

  • Download URL: release_notes_generator-1.2.1-py2-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.10.0 setuptools/28.8.0 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/2.7.14

File hashes

Hashes for release_notes_generator-1.2.1-py2-none-any.whl
Algorithm Hash digest
SHA256 967702e1c34996d05abf498c6403da96a8458ea7221f92037dc0e39f9c365356
MD5 5810cea3d03d1ac9d4f2ee6c7d511986
BLAKE2b-256 4f15392adfa94bba00232896af579f4f7000df2626b86cb3841285fd9578a596

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page