• v6.0.2 de0fac2e45

    Fix tag handling: preserve annotations and explicit fetch-tags (#2356)

    jayjudge released this 2026-01-10 03:42:23 +08:00 | 1 commits to main since this release

    This PR fixes several issues with tag handling in the checkout action:

    1. fetch-tags: true now works (fixes #1471)

      • Tags refspec is now included in getRefSpec() when fetchTags=true
      • Previously tags were only fetched during a separate fetch that was
        overwritten by the main fetch
    2. Tag checkout preserves annotations (fixes #290)

      • Tags are fetched via refspec (+refs/tags/:refs/tags/) instead of
        --tags flag
      • This fetches the actual tag objects, preserving annotations
    3. Tag checkout with fetch-tags: true no longer fails (fixes #1467)

      • When checking out a tag with fetchTags=true, only the wildcard
        refspec is used (specific tag refspec is redundant)

    Changes:

    • src/ref-helper.ts: getRefSpec() now accepts fetchTags parameter and
      prepends tags refspec when true
    • src/git-command-manager.ts: fetch() simplified to always use --no-tags,
      tags are fetched explicitly via refspec
    • src/git-source-provider.ts: passes fetchTags to getRefSpec()
    • Added E2E test for fetch-tags option

    Related #1471, #1467, #290

    Downloads