标签: pre-commit-hook

仅对修改后的行使用PHP_CodeSniffer

我正在尝试在SVN中构建一个预提交脚本,我想修改的行上运行PHP_CodeSniffer (而不是整个文件).到目前为止,我有这个脚本:

#!/bin/sh

REPOS="$1"
TXN="$2"

# Make sure that the log message contains some text.
SVNLOOK=/usr/bin/svnlook
$SVNLOOK log -t "$TXN" "$REPOS" | \
   grep "[a-zA-Z0-9]" > /dev/null || exit 1

# Check for code validation before commiting the script using PHP_CodeSniffer
/tmp/pear/download/PHP_CodeSniffer-1.4.3/scripts/phpcs-svn-pre-commit  "$REPOS" -t "$TXN" >&2 || exit 1

# All checks passed, so allow the commit.
exit 0
Run Code Online (Sandbox Code Playgroud)

php svn pre-commit-hook codesniffer

11
推荐指数
1
解决办法
1726
查看次数

在暂存文件上运行 eslint “ONLY”

我正在尝试使用预提交钩子在提交之前检测 eslint 错误。我正在使用 husky 和 ​​lint-staged。但它对 src 中的所有文件运行 lint 命令,而不仅仅是对暂存文件运行。这是我的 package.json 文件。

"scripts": {
    "test:ci": "cross-env CI=true react-scripts test --bail --passWithNoTests",
    "lint": "eslint src/**/*.{js,jsx}",
    "lint:fix": "eslint . --fix",
    "precommit": "npm run lint && npm run test:ci"
  }
Run Code Online (Sandbox Code Playgroud)
"husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },
Run Code Online (Sandbox Code Playgroud)
"lint-staged": {
    "*.js": [
      "npm run precommit"
    ],
    "*.jsx": [
      "npm run precommit"
    ]
  }
Run Code Online (Sandbox Code Playgroud)

有什么方法可以使它仅适用于暂存文件而不适用于目录中存在的其他文件?

pre-commit-hook eslint husky eslint-config-airbnb lint-staged

11
推荐指数
2
解决办法
6816
查看次数

Mercurial钩子禁止提交大型二进制文件

我希望有一个Mercurial钩子,它将在提交事务之前运行,如果提交的二进制文件大于1兆字节,该事务将中止事务.我找到了以下代码,除了一个问题,它工作正常.如果我的更改集涉及删除文件,则此挂钩将引发异常.

钩子(我正在使用pretxncommit = python:checksize.newbinsize):

from mercurial import context, util
from mercurial.i18n import _
import mercurial.node as dpynode

'''hooks to forbid adding binary file over a given size

Ensure the PYTHONPATH is pointing where hg_checksize.py is and setup your
repo .hg/hgrc like this:

[hooks]
pretxncommit = python:checksize.newbinsize
pretxnchangegroup = python:checksize.newbinsize
preoutgoing = python:checksize.nopull

[limits]
maxnewbinsize = 10240
'''

def newbinsize(ui, repo, node=None, **kwargs):
    '''forbid to add binary files over a given size'''
    forbid = False
    # default limit is …
Run Code Online (Sandbox Code Playgroud)

mercurial hook pre-commit-hook mercurial-hook

10
推荐指数
2
解决办法
2976
查看次数

如何以自动方式管理团队中的git pre-commit钩子?

假设您正在与20人的开发团队合作或支持,并希望使用git pre-commit钩子作为对正在提交或推送的代码强制执行某些验证的方法.例如,您希望确保人们不检查大型资产或SWF文件的调试版本,您还要检查代码是否具有足够的测试覆盖率等.

1.)应该有一个可以管理这些钩子的中心位置

2.)它们应该在所有用户/机器上自动更新

git pre-commit-hook

10
推荐指数
1
解决办法
1533
查看次数

Mercurial Pre-Commit Hook:如何挂钩当前目录中的python程序?

我正在尝试创建一个Mercurial钩子,当提交被推送到主存储库时运行.我创建了一个python脚本,如下所示:

# commit.py

from mercurial import ui, hg
from mercurial.i18n import gettext as _

def getV1ID(ui, repo, **kwargs):
    ui.write("The hook works!!!")
    v1id = ui.prompt('Enter the VersionOne ID')
    ui.write('VersionOne ID: '+v1id)

对于每个分支,这commit.py是重复的,因为它包含在代码被推送到主存储库之前需要运行的机制.只有那些预推机制通过才能推动推动.用户可以修改他们的本地commit.py,以便他们只运行这些预推送操作的子集,具体取决于他们所处理的项目,并且每个人可以一次处理多个项目.所以,commit.py不能是可以驻留在.hg文件夹中的全局python脚本.

为了使mercurial运行本地commit.py,在我的mercurial.ini文件中(在C:\ Users\UserName\mercurial.ini中),我添加了以下语句:

[hooks]
prechangegroup = python:./commit.py:getV1ID

如果我把它放在.hg文件夹中,python脚本会运行,但是当我这样做时它不会运行.任何人都可以帮助我阐明这个问题吗?非常感谢.

python windows mercurial pre-commit-hook

9
推荐指数
1
解决办法
2973
查看次数

如何为位于GIthub中的存储库强制执行Coding Standard

我们在Github有一个帐户,并在Github(私人存储库)中托管我们的所有项目.

我们希望强制执行编码标准以及我们用于内部目的的其他钩子.我们已经让这些钩子很好地用于颠覆,因为存储库位于一个地方,管理这些钩子非常好.

使用Github,看起来我失去了在主存储库(?)中添加钩子的能力,因此我很震惊:

  1. 当每个成员将其文件更改到主存储库时,如何对每个成员强制执行编码标准?
  2. 在处理任何推送请求之前,Github上有没有办法执行我的钩子是我的服务器?

我正在寻找想法/建议,让我的生活更轻松,非常感谢任何帮助.

git hook github pre-commit-hook

9
推荐指数
1
解决办法
1588
查看次数

使用gruntjs作为precommit钩子

有没有办法以预先挂起的方式运行gruntjs任务.例如,我想防止提交失败的测试或jshint问题.我还考虑为每次提交运行代码美化器.

git pre-commit-hook gruntjs

9
推荐指数
2
解决办法
4242
查看次数

Force Bitbucket承诺通过Comment Formatting与JIRA Ticket相关联

确切的需要是强制将所有提交到Bitbucket的提交链接到JIRA票证.

我之前在Subversion上通过创建一个在提交文本中查找JIRA票证的提交钩子来做到这一点,但我不希望这个解决方案必然受限于之前的体验.

Bitbucket是否有设置某个地方强制关联所有提交对Jira门票?如果不是 - 它是否具有强制提交评论质量的机制(某种钩子或正则表达式)?如果不是 - GIT是否有可以用于此目的的东西?

如果注释文本不包含前导JIRA票证,后跟冒号,后跟一些提交文本,那么想象的解决方案是(但不限于是)提交失败的提交钩子,这样:

git commit -m "foo"
Run Code Online (Sandbox Code Playgroud)

失败了

git commit -m "PRJ-9327: foo"
Run Code Online (Sandbox Code Playgroud)

承诺...

jira bitbucket pre-commit-hook git-commit

9
推荐指数
1
解决办法
4043
查看次数

预提交钩子以检查 Jira 问题密钥

我正在寻找一些帮助来在 Windows 上编写一个预提交钩子以在提交时检查 Jira 问题密钥。如果 Jira 密钥不存在,则不允许提交。我找不到任何方法。我是脚本的新手。任何帮助都会受到高度赞赏。

svn windows pre-commit-hook

9
推荐指数
1
解决办法
4576
查看次数

是否可以仅格式化预提交挂钩中修改的行

当我们提交更改时使用 Prettier 会格式化 Husky预提交中文件内的所有代码。有没有更好的方法来仅更改文件中已修改的代码行?

git commit pre-commit-hook prettier

9
推荐指数
0
解决办法
2468
查看次数