From 4747b55350660e076c08a8ac97f27a6fdfd73004 Mon Sep 17 00:00:00 2001 From: David Green <54253692+betrotle@users.noreply.github.com> Date: Mon, 11 May 2026 14:41:16 +0800 Subject: [PATCH 1/3] Perform shallow (depth=1) git clone when version is HEAD --- changelogs/fragments/shallow_git_clone.yml | 3 +++ lib/ansible/utils/galaxy.py | 4 ++++ 2 files changed, 7 insertions(+) create mode 100644 changelogs/fragments/shallow_git_clone.yml diff --git a/changelogs/fragments/shallow_git_clone.yml b/changelogs/fragments/shallow_git_clone.yml new file mode 100644 index 00000000000..42b6b9b3495 --- /dev/null +++ b/changelogs/fragments/shallow_git_clone.yml @@ -0,0 +1,3 @@ +--- +minor_changes: + - ansible-galaxy - Perform shallow (depth=1) git clone when version is HEAD diff --git a/lib/ansible/utils/galaxy.py b/lib/ansible/utils/galaxy.py index 6cccf102b91..a9defdee593 100644 --- a/lib/ansible/utils/galaxy.py +++ b/lib/ansible/utils/galaxy.py @@ -63,6 +63,10 @@ def scm_archive_resource(src, scm='git', name=None, version='HEAD', keep_scm_met tempdir = tempfile.mkdtemp(dir=C.DEFAULT_LOCAL_TMP) clone_cmd = [scm_path, 'clone'] + # Perform a shallow clone if simply cloning HEAD + if scm == 'git' and version == 'HEAD': + clone_cmd.append('--depth=1') + # Add specific options for ignoring certificates if requested ignore_certs = context.CLIARGS['ignore_certs'] or C.GALAXY_IGNORE_CERTS From 6bc44f8c35f6d324613c48bbfb951e0faf95adba Mon Sep 17 00:00:00 2001 From: David Green <54253692+betrotle@users.noreply.github.com> Date: Mon, 11 May 2026 14:41:33 +0800 Subject: [PATCH 2/3] Don't perform unneccessary checkout when version is HEAD --- changelogs/fragments/shallow_git_clone.yml | 1 + lib/ansible/utils/galaxy.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/changelogs/fragments/shallow_git_clone.yml b/changelogs/fragments/shallow_git_clone.yml index 42b6b9b3495..fb8c47c8c18 100644 --- a/changelogs/fragments/shallow_git_clone.yml +++ b/changelogs/fragments/shallow_git_clone.yml @@ -1,3 +1,4 @@ --- minor_changes: - ansible-galaxy - Perform shallow (depth=1) git clone when version is HEAD + - ansible-galaxy - Don't perform unneccessary checkout when version is HEAD diff --git a/lib/ansible/utils/galaxy.py b/lib/ansible/utils/galaxy.py index a9defdee593..c089d79aa12 100644 --- a/lib/ansible/utils/galaxy.py +++ b/lib/ansible/utils/galaxy.py @@ -80,7 +80,7 @@ def scm_archive_resource(src, scm='git', name=None, version='HEAD', keep_scm_met run_scm_cmd(clone_cmd, tempdir) - if scm == 'git' and version: + if scm == 'git' and version and version != 'HEAD': checkout_cmd = [scm_path, 'checkout', to_text(version)] run_scm_cmd(checkout_cmd, os.path.join(tempdir, name)) From 25fc632279c31ee9bf5cacf2f08b77ac2fab0ecd Mon Sep 17 00:00:00 2001 From: David Green <54253692+betrotle@users.noreply.github.com> Date: Mon, 11 May 2026 14:41:33 +0800 Subject: [PATCH 3/3] Fix misspelling of 'unnecessary' --- changelogs/fragments/shallow_git_clone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelogs/fragments/shallow_git_clone.yml b/changelogs/fragments/shallow_git_clone.yml index fb8c47c8c18..f0d6178ec45 100644 --- a/changelogs/fragments/shallow_git_clone.yml +++ b/changelogs/fragments/shallow_git_clone.yml @@ -1,4 +1,4 @@ --- minor_changes: - ansible-galaxy - Perform shallow (depth=1) git clone when version is HEAD - - ansible-galaxy - Don't perform unneccessary checkout when version is HEAD + - ansible-galaxy - Don't perform unnecessary checkout when version is HEAD