Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 209dc07

Browse files
authored
Merge pull request #475 from pre-commit/golang_improvements
additional_dependencies support for golang hooks
2 parents cc1eac4 + abcc416 commit 209dc07

2 files changed

Lines changed: 26 additions & 1 deletion

File tree

pre_commit/languages/golang.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from pre_commit.languages import helpers
1010
from pre_commit.util import clean_path_on_failure
1111
from pre_commit.util import cmd_output
12+
from pre_commit.util import rmtree
1213
from pre_commit.xargs import xargs
1314

1415

@@ -49,7 +50,6 @@ def install_environment(
4950
additional_dependencies=(),
5051
):
5152
helpers.assert_version_default('golang', version)
52-
helpers.assert_no_additional_deps('golang', additional_dependencies)
5353
directory = repo_cmd_runner.path(
5454
helpers.environment_dir(ENVIRONMENT_DIR, 'default'),
5555
)
@@ -65,6 +65,11 @@ def install_environment(
6565

6666
env = dict(os.environ, GOPATH=directory)
6767
cmd_output('go', 'get', './...', cwd=repo_src_dir, env=env)
68+
for dependency in additional_dependencies:
69+
cmd_output('go', 'get', dependency, cwd=repo_src_dir, env=env)
70+
# Same some disk space, we don't need these after installation
71+
rmtree(repo_cmd_runner.path(directory, 'src'))
72+
rmtree(repo_cmd_runner.path(directory, 'pkg'))
6873

6974

7075
def run_hook(repo_cmd_runner, hook, file_args):

tests/repository_test.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from pre_commit.clientlib.validate_config import CONFIG_JSON_SCHEMA
1717
from pre_commit.clientlib.validate_config import validate_config_extra
1818
from pre_commit.jsonschema_extensions import apply_defaults
19+
from pre_commit.languages import golang
1920
from pre_commit.languages import helpers
2021
from pre_commit.languages import node
2122
from pre_commit.languages import pcre
@@ -542,6 +543,25 @@ def test_additional_node_dependencies_installed(
542543
assert 'lodash' in output
543544

544545

546+
@pytest.mark.integration
547+
def test_additional_golang_dependencies_installed(
548+
tempdir_factory, store,
549+
):
550+
path = make_repo(tempdir_factory, 'golang_hooks_repo')
551+
config = make_config_from_repo(path)
552+
# A small go package
553+
deps = ['github.com/golang/example/hello']
554+
config['hooks'][0]['additional_dependencies'] = deps
555+
repo = Repository.create(config, store)
556+
repo.require_installed()
557+
binaries = os.listdir(repo.cmd_runner.path(
558+
helpers.environment_dir(golang.ENVIRONMENT_DIR, 'default'), 'bin',
559+
))
560+
# normalize for windows
561+
binaries = [os.path.splitext(binary)[0] for binary in binaries]
562+
assert 'hello' in binaries
563+
564+
545565
def test_reinstall(tempdir_factory, store, log_info_mock):
546566
path = make_repo(tempdir_factory, 'python_hooks_repo')
547567
config = make_config_from_repo(path)

0 commit comments

Comments
 (0)