Package: kgitb
Комитет Git’a БезопасностиКомитет Git’a Безопасности (КGitБ) or Git security committee, is a
commit message style enforcer. It comes in two parts, a web hook for
github (lubyanka) and a local git commit-msg hook (resident). In an
ideal world, a local hook should be enough, in practice, mistakes
happen. The KGitB is here to ensure no mistakes are ever allowed through
to infect your master branch.examplesfailingpassingresidentResident can be installed using pip using the following command. If you
have a permission errors try using the –user flag with pip and add
~/.local/bin to your path. It should not require any dependencies.pip install kgitbTo install in a local repository, go into it and run:resident install --localTo set it up in another repository or multiple repository, you can path
it a path to the repositor(y/ies) that you want to install it to:resident install --path PATH_TO_REPO1 PATH_TO_REPO2To set it up globally.WARNING 0: Only works with git 2.9.0+WARNING1: If it hasn’t been set yet, this option will set the
core.hooksPath value in your.gitconfigto$HOME/.config/git-global-hooks. This will disable all local hooks in
your repositories. If this is not what you want, you might want to have
a look at hook templates.WARNING2: global means for the user, system setup hasn’t been
implemented (yet, PR anyone?).resident install --globalIf the webhook is correctly set up, you should see aAPPROVED BY THE KGitB.line when you commit something, or if there
are errors, the commit will fail with a description of the errors.Currently there are no options to select. They will be added at a later
point.lubyankaLubyanka is the headquarters of all residents. It should be run on a
server and setup with github to check all pull-requests. As excpected,
if there are any violations, lubyanka will submit a helpful if somewhat
authoritative comment message and set the status to error. If there are
no violations it will set the status to success and congragulate you on
a job well done.To run lubyanka, get a copy of the code, install the requirements and
execute it with the following commands:git clone https://github.com/Sagacify/komitet-gita-bezopasnosti.git
cd komitet-gita-bezopasnosti
pip install -r requirements.txt
GH_TOKEN=`YOUR GITHUB TOKEN HERE` python -m kgitbIf you use docker remember to set the GH_TOKEN environment variable and
link to port 5000.The github token is needed to write comments, set the pr status as well
as access any private repo.docКGitБ conventions are closely related to theangularJS commit
conventionsslightly revised as follow.Commit Message FormatEach commit message consists of aheader, and optionaly abodyand afooter. The header has a special format that includes atype, ascopeand asubject:<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>Theheaderis mandatory.Any line of the commit message cannot be longer72characters! This
allows the message to be easier to read on GitHub as well as in various
git tools.Typefeat: A new featurefix: A bug fixchore: Project boring stuff (like bumping a dependency version).doc: Documentation only changesstyle: Changes that do not affect the meaning of the code
(white-space, formatting, missing semi-colons, etc)refactor: A code change that neither fixes a bug nor adds a
featureperf: A code change that improves performancetest: Adding missing testsrevert: Reverting a previous commit.version: To cover any version update.ScopeThe scope could be anything specifying place of the commit change. For
example$location,$browser,$compile,$rootScope,ngHref,ngClick,ngView, etc…SubjectThe subject contains succinct description of the change:use the imperative, present tense: “change” not “changed” nor
“changes”don’t capitalize first letterBodyJust as in thesubject, use the imperative, present tense: “change”
not “changed” nor “changes”. The body should include the motivation for
the change and contrast this with previous behavior.FooterThe footer should contain any information aboutBreaking Changesand
is also the place to reference GitHub issues that this commitCloses.Breaking Changesshould start with the wordBREAKING CHANGE:with a space or two newlines. The rest of the commit message is then
used for this.ContributeAll contributions are of course welcome, please submit them as
pull-requests and make sure that you are not in violation of the kgitb
rules. If you need ideas: * Add rules list and documentation *
resident, add –template, –template–system and –system install *
resident, add lubyanka command line options for customizing rules *
lubyanka, add origin of connection checkcfr* lubyanka, add setup script * packaging, figure out how
extra_requires works.to test your changes please use tox and py.test, you should be able to
install them by running:pip install -r dev-requirements.txtand run the tests using:toxPublishgenerate README.rstpandoc --from=markdown --to=rst --output=README.rst README.mdpublishpython setup.py sdist upload