Skip to main content

This is nabla_custom hooks package

Project description

Nabla nabla-hooks

Nabla custom git hooks

License Gitter

Quality Gate Status GitHub pull requests FOSSA Status

This project intend to be uses by all Nabla products

This project is DEPRECATED, commit validation will now be done using commitizen or commitlint still using pre-commit or opencommit

Table of contents

// spell-checker:disable

// spell-checker:enable

Initialize

Using pipenv Pipfile

direnv allow
pyenv install 3.10.9
pyenv local 3.10.9
python -m pipenv install --dev --ignore-pipfile
direnv allow
pre-commit install

Using poetry pyproject.toml

pip install -U poetry pipenv-poetry-migrate
pipenv-poetry-migrate -f Pipfile -t pyproject.toml --no-use-group-notation

Requirements

This hooks requires the following to run:

See requirements.txt for mandatory packages.

This pre-commit hooks requires the following to run:

Install nabla-hooks as a developer

Using virtualenv

Install python 3.10 and virtualenv

virtualenv --no-site-packages /opt/ansible/env312 -p python3.12
source /opt/ansible/env312/bin/activate

Install python 3.8 and pyenv

curl -L https://pyenv.run | bash
echo 'export PATH="~/.pyenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
source ~/.bashrc

pyenv install 3.12.10

and integrate it with direnv

#pip3 install -r hooks/requirements.txt -r requirements.testing.txt
pipenv check
python -m pipenv install --dev
python -m pipenv install --dev --ignore-pipfile

Install nabla-hooks to use it

Using Pip

pip install nabla-hooks

From Source

pip install git+https://github.com/AlbanAndrieu/nabla-hooks.git

Add .pre-commit-config.yaml in you git project

  1. create .pre-commit-config.yaml in you git project

example .pre-commit-config.yaml as following:

-   repo: https://github.com/AlbanAndrieu/nabla-hooks.git
    rev: v1.0.7
    hooks:
    - id: git-branches-check

Testing locally

-   repo: local
    hooks:
    -   id: git-branches-check
        name: GIT branches check
        description: Check for old stale and already merged branches from the current repo with user friendly messages and colors
        entry: pre_commit_hooks/git-branches-check.sh
        language: script
        types: [shell]
        always_run: true
        verbose: true
        args: [--max=1, --verbose]

$ pre-commit try-repo . git-branches-check --verbose

  1. Install in your repo

Run pre-commit install pre-commit install -f --install-hooks

  1. enjoy it

Run pre-commit run --all-files

Run SKIP=flake8 git commit -am 'Add key' Run git commit -am 'Add key' --no-verify

Override global environment variable

Login

See jira

With user/pass
export JIRA_USER=aandrieu
export JIRA_PASSWORD=XXX
export JIRA_URL=https://localhost/jira
export JIRA_CERT_PATH=/etc/ssl/certs/NABLA-CA-1.crt
export JIRA_CERT_PATH=/etc/ssl/certs/ca-certificates.crt
With email/token
export JIRA_USER=alban.andrieu@free.fr
export JIRA_PASSWORD=XXX # the token you generated
export JIRA_URL==https://localhost/jira
export JENKINS_URL=https://localhost/jenkins/
export JENKINS_USER=aandrieu
export JENKINS_USER_TOKEN=XXX

The Templates Directories

See git-hooks-using-python

Local

First time run

cp -r hooks/* .git/hooks/` or `rm -Rf ./.git/hooks/ && ln -s ../hooks ./.git/hooks && git checkout repo hooks/

auto_prepare_commit_message

wget -O .git/hooks/prepare-commit-msg https://raw.githubusercontent.com/commitizen-tools/commitizen/master/hooks/prepare-commit-msg.py
chmod +x .git/hooks/prepare-commit-msg
wget -O .git/hooks/post-commit https://raw.githubusercontent.com/commitizen-tools/commitizen/master/hooks/post-commit.py
chmod +x .git/hooks/post-commit

Global

We have two directories that interest us:

The /usr/share/git-core/templates/ directory on Linux and C:/Program Files (x86)/Git/share/git-core/templates/ directory on Windows (Note that on 32bit machines msysGit is installed by default on 'C:/Program Files/…') in which the default hooks are being copied from. If you installed Git using another configuration the installation might reside in a different folder. Adjust the path accordingly.

The .git/hooks/ directory is the directory in which the hooks templates are being copied to.

The hooked are being copied from the [...]/share/git-core/templates/ directory. There are other types of templates but they are out of scope for this post.

Note: If you change the templates directory the hooks directory must be a subdirectory of the templates directory. Do not set the templates directory to the desired hooks directory instead.

Run

git config --global --get init.templatedir
rm -Rf .git/hooks
git config --global init.templatedir /workspace/users/albandrieu30/nabla-hooks/

Package nabla-hooks as a developer

See setup-cfg

Build a source distribution (a tar archive of all the files needed to build and install the package):

python -m build

pip install . pip install -e ./

Upload a source distribution

See api-tokens

rm -Rf dist/
pip install setuptools
python3 setup.py sdist bdist_wheel
# Check package
twine check dist/*
nano $HOME/.pypirc
export TWINE_PASSWORD=pypi-
python3 -m twine upload --repository nabla-hooks dist/* --verbose

See nabla-hooks-1.0.7

Uploaded nabla-hooks

Test nabla-hooks as a developer

shell usage

python

from hooks import get_msg

match_msg

versioneer

versioneer

versioneer install
#check with
python setup.py version
python setup.py install

Test

source deactivate
tox --notest
tox -e py  # Run tox using the version of Python in PATH
tox -e py312

From root directory

pytest --cache-clear --setup-show hooks/tests/pytest_test.py
pytest --cache-clear --setup-show tests/test_package.py

Poetry

poetry install
poetry env info
poetry shell
poetry run pytest
poetry build
# poetry publish --build

Pdm

pdm

pdm init
pdm run flake8

Update README.md

npm install --save markdown-toc
markdown-toc README.md -i
markdown-toc CHANGELOG.md -i
pre-commit install
git add README.md
pre-commit run markdown-toc

Check syntax remark-lint

npm run lint-md

npm-groovy-lint groovy formatting for Jenkinsfile

Tested with nodejs 12 and 16 on ubuntu 20 and 21 (not working with nodejs 11 and 16)

npm install -g npm-groovy-lint@8.2.0
npm-groovy-lint --format
ll .groovylintrc.json

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

nabla_hooks-1.0.7-py2.py3-none-any.whl (71.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file nabla_hooks-1.0.7-py2.py3-none-any.whl.

File metadata

  • Download URL: nabla_hooks-1.0.7-py2.py3-none-any.whl
  • Upload date:
  • Size: 71.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.12.10 Linux/6.8.0-90-generic

File hashes

Hashes for nabla_hooks-1.0.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 55152bb85584d9f7c28f6d70c8afefaf1aea59b26e4e69cffac5632595679c6c
MD5 b633b8c1a15f9aa4d8b0ae65dfe11155
BLAKE2b-256 6147c962efbb977cd44f3d5de053e631f065ee61dedd531b9b74dc1e1b7600f1

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