Skip to content

chore(ci): mirror the code repository to two external targets #333

@McPringle

Description

@McPringle

Description

Set up an automated mirror of the Komunumo repository’s source code for the main branch to two external Git servers using the GitHub Action from yesolutions:

The mirror should run automatically on every push to main (and allow manual triggering), push only the main branch, and not attempt to sync other branches, issues, PRs, releases, or other GitHub-native artifacts.


Requirements

  • Use the yesolutions/mirror-action to mirror only the main branch.
  • Configure two separate mirror targets (codeberg.org and git.fihlon.swiss).
  • Prefer SSH authentication with separate deploy keys per target for least privilege:
    • Add public keys to the target repositories with write permissions.
    • Store private keys as GitHub secrets (e.g., MIRROR_CODEBERG_SSH_KEY, MIRROR_FIHLON_SSH_KEY).
  • Ensure host verification is handled (known hosts or equivalent secure configuration).
  • Preserve commit authorship and timestamps.
  • Provide a manual dispatch to re-run the mirror if needed (e.g., after target maintenance).

Acceptance Criteria

  • A GitHub Actions workflow exists that uses yesolutions/mirror-action.
  • The workflow triggers on push to main and via manual dispatch.
  • Only the main branch is mirrored to both codeberg.org and git.fihlon.swiss.
  • SSH keys are configured via GitHub secrets; public keys are installed on both targets with write access.
  • The mirror completes successfully to both targets and is verifiable by checking the latest commit on main.
  • No issues/PRs/releases are mirrored; only repository code/commits for main (and no ther branches).
  • Basic security is in place: host key verification is enabled or an equivalent secure method is documented.

Metadata

Metadata

Assignees

Labels

hackergartenGood for hackergarten events

Projects

Status

Ready

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions