Skip to content

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

Download YAML

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.json and Cargo.toml provide local classification evidence.
  • The npm-package policy 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.