You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The special .github repository for the
Valkyrjaio GitHub organization. Files placed here apply as
defaults across all repositories in the organization — community health
files, reusable workflows, branch rulesets, and the organization profile
page.
This repository is the center of Valkyrja's org-wide automation. The
reusable workflows here power CI, releases, dependency updates, branch
management, and repository provisioning across every Valkyrja repo.
What's Included
Community health files — CODE_OF_CONDUCT.md, CONTRIBUTING.md,
LICENSE.md, and SECURITY.md inherited by every repo that doesn't
override them
Reusable implementation of the above; checks all tracked files in the repo, skips binary and empty files; posts/removes a PR comment listing offending files on failure/success
Runs a set of Composer update scripts and syncs version constraints in require, require-dev, conflict, and suggest sections across each dependency's composer.json. Checks out an existing deps/update-dependencies-* PR branch first if one is open, then commits and force-pushes. Creates a new PR with a per-package version changelog if none exists. Optionally assigns a reviewer via the VALKYRJA_REVIEWER variable.
Creates and configures a public repository: enables squash-only merges, deletes branches on merge, and applies all branch rulesets from rulesets/. Applies PHP-specific rulesets to repos whose name or description contains "php".
Enforces merge settings and branch rulesets across all non-archived org repos. Can target a single repo via the optional repo input. Delegates to _enforce-repo-settings.yml.
Applies squash-only merge settings and any missing branch rulesets to each repo. Skips archived repos and .github. Applies PHP-specific rulesets to repos whose name or description contains "php".
Creates a new major release version branch from master. Delegates to _get-version.yml to compute the next major version, then to _create-version-branch.yml to create and configure the branch.
Computes the next release version from the latest GitHub release tag, based on a major/minor/patch/rc bump input. Forces MAJOR.0.0 when no releases exist yet for the branch's major version. Validates the result against SUPPORTED_VERSIONS and aborts if the tag already exists. Outputs version, major-version, and build-date.
Computes the next major version number and branch name (e.g. 27 → 27.x) for creating a new major version branch. Must be run from master. Validates the new version against SUPPORTED_VERSIONS and aborts if the branch already exists.
Creates a new major version branch, rewrites README.md, CHANGELOG.md, and VERSION.md for that branch, commits, sets the new branch as the repository default, and updates the LATEST_MAJOR_VERSION org variable
Orchestrates a full stable or RC release: calls _get-version-for-release, _update-version-files, and _release in sequence. Called by release-new-version.yml.
Variant of _create-release.yml that pins external SHA references for the version-check and file-update steps. Intended for use by consumer repositories that call centralized release workflows by SHA.
Lightweight PHP release: updates a PHP Info class file's VERSION and BUILD_DATE constants via sed, commits the change, then calls _release.yml. Used when the caller already handles version computation.
Updates VERSION and BUILD_DATE constants in a PHP Info class file using sed. Pulls latest changes, patches the file, and commits using the org bot. Accepts version, build-date, info-class-path, and info-class-name inputs.
Manually cherry-picks a commit hash to a target branch. Validates the destination against a configurable branch pattern and creates a backup before picking
Reusable implementation of the above. Force-pushes the <branch>-backup ref onto the current branch to restore it.
Required Secrets and Variables
All reusable workflows that use the Valkyrja GitHub App require these to be
set at the organization level:
Name
Type
Description
VALKYRJA_GHA_APP_ID
Secret
GitHub App ID used to generate short-lived tokens
VALKYRJA_GHA_PRIVATE_KEY
Secret
GitHub App private key
LATEST_MAJOR_VERSION
Variable
Current latest major version number (e.g. 26). Falls back to current year's last two digits if unset.
SUPPORTED_VERSIONS
Variable
Regex pattern of supported major versions (e.g. ^(26|27)$). Version checks are skipped if unset.
USER_EMAIL
Variable
Git committer email for rebase/cherry-pick operations
USER_NAME
Variable
Git committer name for rebase/cherry-pick operations
VALKYRJA_REVIEWER
Variable
GitHub username to assign and request review from on dependency update PRs. Optional.
Rulesets
The rulesets/ directory contains exported GitHub branch
ruleset definitions applied across Valkyrja repositories by the
repository-management workflows.
Requires all PHP CI checks to pass on master and version branches
Contributing
Improvements to the shared workflows, rulesets, community health files, and
org conventions are welcome. See CONTRIBUTING.md for
the submission process, REPOSITORY_NAMING.md for
how repos are named, and VOCABULARY.md for terminology
used across the project.