Personal account¶
Octoform determines the owner kind from GitHub rather than from a configuration flag. This example therefore uses features that remain meaningful for a personal account and avoids organization custom properties.
Configuration¶
octoform.yml
# Configuring one person's own repositories, not an organisation's.
#
# octoform tells the two apart by asking the API. `your-username` below is a
# placeholder — put your own GitHub username there, or someone else's, and
# that alone decides what happens:
#
# - There is no custom properties API for a personal account, so
# `classify.property` below is simply not used; type comes from
# `classify.rules` or from `repos.<name>.type`.
# - There is no organisation-wide ruleset feature either — that was never
# an organisation-only limitation to begin with, on a personal account it
# does not exist as a concept. Per-repository rulesets still apply.
# - Running this against your OWN account (the one the token belongs to)
# sees private repositories too, via GitHub's authenticated-user
# endpoint. Running it against someone else's username only ever sees
# their public repositories, regardless of whose token is used.
#
# Try it (read-only, needs nothing beyond a plain token):
# export GITHUB_TOKEN=...
# octoform plan --config octoform.yml
owner: your-username
classify:
rules:
- when: { file_exists: package.json }
type: npm-package
- when: { file_exists: Cargo.toml }
type: rust-crate
audit:
require_description: { visibility: public }
max_topics: 10
defaults:
merge:
delete_branch_on_merge: true
security:
vulnerability_alerts: true
types:
npm-package:
rulesets:
- name: main-branch
target_branches: ['~DEFAULT_BRANCH']
block_force_push: true
How selection works¶
- When the token belongs to
your-username, authenticated discovery can include private repositories that the credential may inspect. - When the configured owner is another person, GitHub discovery exposes only that person's public repositories.
package.jsonandCargo.tomlprovide local classification evidence.- The
npm-packagepolicy adds a repository-level ruleset; availability is decided from owner kind, visibility, permissions, and GitHub responses.
Review before apply¶
Check the planned repository set first. In particular, verify private repository visibility, the inferred project type, and whether enabling vulnerability alerts or changing merge behavior matches each repository's operating model.