aboutsummaryrefslogtreecommitdiffstats
path: root/.gitlint
blob: 736878050b9c1b4f28fb4889456ee2b3247f2d38 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
[title-match-regex]
regex=^\[[A-Z\d-]+]\[*[\w\d-]*]* [A-Z]+[\S ]*$

[body-match-regex]
regex=.{20,}

[ignore-by-title]
regex=^Release(.*)
ignore=title-match-regex,body-min-length

[ignore-body-lines]
regex=^(Issue-ID|Signed-off-by|Change-Id|Reported-by|Depends-on|Co-authored-by|Fixes|Acked-by|Reviewed-by|CC)
ld } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
[tox]
minversion = 1.6
envlist =
 docs,
 docs-linkcheck,
 gitlint,
 checkbashisms,
 pre-commit,
skipsdist=true

[doc8]
ignore-path-errors=docs/helm-search.txt;D001

[testenv:doc8]
basepython = python3.8
deps =
    -r{toxinidir}/requirements.txt
    -chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt
    -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt
commands =
 - doc8 docs/

[testenv:docs]
basepython = python3.8
deps =
    -r{toxinidir}/requirements.txt
    -chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt
    -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt
commands =
 sphinx-build -q -W -b html -n -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html

[testenv:docs-linkcheck]
basepython = python3.8
deps =
    -r{toxinidir}/requirements.txt
    -chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt
    -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt
commands = sphinx-build -q -W -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck

[testenv:spelling]
basepython = python3.8
whitelist_externals = wget
deps =
    -r{toxinidir}/requirements.txt
    -chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt
    -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt
changedir={toxinidir}/docs
commands =
    wget -nv https://git.onap.org/doc/plain/docs/spelling_wordlist.txt -O spelling_wordlist.txt
    sphinx-build -b spelling -d {envtmpdir}/doctrees . _build/spelling

[testenv:gitlint]
basepython = python3.8
deps =
    -r{toxinidir}/requirements.txt
    -chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt
    -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt
commands =
  gitlint

[testenv:checkbashisms]
deps =
whitelist_externals =
    {toxinidir}/.ci/check-bashisms.sh
commands =
    {toxinidir}/.ci/check-bashisms.sh

[testenv:shellcheck]
basepython = python3
deps = shellcheck-py
whitelist_externals = find
commands =
    find . -not -path '*/\.*' -name *.sh -exec shellcheck \{\} +

[testenv:autopep8]
basepython = python3.8
deps =
    -r{toxinidir}/requirements.txt
    -chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt
    -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt
commands =
    autopep8 --max-line-length 120 --in-place --recursive kubernetes/ TOSCA/ docs/

[testenv:pylint]
basepython = python3.8
deps =
    -r{toxinidir}/requirements.txt
    -chttps://raw.githubusercontent.com/openstack/requirements/stable/yoga/upper-constraints.txt
    -chttps://git.onap.org/doc/plain/etc/upper-constraints.onap.txt
whitelist_externals = find
commands =
    find kubernetes/ TOSCA/ docs/ -name *.py -exec pylint --max-line-length=120 --disable=missing-docstring --method-rgx="(([a-z_][a-zA-Z0-9_]{2,})|(_[a-z0-9_]*)|(__[a-zA-Z][a-zA-Z0-9_]+__))$" --variable-rgx="[a-zA-Z_][a-zA-Z0-9_]{1,30}$" --reports=y --score=y  --output-format=colorized  \{\} +

[testenv:pre-commit-install]
basepython = python3
deps = pre-commit
commands =
    pre-commit install
    pre-commit install --hook-type commit-msg

[testenv:pre-commit-uninstall]
basepython = python3
deps = pre-commit
commands =
    pre-commit uninstall
    pre-commit uninstall --hook-type commit-msg

[testenv:pre-commit]
basepython = python3
deps = pre-commit
passenv = HOME
commands =
    pre-commit run --all-files --show-diff-on-failure
    pre-commit run gitlint --hook-stage commit-msg --commit-msg-filename .git/COMMIT_EDITMSG
    # Gitlint only proposes a pre-commit configuration for the commit-msg stage but none for the commit stage.
    # Its default arguments --passed and --msg-filename are different from CI recommandations.
    # As a result, the line above is always skipped in jenkins CI since there cannot be a .git/COMMIT_EDITMSG file.
    # A dedicated gitlint profile for CI is proposed above. Also to behave fine locally, this profile must have access
    # to the HOME variable so that Gitlint can retrieve Git user settings.

[testenv:pre-commit-autoupdate]
basepython = python3
deps = pre-commit
commands =
    pre-commit autoupdate