{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "/comment/gitalk.json",
  "description": "Gitalk comment plugin configurations",
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "const": "gitalk"
    },
    "client_id": {
      "type": "string",
      "description": "GitHub application client ID"
    },
    "client_secret": {
      "type": "string",
      "description": "GitHub application client secret"
    },
    "repo": {
      "type": "string",
      "description": "GitHub repository"
    },
    "owner": {
      "type": "string",
      "description": "GitHub repository owner. Can be personal user or organization"
    },
    "admin": {
      "type": "array",
      "description": "GitHub repository owner and collaborators. (Users who having write access to this repository)",
      "items": {
        "type": "string"
      }
    },
    "per_page": {
      "type": "number",
      "description": "Pagination size, with maximum 100",
      "default": 10,
      "nullable": true
    },
    "distraction_free_mode": {
      "type": "boolean",
      "description": "Facebook-like distraction free mode",
      "default": false,
      "nullable": true
    },
    "pager_direction": {
      "type": "string",
      "description": "Comment sorting direction, available values are `last` and `first`",
      "default": "last",
      "nullable": true
    },
    "create_issue_manually": {
      "type": "boolean",
      "description": "Create GitHub issues manually for each page",
      "default": false,
      "nullable": true
    },
    "proxy": {
      "type": "string",
      "description": "GitHub oauth request reverse proxy for CORS",
      "nullable": true
    },
    "flip_move_options": {
      "type": "object",
      "description": "Comment list animation",
      "nullable": true
    },
    "enable_hotkey": {
      "type": "boolean",
      "description": "Enable hot key (cmd|ctrl + enter) submit comment",
      "default": true,
      "nullable": true
    },
    "language": {
      "type": "string",
      "description": "Name of the supported language",
      "nullable": true
    }
  },
  "required": ["type", "client_id", "client_secret", "repo", "owner", "admin"]
}
