Run ./github-distribute-secrets to apply the secrets to the repositories. Or using the "scripted" version use make run.local.
The project follows the standard Go project layout:
cmd/github-distribute-secrets/: Main application codeinternal/: Internal packages not meant for external useconfig/: Configuration handlinggithub/: GitHub API clientonepassword/: 1Password integration
scripts/: Utility scripts
To build the project, run:
make buildFor development, you can use:
make run.localSee config.yml for details on how to configure the secrets distribution.
# Common secrets shared across multiple projects or environments.
common:
name-of-the-secret: reference-to-the-1password-value
reposiotory-name:
name-of-the-secret: reference-to-the-1password-value- Extract 1password and github into real go modules
- Replace log.Default() with a structured logging library like zerolog or zap
- Add timeouts for external commands
- Add version information to builds
- Add progress indicators during secret distribution
- Add confirmation question
- Add integration tests