Go to zircote/rust-template and click “Use this template” > “Create a new repository”.
Choose an owner (your user or an organization).
Name your repository (e.g., my-awesome-crate).
Select Public or Private visibility.
Click “Create repository”.
Optional: During creation, GitHub offers a “Jumpstart your project with Copilot” field. You can paste a prompt there to have Copilot scaffold your project with real types, functions, and tests in an auto-opened PR. See Copilot Jumpstart for ready-made prompts.
Once your repository is created and the first push lands on main, the Template Init workflow (template-init.yml) runs automatically. It performs the following replacements across the entire repository:
Template placeholder
Replaced with
Example
zircote/rust-template
your-org/your-repo
acme/my-awesome-crate
zircote
your GitHub owner
acme
rust-template
your repository name
my-awesome-crate
rust_template
your crate name (underscored)
my_awesome_crate
What to expect:
The workflow takes roughly 1 minute to complete.
It creates a commit titled chore: initialize from rust-template for <owner>/<repo>.
After the commit, Cargo.toml, README.md, documentation links, and all other references point to your project.
The workflow becomes a no-op on subsequent pushes (it checks whether Cargo.toml still contains rust_template).
What copies and what doesn’t? Files copy; settings don’t. See GitHub Template Features for the full breakdown of what transfers when you use a template repository.
Most workflows use only the automatic GITHUB_TOKEN. Optional workflows require additional secrets configured in Settings > Secrets and variables > Actions:
Secret
Required for
How to obtain
GITHUB_TOKEN
All workflows (CI, releases, etc.)
Automatic — provided by GitHub Actions
HOMEBREW_TAP_TOKEN
Updating your Homebrew tap formula (package-homebrew.yml)
Fine-grained PAT with write access to your homebrew-tap repository
Publishing to crates.io (publish.yml) needs no secret — it uses crates.io Trusted Publishing (OIDC). One-time setup: on crates.io, open your crate’s Settings > Trusted Publishing and add this GitHub repo with workflow publish.yml and environment copilot.
Workflows that reference missing secrets will either skip gracefully or fail with a clear error. You only need to configure a secret when you are ready to use the corresponding feature.
The template’s release workflow already attaches SLSA build provenance
and CycloneDX SBOM attestations to every release artifact, and container
images are signed by a centralized signer workflow. To extend signing to
individual commits:
Enable in branch protection:
Go to Settings > Branches > Branch protection rules for
main.
Check “Require signed commits”.
This ensures all commits merged into main carry a verified
signature.
Contributor setup:
Point contributors to the
Commit Signing section for
SSH key or gitsign configuration.
Enable vigilant mode (recommended for maintainers):
Go to Settings > SSH and GPG keys on your GitHub profile.
Enable Vigilant mode so unsigned commits display an
“Unverified” badge, making it easy to spot gaps.