Skip to content

Use the 'pyTooling/SynchronizeForks' action - #3

Merged
Paebbels merged 4 commits into
mainfrom
claude/use-synchronizeforks-action
Sep 11, 2026
Merged

Use the 'pyTooling/SynchronizeForks' action#3
Paebbels merged 4 commits into
mainfrom
claude/use-synchronizeforks-action

Conversation

@paebbels-claude

@paebbels-claude paebbels-claude Bot commented Sep 10, 2026

Copy link
Copy Markdown

Changes

  • .github/workflows/Synchronize.yml calls pyTooling/SynchronizeForks
    instead of carrying the algorithm. 60 lines of inline shell become:

          - name: 🔄 Synchronize Repositories
            uses: pyTooling/SynchronizeForks@v1
            with:
              github-token: ${{ secrets.GH_TOKEN }}

    The trigger, the schedule and the checkout are unchanged. targetOrganisation=Paebbels is dropped — the action
    defaults to ${{ github.repository_owner }}, which is Paebbels here. The ☑ Check GitHub API step moved into
    the action.

  • No *.repos file changes. The configuration format is identical, so every fork and branch listed here is read
    exactly as before.

  • What the run gains, from the action's own history: a missing <organisation>.repos file and a malformed line
    become counted errors instead of being ignored, a file without a trailing newline no longer drops its last
    repository, multi-line gh repo sync output survives into the error annotation, each organisation is a collapsible
    group, and the run ends with a summary plus a Not synchronized: list.

Documentation

  • README.md says the algorithm lives in the action and this repository contributes the workflow and the
    configuration files. Steps to Setup shows the workflow snippet rather than a list of files to copy, and the
    configuration section points at the action's README as the authority.
  • The inventory was stale and is regenerated from the *.repos files. It listed 10 OSVVM forks; there are 16. It
    had no VHDL section at all, so PoC was undocumented. It didn't distinguish the two disabled entries
    (OSVVM-AvalonMM, OSVVM-AvalonST) from the active ones, and it named no upstreams or branches. Each entry now
    reads <fork> ⇐ <upstream> — <branches>.
  • Pipeline.png is kept and labelled as a screenshot of the previous implementation.

Others

  • Every <upstream> in this repository's files was verified against GitHub: for all 24 entries,
    GET /repos/<upstream> resolves and GET /repos/Paebbels/<fork> reports exactly that repository as its parent.
    Nothing to correct — which matters, because the action reports the upstream in its progress and error output.

  • Optional, not enabled here: create-missing-branches: true lets the action create a configured branch the fork
    doesn't have yet, from the upstream's branch head. It's off by default because it trusts the <upstream> field —
    and this repository's fields are the ones just verified above, so enabling it is a one-line addition whenever you
    want it.

  • The action pins @v1. pyTooling/SynchronizeForks released
    v1.0.0, and its v1 major-version branch now
    carries the action. That branch is moved to each release by the action's own pipeline, so this workflow follows
    v1.x without being edited; a breaking v2 would need a deliberate change to @v2 here.


Related Issues and Pull-Requests

🤖 Generated with Claude Code

https://claude.ai/code/session_01RnpaXYDwfNwnJrQew78j3f

The inline shell script is replaced by a call to the reusable action, which carries the same algorithm. The
'*.repos' files are unchanged: 'targetOrganisation=Paebbels' becomes the action's default,
'${{ github.repository_owner }}'.

The README points at the action for the algorithm and the authoritative file format, and its inventory of
synchronized repositories is regenerated from the '*.repos' files - it was missing the 'VHDL' organisation and
six OSVVM forks, and didn't mark the two disabled ones.

Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RnpaXYDwfNwnJrQew78j3f
'pyTooling/SynchronizeForks' released v1.0.0 and its 'v1' major-version branch now carries the action, so the
workflow pins the branch rather than 'main'. The branch is moved to each release, which the README now says.

Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RnpaXYDwfNwnJrQew78j3f
@Paebbels Paebbels added the enhancement New feature or request label Sep 11, 2026
Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread README.md
Comment thread README.md Outdated
claude-code and others added 2 commits September 11, 2026 06:18
* The introduction says the configuration files list the forks as well as the branches and tags to synchronize.
* 'Steps to Setup' says to write your own configuration rather than to add files, and that this repository's
  '*.repos' describe the 'Paebbels' namespace - they are an example, not a starting point. A step for a README is
  back, with the reason 'LICENSE.md' is no longer one.
* The inventory no longer repeats the branch list of every fork; it would go stale against the '*.repos' files in
  the same repository, which are the truth.
* The closing section points at 'pyTooling/SynchronizeForks' instead of GitHub's 'syncing a fork' page.
* The line format gains the optional tag field, which the introduction now mentions.

Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RnpaXYDwfNwnJrQew78j3f
The introduction now says the configuration files list branches and tags, but the format below it still described
only three fields.

Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RnpaXYDwfNwnJrQew78j3f
vhdl-claude Bot pushed a commit to VHDL/Synchronize that referenced this pull request Sep 11, 2026
The checkout step carries the '⏬' icon used in 'Paebbels/SynchronizeForks', and the synchronize step the '🔄' it
uses there too - the same two names in both repositories.

Carried over from the review of the sibling pull-request:

* The introduction says the configuration files list the forks as well as the branches and tags to synchronize.
* The inventory no longer repeats the branch list of every fork; the '*.repos' files in the same repository are
  the truth and the copy is what goes stale.
* The line format gains the optional tag field.
* The closing section points at 'pyTooling/SynchronizeForks' instead of GitHub's 'syncing a fork' page.

Co-Authored-By: Patrick Lehmann <Paebbels@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RnpaXYDwfNwnJrQew78j3f
@Paebbels
Paebbels merged commit 28178e0 into main Sep 11, 2026
1 check failed
@Paebbels
Paebbels deleted the claude/use-synchronizeforks-action branch September 11, 2026 06:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants