{
  "$id": "https://firefox-ci-tc.services.mozilla.com/schemas/github/v1/taskcluster-github-config.json#",
  "$schema": "https://firefox-ci-tc.services.mozilla.com/schemas/common/metaschema.json#",
  "additionalProperties": false,
  "description": "Description of a taskcluster.yml file v0, which may be used to generate a taskgraph\nand tasks.\n",
  "properties": {
    "allowPullRequests": {
      "description": "Policy for creating tasks for pull requests.  The effective policy is found in this property\nin the `.taskcluster.yml` file in the repository's default branch.  See the documentation for\ndetailed definition of the options.\n",
      "enum": [
        "public",
        "collaborators"
      ],
      "type": "string"
    },
    "metadata": {
      "additionalProperties": false,
      "description": "Required task graph metadata",
      "properties": {
        "description": {
          "description": "Human readable description of the task, please **explain** what the\ntask does. A few lines of documentation is not going to hurt you.\n",
          "maxLength": 32768,
          "title": "Description",
          "type": "string"
        },
        "name": {
          "description": "Human readable name of task, used to very briefly given an idea about\nwhat the task does.\n",
          "maxLength": 255,
          "title": "Name",
          "type": "string"
        },
        "owner": {
          "description": "E-mail of person who caused this task, e.g. the person who did\n`hg push`. The person we should contact to ask why this task is here.\n",
          "maxLength": 255,
          "title": "Owner",
          "type": "string"
        },
        "source": {
          "description": "Link to source of this task, should specify a file, revision and\nrepository. This should be place someone can go an do a git/hg blame\nto who came up with recipe for this task.\n",
          "maxLength": 4096,
          "title": "Source",
          "type": "string"
        }
      },
      "required": [
        "name",
        "description",
        "owner",
        "source"
      ],
      "type": "object"
    },
    "tasks": {
      "default": [],
      "items": {
        "additionalProperties": true,
        "description": "Definition of a task that can be scheduled\n",
        "properties": {
          "created": {
            "default": "{{ $fromNow }}",
            "description": "Creation time of task",
            "title": "Created",
            "type": "string"
          },
          "deadline": {
            "default": "{{ '1 day' | $fromNow }}",
            "description": "Deadline of the task, `pending` and `running` runs are resolved as **failed** if not resolved by other means before the deadline",
            "title": "Deadline",
            "type": "string"
          }
        },
        "required": [],
        "title": "Task Definition",
        "type": "object"
      },
      "type": "array",
      "uniqueItems": false
    },
    "version": {
      "description": ".taskcluster.yml version",
      "enum": [
        0
      ],
      "type": "integer"
    }
  },
  "required": [
    "version"
  ],
  "title": ".taskcluster.yml format",
  "type": "object"
}