Use the 'pyTooling/SynchronizeForks' action - #3
Merged
Conversation
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
This was referenced Sep 10, 2026
'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
* 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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes
.github/workflows/Synchronize.ymlcallspyTooling/SynchronizeForksinstead of carrying the algorithm. 60 lines of inline shell become:
The trigger, the schedule and the checkout are unchanged.
targetOrganisation=Paebbelsis dropped — the actiondefaults to
${{ github.repository_owner }}, which isPaebbelshere. The☑ Check GitHub APIstep moved intothe action.
No
*.reposfile changes. The configuration format is identical, so every fork and branch listed here is readexactly as before.
What the run gains, from the action's own history: a missing
<organisation>.reposfile and a malformed linebecome counted errors instead of being ignored, a file without a trailing newline no longer drops its last
repository, multi-line
gh repo syncoutput survives into the error annotation, each organisation is a collapsiblegroup, and the run ends with a summary plus a
Not synchronized:list.Documentation
README.mdsays the algorithm lives in the action and this repository contributes the workflow and theconfiguration 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.
*.reposfiles. It listed 10 OSVVM forks; there are 16. Ithad no
VHDLsection at all, soPoCwas 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 nowreads
<fork> ⇐ <upstream> — <branches>.Pipeline.pngis 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 andGET /repos/Paebbels/<fork>reports exactly that repository as itsparent.Nothing to correct — which matters, because the action reports the upstream in its progress and error output.
Optional, not enabled here:
create-missing-branches: truelets the action create a configured branch the forkdoesn'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/SynchronizeForksreleasedv1.0.0, and its
v1major-version branch nowcarries 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
@v2here.Related Issues and Pull-Requests
this repository's workflow.
🤖 Generated with Claude Code
https://claude.ai/code/session_01RnpaXYDwfNwnJrQew78j3f