mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-01-13 12:30:08 -06:00
additional_dependencies support for golang hooks
This commit is contained in:
@@ -49,7 +49,6 @@ def install_environment(
|
||||
additional_dependencies=(),
|
||||
):
|
||||
helpers.assert_version_default('golang', version)
|
||||
helpers.assert_no_additional_deps('golang', additional_dependencies)
|
||||
directory = repo_cmd_runner.path(
|
||||
helpers.environment_dir(ENVIRONMENT_DIR, 'default'),
|
||||
)
|
||||
@@ -65,6 +64,8 @@ def install_environment(
|
||||
|
||||
env = dict(os.environ, GOPATH=directory)
|
||||
cmd_output('go', 'get', './...', cwd=repo_src_dir, env=env)
|
||||
for dependency in additional_dependencies:
|
||||
cmd_output('go', 'get', dependency, cwd=repo_src_dir, env=env)
|
||||
|
||||
|
||||
def run_hook(repo_cmd_runner, hook, file_args):
|
||||
|
||||
@@ -16,6 +16,7 @@ from pre_commit import parse_shebang
|
||||
from pre_commit.clientlib.validate_config import CONFIG_JSON_SCHEMA
|
||||
from pre_commit.clientlib.validate_config import validate_config_extra
|
||||
from pre_commit.jsonschema_extensions import apply_defaults
|
||||
from pre_commit.languages import golang
|
||||
from pre_commit.languages import helpers
|
||||
from pre_commit.languages import node
|
||||
from pre_commit.languages import pcre
|
||||
@@ -542,6 +543,25 @@ def test_additional_node_dependencies_installed(
|
||||
assert 'lodash' in output
|
||||
|
||||
|
||||
@pytest.mark.integration
|
||||
def test_additional_golang_dependencies_installed(
|
||||
tempdir_factory, store,
|
||||
):
|
||||
path = make_repo(tempdir_factory, 'golang_hooks_repo')
|
||||
config = make_config_from_repo(path)
|
||||
# A small go package
|
||||
config['hooks'][0]['additional_dependencies'] = ['github.com/firba1/tpol']
|
||||
repo = Repository.create(config, store)
|
||||
repo.require_installed()
|
||||
with golang.in_env(repo.cmd_runner):
|
||||
gopath = repo.cmd_runner.path(helpers.environment_dir(
|
||||
golang.ENVIRONMENT_DIR, 'default',
|
||||
))
|
||||
env = dict(os.environ, GOPATH=gopath)
|
||||
output = cmd_output('go', 'list', '...', env=env)[1]
|
||||
assert 'github.com/firba1/tpol' in output
|
||||
|
||||
|
||||
def test_reinstall(tempdir_factory, store, log_info_mock):
|
||||
path = make_repo(tempdir_factory, 'python_hooks_repo')
|
||||
config = make_config_from_repo(path)
|
||||
|
||||
Reference in New Issue
Block a user