Hook to validate branch name and issue
Project description
nabla-hooks
Nabla custom git hooks
This project intend to be uses by all Nabla products
Table of contents
// spell-checker:disable
- Initialize
// 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/env310 -p python3.10
source /opt/ansible/env310/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.10.9
and integrate it with direnv
#pip3.8 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
- 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.3
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
- Install in your repo
Run pre-commit install
pre-commit install -f --install-hooks
- 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
Local
First time run
cp -r hooks/* .git/hooks/` or `rm -Rf ./.git/hooks/ && ln -s ../hooks ./.git/hooks && git checkout repo hooks/
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):
python3 setup.py sdist
Builds wheels:
python3 setup.py bdist_wheel
Build from source:
python3 setup.py build
And install:
/opt/ansible/env38/bin/python3 setup.py install
sudo python setup.py develop
pip install .
pip install -e ./
Upload a source distribution
See api-tokens
rm -Rf dist/
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
All in one
python setup.py register sdist upload
Uploaded nabla-hooks
Test nabla-hooks as a developer
shell usage
python
from hooks import get_msg
match_msg
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 py310
From root directory
pytest --cache-clear --setup-show hooks/test/test_pytest.py
pytest --cache-clear --setup-show test/package.py
Poetry
poetry install
poetry env info
poetry shell
poetry run pytest
poetry build
#poetry publish --build
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for nabla_hooks-1.0.5-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13642adb8dcad208abc5e3a5e6f5aec0296e4ceeffec7bfde85763be79113f2a |
|
MD5 | 5a2bc98f1f6aa3398ced56e8e487d571 |
|
BLAKE2b-256 | 4c3115c176a97f31ecefb1dba6bee89a1395eeab7a9f222f38e2068e991f5348 |