Live integration tests for joshjohanning/bulk-github-repo-settings-sync-action.
These tests run against real repositories in a dedicated disposable test organization, verifying both action outputs (including pending-repositories) and resulting GitHub state.
- Prepare — Creates/resets ~30 repos in the test org to known baseline states
- Run — Runs the action against those repos (dry-run first, then for real)
- Assert — Verifies the action outputs and actual GitHub state via API
Go to Actions → Live Integration Tests → Run workflow and provide:
| Input | Description |
|---|---|
repository |
Action repository to test (default: joshjohanning/bulk-github-repo-settings-sync-action) |
ref |
Branch, tag, or SHA from the action repo to test (default: main) |
pr |
PR number to test (overrides ref) |
suite |
all, main, selection, or failure |
prepare-only |
Only prepare repos, skip running tests |
- Test main branch: leave defaults
- Test a PR: set
prto123 - Test a specific branch: set
reftorefactor/normalize-result-model - Test your fork: set
repositorytoowner/repo
Create a dedicated GitHub organization for tests. Every repository in it should be considered temporary.
Create a GitHub App with the permissions listed below, installed on the test org only.
In this repository, set:
- Variable
APP_CLIENT_ID— the GitHub App client ID - Secret
APP_PRIVATE_KEY— the App private key
- Administration: Read & write (create repos, settings, topics)
- Contents: Read & write (create/update/delete files)
- Pull requests: Read & write (PR-based file sync)
- Workflows: Read & write (sync
.github/workflows/) - Custom properties (org-level): Admin (repo selection tests)
- Variable
LIVE_TEST_ORG— name of the test organization
Use the Delete Live Integration Test Repositories workflow to remove all repos from the test org. Triple-guarded with confirmation inputs.