clowder.yml Syntax Reference

clowder structure

name: string # REQUIRED
protocol: protocol
defaults: defaults
sources: { string: source } # key is a reusable alias
clowder: [ project | string ] | { string: group } # REQUIRED

project

project:
  name: string # REQUIRED
  path: string
  groups: [ string ]
  remote: string
  source: string | source
  git: git
  upstream: string | upstream
  branch: string # Only one of 'branch', 'tag', or 'commit' is allowed
  tag: string # Only one of 'branch', 'tag', or 'commit' is allowed
  commit: string # Only one of 'branch', 'tag', or 'commit' is allowed

group

group: [ project | string ]
group:
  path: string
  groups: [ string ]
  defaults: defaults
  projects: [ project | string ] # REQUIRED

upstream

upstream:
  name: string # REQUIRED
  source: string | source
  remote: string

defaults

defaults:
  source: string
  remote: string
  git: git
  branch: string # Only one of 'branch', 'tag', or 'commit' is allowed
  tag: string # Only one of 'branch', 'tag', or 'commit' is allowed
  commit: string # Only one of 'branch', 'tag', or 'commit' is allowed
  upstream: upstream_defaults

upstream defaults

upstream_defaults:
  source: string
  remote: string

source

url: string # REQUIRED
protocol: protocol

Default sources available:

github:
  url: github.com
gitlab:
  url: gitlab.com
bitbucket:
  url: bitbucket.org

protocol

protocol: enum # "ssh" | "https"

git

git:
  lfs: bool
  submodules: bool | string # "recursive"
  depth: integer # Must be >= 0, where 0 indicates full clone
  config: { string: string | bool | number | null }