Skip to content

validate.yml templates (assembly root and family root): .gitmodules urls are read with git config --get-regexp '\.url$' | cut -d' ' -f2- or | while read -r _ url, so a section name holding a space gives a wrong url #741

Closed

Description

@brettheap

Goal: the two validate.yml templates read each submodule url from .gitmodules as git does. A section name holding a space, which #700 makes the doctor read correctly, then gives the right url in CI too.

Filed by lane openRepoShape-3 under v1.1.1, on Brett Heap's word of 2026-10-16T13:35:28Z ("yes create v1.1.1"). #700's writer (W668) found it while fixing the doctor's own reading for #668. It is not a regression.

What happens. The templates on main de926142 split git config --file .gitmodules --get-regexp '\.url$' output at the first space:

  • templates/assembly-root/.github/workflows/validate.yml:87 uses | cut -d' ' -f2-. :173 and :220 use | while read -r _ url.
  • templates/family-root/.github/workflows/validate.yml:83 uses | cut -d' ' -f2-. :174 and :214 use | while read -r _ url.
  • --get-regexp prints submodule.<name>.url <url>. For a section named members/My IRRS, the key holds a space, so the split gives the url IRRS.url /r/IRRS.git. W668 measured this.

What to do:

  • Read the urls NUL-separated (git config -z --file .gitmodules --get-regexp '\.url$'), and split each record at its first newline: key, then value.
  • Alternatively, list the paths first and ask git for each url by its exact key.
  • Test it with a section name holding a space, in both templates, through the steps that use the url.
  • Both files are pinned template copies, so a change costs each project and each holder an upstream-changed row. The PR body says so.

Lands after: #700.

Activity

  1. added this to the v1.1.1 milestone on Oct 16, 2026
  2. brettheap commented on Oct 16, 2026

    @brettheap
    ContributorAuthor

    CLAIMED — lane openRepoShape-3, session b30e8b49-f249-4668-adb1-1dbfa93c09e1@Eagle, 2026-10-16T17:44:42Z, for #741

    Logged in lanes/log/openRepoShape-3.md at 4039ec33cee17b3f2e0d94e98a5627b8061a85e9.

    The three reads (lane-collision-protocol Rule 1):

    1. existing `CLAIMED —` comments on opensoft/openRepoShape#741:
       none
    2. `gh pr list --repo opensoft/openRepoShape --state all --search "#741"`, kept where the row or its body names `#741`:
       none
    3. `git ls-remote --heads git@github.com:opensoft/openRepoShape` branches naming `741` as a whole token:
       none
    
  3. added 2 commits that reference this issue on Oct 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions