Skip to content
On this page

Configuration Reference

Configuration File: reposell.yml

The main configuration file for the reposell CLI. All values are optional — the CLI derives sensible defaults from Git/GitHub/CI.

Complete Example

yaml
version: 1

product:
  name: "My Awesome Product"
  description: "A CLI tool that does amazing things"
  category: "developer-tools"
  tags:
    - cli
    - typescript
    - automation

pricing:
  amount: 5000          # In minor units (cents for USD)
  currency: "USD"
  model: "one_time"     # one_time | subscription | pay_what_you_want

releases:
  mode: "all"           # "selected" | "all"
  selected: []          # Only used when mode: "selected"
  # Example for selected mode:
  # selected:
  #   - "v1.0.0"
  #   - "v1.1.0"

payment:
  provider: "stripe"    # Only "stripe" supported currently
  payment_link: "https://buy.stripe.com/..."  # Per-release link (required for publish)

listing:
  enabled: true
  # Auto-register with official listing on release
  auto_register: true
  # Listing endpoint (auto-derived if not set)
  # endpoint: "/listing"

git:
  provider: "github"    # github | gitlab | bitbucket | gitea | forgejo
  # Auto-derived from git remote:
  # owner: ""
  # repository: ""
  # provider_repository_id: ""

signing:
  # Key management (keys never in config - use env/keychain)
  # key_id: "repo_key_2026_01"
  # algorithm: "Ed25519"
  # Private key: ${REPOSELL_SIGNING_KEY} (env var or keychain)
  # Public key: committed to config/reposell/verification-key.pub

ci:
  # GitHub Actions workflow generation
  generate_workflows: true
  # Workflow files to generate
  workflows:
    - "reposell.yml"        # Main CI: validation, manifest generation
    - "reposell-release.yml" # Release automation
  # Required secrets (documented, never in config)
  # REPOSELL_SIGNING_KEY
  # GITHUB_TOKEN (auto-provided by GitHub Actions)

# Advanced: override auto-derived values
# overrides:
#   repository_url: "https://github.com/owner/repo"
#   listing_endpoint: "https://custom.domain/listing"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64

Field Reference

version (integer, required)

Configuration schema version. Current: 1.

product (object)

Product metadata for listing listings.

FieldTypeRequiredDefaultDescription
namestringYes*Repo nameProduct display name
descriptionstringYes*First line of READMEProduct description
categorystringNo"uncategorized"Listing category
tagsstring[]No[]Search tags

*Required for listing registration; optional for /sell only.

pricing (object)

Product pricing configuration.

FieldTypeRequiredDefaultDescription
amountintegerYes0Price in minor units (cents for USD)
currencystringYes"USD"ISO 4217 currency code
modelstringYes"one_time"one_time, subscription, pay_what_you_want

releases (object)

Release selection mode.

FieldTypeRequiredDefaultDescription
modestringYes"all"selected or all
selectedstring[]No*[]Release tags (required if mode=selected)

payment (object)

Payment provider configuration.

FieldTypeRequiredDefaultDescription
providerstringYes"stripe"Payment provider identifier
payment_linkstringYes (to publish)Stripe Payment Link URL for the release; CI verifies HTTPS + buy.stripe.com + amount/currency match

Secrets (NEVER in config — use environment/GitHub secrets):

  • STRIPE_SECRET_KEY — optional; local tooling only (listing status dashboard, sell sync). Checkout itself requires no keys.

listing (object)

Listing integration settings.

FieldTypeRequiredDefaultDescription
enabledbooleanNofalseEnable /listing endpoint
auto_registerbooleanNotrueAuto-register on release
endpointstringNoautoCustom listing endpoint

git (object)

Git provider configuration.

FieldTypeRequiredDefaultDescription
providerstringYesautoGit provider
ownerstringNoautoRepository owner
repositorystringNoautoRepository name

signing (object)

Cryptographic signing configuration.

Keys NEVER in config. Use:

  • Environment variable: REPOSELL_SIGNING_KEY (base64-encoded private key)
  • OS keychain: reposell signing key
  • GitHub Actions secret: REPOSELL_SIGNING_KEY

Public key committed to: config/reposell/verification-key.pub

ci (object)

CI/CD workflow generation.

FieldTypeRequiredDefaultDescription
generate_workflowsbooleanNotrueGenerate workflows
workflowsstring[]NobothWorkflow files to generate

Environment Variables

VariableRequiredDescription
REPOSELL_SIGNING_KEYYes (if signing enabled)Base64-encoded Ed25519 private key
GITHUB_TOKENAutoGitHub token (provided by Actions)
REPOSELL_CONFIGNoPath to config file (default: reposell.yml)

Configuration Precedence

  1. Defaults (zero-config derivation)
  2. reposell.yml (explicit config)
  3. Environment variables (overrides)
  4. CLI flags (highest priority)

Validation

bash
# Validate configuration
reposell doctor

# Auto-fix safe issues
reposell doctor --fix
1
2
3
4
5

Schema

JSON Schema available at: https://reposell.dev/schemas/reposell-config-v1.json

Validate with:

bash
npx ajv validate -s schema.json -d reposell.yml
1

Made with ☕ and 🎧 by a solo developer from the Dominican Republic.

theme byReactBits