Skip to main content

Flake8 plugin to check that every TODO, FIXME, QQ etc comment has a JIRA ID next to it.

Project description

Flake8 JIRA TODO Checker

CircleCI PyPI PyPI PyPI PyPI

Flake8 plugin to check that:

  1. Every TODO, FIXME, QQ etc comment has a JIRA ID next to it.
  2. Every JIRA ID refers to a JIRA card which is not closed.

In other words, this is valid as long as the JIRA card ABC-123 is not closed:

def hacky_function():
    # TODO ABC-123 Stop reticulating splines
    ...

However this would raise the new flake8 error JIR001:

def hacky_function():
    # TODO Stop reticulating splines
    ...

Configuration

jira-project-ids

A list of valid JIRA project IDs can be provided via the flag --jira-project-ids or via the key jira-project-ids in a flake8 configuration file, e.g.

jira-project-ids = ABC,DEF

If no project IDs are provided then all TODOs will be rejected.

todo-synonyms

A list of words which will be treated like TODO can be provided via the flags --allowed-todo-synonyms and --disallowed-todo-synonyms or via the key allowed-todo-synonyms and disallowed-todo-synonyms in a flake8 configuration file.

disallowed-todo-synonyms will raise an error whenever found in the codebase, and allowed-todo-synonyms will raise an error only if it's missing a JIRA card or that JIRA card is invalid.

Defaults to:

allowed-todo-synonyms = TODO
disallowed-todo-synonyms = FIXME,QQ

jira-server

The URL of the JIRA server, if unset the status of JIRA cards won't be checked.

disallowed-jira-statuses, disallowed-jira-resolutions, and disallow-all-jira-resolutions

If a TODO is attached to a JIRA issue whose status is in disallowed-jira-statuses then an error will be reported, ditto if the JIRA card has a resolution in disallowed-jira-resolutions. If disallow-all-jira-resolutions is set to True, then report an error if issue has any resolution.

Defaults to:

disallowed-jira-statuses = Done
disallow-all-jira-resolutions = True

JIRA Authentication

We support the same authentication methods as the jira-python library.

For cookie-based username/password authentication, use the following configuration parameters:

  1. jira-cookie-username
  2. jira-cookie-password

For HTTP Basic username/password authentication, use the following configuration parameters:

  1. jira-http-basic-username
  2. jira-http-basic-password

For OAuth authentication, use the following configuration parameters:

  1. jira-oauth-access-token
  2. jira-oauth-access-token-secret
  3. jira-oauth-consumer-key
  4. jira-oauth-key-cert-file

For kerberos authentication, set the jira-kerberos configuration parameter to True.

Alternatives

This project is heavily inspired by the Softwire TODO checker.

Releasing

  1. poetry run bump2version minor
  2. git push && git push --tags
  3. tox -e pypi

TODO

Test and add instructions for JIRA cloud.

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

flake8-jira-todo-checker-0.4.0.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

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

flake8_jira_todo_checker-0.4.0-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file flake8-jira-todo-checker-0.4.0.tar.gz.

File metadata

  • Download URL: flake8-jira-todo-checker-0.4.0.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.10 CPython/3.8.5 Linux/5.7.12-050712-generic

File hashes

Hashes for flake8-jira-todo-checker-0.4.0.tar.gz
Algorithm Hash digest
SHA256 e37a883de73e171e0c044e8cb947024af3f590769bfa556a78523f28539bcf89
MD5 64c780d3bfd7e63cd59a60a80bbe082c
BLAKE2b-256 6b8787995ea90b44e153312cf9dc41bf9886fd616c7cb2d724e0b75d8b09cb53

See more details on using hashes here.

File details

Details for the file flake8_jira_todo_checker-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for flake8_jira_todo_checker-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5a2da964e272f156eb26884f2112c2216f72afa098f94ecc956f560667629885
MD5 19bdc130ac2e6bf0e7131fbc733bf1bb
BLAKE2b-256 2893736d0f08fd111f7f15fbe18067073dbb95a9e317339b49ac628bc7f53f40

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