{"action":"created","comment":{"url":"https://api.github.com/repos/checkmate/chessboard/pulls/comments/31409523","id":31409523,"diff_hunk":"@@ -0,0 +1,927 @@\n+#\n+# Schema Definition and Documentation\n+#\n+# This file is the source of truth for the schema in use. It can be used to\n+# generate the glossary, documentation, and the description of validation\n+# errors.\n+#\n+#\n+# This enables verbose error messages such as:\n+#\n+#   $ app parse --verbose\n+#   Parsing Error: constraint 'foo' is not a dict\n+#\n+#   A constraint is used to restrict the range of valid choices for a setting.\n+#   A constraint can be supplied in two formats; long form and shorthand. The\n+#   shorthand format exists to simplify writing blueprints by support simple\n+#   `setting: value` entries such as `os: Ununtu 14.04`.\n+#\n+#   The long form requires explicit key/value pairs in the format:\n+#     setting: <name>\n+#     <condition>: <value>\n+#     message: <optional error message>\n+#   In YAML, this would look like:\n+#     constraints:\n+#     - setting: os\n+#       value: Ubuntu 14.04\n+#       message: This app only works on Ubuntu 14.04!\n+#     - setting: memory\n+#       greater-than-or-equal-to: 1Gb\n+#\n+#   Supported conditions are:\n+#\n+#   * `greater-than`: self-explanatory (for strings or integers)\n+#   * `less-than`: self-explanatory (for strings or integers)\n+#   * `greater-than-or-equal-to`: self-explanatory (for strings or integers)\n+#   * `less-than-or-equal-to`: self-explanatory (for strings or integers)\n+#   * `min-length`: for strings or text\n+#   * `max-length`: for strings or text (including URLs)\n+#   * `allowed-chars`: for strings and text types. Ex. \"ABCDEFGabcdefg012345657!&@\"\n+#   * `required-chars`: for strings and text types. Ex. \"ABCDEFG\"\n+#   * `in`: a list of acceptable values (these could also be used by clients to\n+#     display drop-downs)\n+#   * `protocols`: unique to URL types. This lists allowed protocols in the URL.\n+#     See also display-hints for `encrypted-protocols`\n+#   * `regex`: do not use look-forward/behind. Keep these simple so they are\n+#     supported in javascript (client) and python (server). While many of the above\n+#     can also be written as regex rules, both are available to blueprint authors\n+#     to use the one that suits them best.\n+#   * `check`: evaluates a constraint using constructs like \"if\", \"if-not\",\n+#     \"and\", etc...\n+#   $\n+#\n+\n+blueprint:\n+  description: 'A model describing an application topology'\n+  docs: |\n+    A blueprint is a description of an application, the definitions of its\n+    components, their relations to other services that they support or require, and\n+    how they all connect. It can also contain one or more topologies describing\n+    different architectural configurations for the application.\n+\n+    A blueprint has a data schema and may be stored as a file, in memory, or in a\n+    database.\n+\n+  fields:\n+    id:\n+      type: string  # not necessarily a UUID,","path":"chessboard/schema_docs.yaml","position":67,"original_position":67,"commit_id":"d752a0159221c0e053affeba823f0b07b6e327fb","original_commit_id":"d752a0159221c0e053affeba823f0b07b6e327fb","user":{"login":"larsbutler","id":464394,"avatar_url":"https://avatars.githubusercontent.com/u/464394?v=3","gravatar_id":"","url":"https://api.github.com/users/larsbutler","html_url":"https://github.com/larsbutler","followers_url":"https://api.github.com/users/larsbutler/followers","following_url":"https://api.github.com/users/larsbutler/following{/other_user}","gists_url":"https://api.github.com/users/larsbutler/gists{/gist_id}","starred_url":"https://api.github.com/users/larsbutler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/larsbutler/subscriptions","organizations_url":"https://api.github.com/users/larsbutler/orgs","repos_url":"https://api.github.com/users/larsbutler/repos","events_url":"https://api.github.com/users/larsbutler/events{/privacy}","received_events_url":"https://api.github.com/users/larsbutler/received_events","type":"User","site_admin":false},"body":"Trailing comma.","created_at":"2015-06-01T09:03:03Z","updated_at":"2015-06-01T09:03:03Z","html_url":"https://github.com/checkmate/chessboard/pull/28#discussion_r31409523","pull_request_url":"https://api.github.com/repos/checkmate/chessboard/pulls/28","_links":{"self":{"href":"https://api.github.com/repos/checkmate/chessboard/pulls/comments/31409523"},"html":{"href":"https://github.com/checkmate/chessboard/pull/28#discussion_r31409523"},"pull_request":{"href":"https://api.github.com/repos/checkmate/chessboard/pulls/28"}}},"pull_request":{"url":"https://api.github.com/repos/checkmate/chessboard/pulls/28","id":36409752,"html_url":"https://github.com/checkmate/chessboard/pull/28","diff_url":"https://github.com/checkmate/chessboard/pull/28.diff","patch_url":"https://github.com/checkmate/chessboard/pull/28.patch","issue_url":"https://api.github.com/repos/checkmate/chessboard/issues/28","number":28,"state":"open","locked":false,"title":"Integrate Machine-Readable Schema Documentation","user":{"login":"ziadsawalha","id":729918,"avatar_url":"https://avatars.githubusercontent.com/u/729918?v=3","gravatar_id":"","url":"https://api.github.com/users/ziadsawalha","html_url":"https://github.com/ziadsawalha","followers_url":"https://api.github.com/users/ziadsawalha/followers","following_url":"https://api.github.com/users/ziadsawalha/following{/other_user}","gists_url":"https://api.github.com/users/ziadsawalha/gists{/gist_id}","starred_url":"https://api.github.com/users/ziadsawalha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ziadsawalha/subscriptions","organizations_url":"https://api.github.com/users/ziadsawalha/orgs","repos_url":"https://api.github.com/users/ziadsawalha/repos","events_url":"https://api.github.com/users/ziadsawalha/events{/privacy}","received_events_url":"https://api.github.com/users/ziadsawalha/received_events","type":"User","site_admin":false},"body":"- Added `schema_docs.yaml` which has documentation brought in from other README files.\r\n- Integrate that into the schema.py module to support returning those docs on errors.\r\n\r\nAddresses #27 ","created_at":"2015-05-28T14:04:37Z","updated_at":"2015-06-01T09:03:03Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e9254e9fdb966f18a0495038331871649bc9fcba","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/checkmate/chessboard/pulls/28/commits","review_comments_url":"https://api.github.com/repos/checkmate/chessboard/pulls/28/comments","review_comment_url":"https://api.github.com/repos/checkmate/chessboard/pulls/comments{/number}","comments_url":"https://api.github.com/repos/checkmate/chessboard/issues/28/comments","statuses_url":"https://api.github.com/repos/checkmate/chessboard/statuses/d752a0159221c0e053affeba823f0b07b6e327fb","head":{"label":"ziadsawalha:docs","ref":"docs","sha":"d752a0159221c0e053affeba823f0b07b6e327fb","user":{"login":"ziadsawalha","id":729918,"avatar_url":"https://avatars.githubusercontent.com/u/729918?v=3","gravatar_id":"","url":"https://api.github.com/users/ziadsawalha","html_url":"https://github.com/ziadsawalha","followers_url":"https://api.github.com/users/ziadsawalha/followers","following_url":"https://api.github.com/users/ziadsawalha/following{/other_user}","gists_url":"https://api.github.com/users/ziadsawalha/gists{/gist_id}","starred_url":"https://api.github.com/users/ziadsawalha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ziadsawalha/subscriptions","organizations_url":"https://api.github.com/users/ziadsawalha/orgs","repos_url":"https://api.github.com/users/ziadsawalha/repos","events_url":"https://api.github.com/users/ziadsawalha/events{/privacy}","received_events_url":"https://api.github.com/users/ziadsawalha/received_events","type":"User","site_admin":false},"repo":{"id":34249190,"name":"chessboard","full_name":"ziadsawalha/chessboard","owner":{"login":"ziadsawalha","id":729918,"avatar_url":"https://avatars.githubusercontent.com/u/729918?v=3","gravatar_id":"","url":"https://api.github.com/users/ziadsawalha","html_url":"https://github.com/ziadsawalha","followers_url":"https://api.github.com/users/ziadsawalha/followers","following_url":"https://api.github.com/users/ziadsawalha/following{/other_user}","gists_url":"https://api.github.com/users/ziadsawalha/gists{/gist_id}","starred_url":"https://api.github.com/users/ziadsawalha/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ziadsawalha/subscriptions","organizations_url":"https://api.github.com/users/ziadsawalha/orgs","repos_url":"https://api.github.com/users/ziadsawalha/repos","events_url":"https://api.github.com/users/ziadsawalha/events{/privacy}","received_events_url":"https://api.github.com/users/ziadsawalha/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ziadsawalha/chessboard","description":"","fork":true,"url":"https://api.github.com/repos/ziadsawalha/chessboard","forks_url":"https://api.github.com/repos/ziadsawalha/chessboard/forks","keys_url":"https://api.github.com/repos/ziadsawalha/chessboard/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ziadsawalha/chessboard/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ziadsawalha/chessboard/teams","hooks_url":"https://api.github.com/repos/ziadsawalha/chessboard/hooks","issue_events_url":"https://api.github.com/repos/ziadsawalha/chessboard/issues/events{/number}","events_url":"https://api.github.com/repos/ziadsawalha/chessboard/events","assignees_url":"https://api.github.com/repos/ziadsawalha/chessboard/assignees{/user}","branches_url":"https://api.github.com/repos/ziadsawalha/chessboard/branches{/branch}","tags_url":"https://api.github.com/repos/ziadsawalha/chessboard/tags","blobs_url":"https://api.github.com/repos/ziadsawalha/chessboard/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ziadsawalha/chessboard/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ziadsawalha/chessboard/git/refs{/sha}","trees_url":"https://api.github.com/repos/ziadsawalha/chessboard/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ziadsawalha/chessboard/statuses/{sha}","languages_url":"https://api.github.com/repos/ziadsawalha/chessboard/languages","stargazers_url":"https://api.github.com/repos/ziadsawalha/chessboard/stargazers","contributors_url":"https://api.github.com/repos/ziadsawalha/chessboard/contributors","subscribers_url":"https://api.github.com/repos/ziadsawalha/chessboard/subscribers","subscription_url":"https://api.github.com/repos/ziadsawalha/chessboard/subscription","commits_url":"https://api.github.com/repos/ziadsawalha/chessboard/commits{/sha}","git_commits_url":"https://api.github.com/repos/ziadsawalha/chessboard/git/commits{/sha}","comments_url":"https://api.github.com/repos/ziadsawalha/chessboard/comments{/number}","issue_comment_url":"https://api.github.com/repos/ziadsawalha/chessboard/issues/comments{/number}","contents_url":"https://api.github.com/repos/ziadsawalha/chessboard/contents/{+path}","compare_url":"https://api.github.com/repos/ziadsawalha/chessboard/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ziadsawalha/chessboard/merges","archive_url":"https://api.github.com/repos/ziadsawalha/chessboard/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ziadsawalha/chessboard/downloads","issues_url":"https://api.github.com/repos/ziadsawalha/chessboard/issues{/number}","pulls_url":"https://api.github.com/repos/ziadsawalha/chessboard/pulls{/number}","milestones_url":"https://api.github.com/repos/ziadsawalha/chessboard/milestones{/number}","notifications_url":"https://api.github.com/repos/ziadsawalha/chessboard/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ziadsawalha/chessboard/labels{/name}","releases_url":"https://api.github.com/repos/ziadsawalha/chessboard/releases{/id}","created_at":"2015-04-20T08:47:39Z","updated_at":"2015-04-20T08:22:06Z","pushed_at":"2015-05-29T18:58:25Z","git_url":"git://github.com/ziadsawalha/chessboard.git","ssh_url":"git@github.com:ziadsawalha/chessboard.git","clone_url":"https://github.com/ziadsawalha/chessboard.git","svn_url":"https://github.com/ziadsawalha/chessboard","homepage":null,"size":240,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"checkmate:master","ref":"master","sha":"9fcdcd4532067d94cea52b0f6d1241d64276cf66","user":{"login":"checkmate","id":2694892,"avatar_url":"https://avatars.githubusercontent.com/u/2694892?v=3","gravatar_id":"","url":"https://api.github.com/users/checkmate","html_url":"https://github.com/checkmate","followers_url":"https://api.github.com/users/checkmate/followers","following_url":"https://api.github.com/users/checkmate/following{/other_user}","gists_url":"https://api.github.com/users/checkmate/gists{/gist_id}","starred_url":"https://api.github.com/users/checkmate/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/checkmate/subscriptions","organizations_url":"https://api.github.com/users/checkmate/orgs","repos_url":"https://api.github.com/users/checkmate/repos","events_url":"https://api.github.com/users/checkmate/events{/privacy}","received_events_url":"https://api.github.com/users/checkmate/received_events","type":"Organization","site_admin":false},"repo":{"id":34247900,"name":"chessboard","full_name":"checkmate/chessboard","owner":{"login":"checkmate","id":2694892,"avatar_url":"https://avatars.githubusercontent.com/u/2694892?v=3","gravatar_id":"","url":"https://api.github.com/users/checkmate","html_url":"https://github.com/checkmate","followers_url":"https://api.github.com/users/checkmate/followers","following_url":"https://api.github.com/users/checkmate/following{/other_user}","gists_url":"https://api.github.com/users/checkmate/gists{/gist_id}","starred_url":"https://api.github.com/users/checkmate/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/checkmate/subscriptions","organizations_url":"https://api.github.com/users/checkmate/orgs","repos_url":"https://api.github.com/users/checkmate/repos","events_url":"https://api.github.com/users/checkmate/events{/privacy}","received_events_url":"https://api.github.com/users/checkmate/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/checkmate/chessboard","description":"","fork":false,"url":"https://api.github.com/repos/checkmate/chessboard","forks_url":"https://api.github.com/repos/checkmate/chessboard/forks","keys_url":"https://api.github.com/repos/checkmate/chessboard/keys{/key_id}","collaborators_url":"https://api.github.com/repos/checkmate/chessboard/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/checkmate/chessboard/teams","hooks_url":"https://api.github.com/repos/checkmate/chessboard/hooks","issue_events_url":"https://api.github.com/repos/checkmate/chessboard/issues/events{/number}","events_url":"https://api.github.com/repos/checkmate/chessboard/events","assignees_url":"https://api.github.com/repos/checkmate/chessboard/assignees{/user}","branches_url":"https://api.github.com/repos/checkmate/chessboard/branches{/branch}","tags_url":"https://api.github.com/repos/checkmate/chessboard/tags","blobs_url":"https://api.github.com/repos/checkmate/chessboard/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/checkmate/chessboard/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/checkmate/chessboard/git/refs{/sha}","trees_url":"https://api.github.com/repos/checkmate/chessboard/git/trees{/sha}","statuses_url":"https://api.github.com/repos/checkmate/chessboard/statuses/{sha}","languages_url":"https://api.github.com/repos/checkmate/chessboard/languages","stargazers_url":"https://api.github.com/repos/checkmate/chessboard/stargazers","contributors_url":"https://api.github.com/repos/checkmate/chessboard/contributors","subscribers_url":"https://api.github.com/repos/checkmate/chessboard/subscribers","subscription_url":"https://api.github.com/repos/checkmate/chessboard/subscription","commits_url":"https://api.github.com/repos/checkmate/chessboard/commits{/sha}","git_commits_url":"https://api.github.com/repos/checkmate/chessboard/git/commits{/sha}","comments_url":"https://api.github.com/repos/checkmate/chessboard/comments{/number}","issue_comment_url":"https://api.github.com/repos/checkmate/chessboard/issues/comments{/number}","contents_url":"https://api.github.com/repos/checkmate/chessboard/contents/{+path}","compare_url":"https://api.github.com/repos/checkmate/chessboard/compare/{base}...{head}","merges_url":"https://api.github.com/repos/checkmate/chessboard/merges","archive_url":"https://api.github.com/repos/checkmate/chessboard/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/checkmate/chessboard/downloads","issues_url":"https://api.github.com/repos/checkmate/chessboard/issues{/number}","pulls_url":"https://api.github.com/repos/checkmate/chessboard/pulls{/number}","milestones_url":"https://api.github.com/repos/checkmate/chessboard/milestones{/number}","notifications_url":"https://api.github.com/repos/checkmate/chessboard/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/checkmate/chessboard/labels{/name}","releases_url":"https://api.github.com/repos/checkmate/chessboard/releases{/id}","created_at":"2015-04-20T08:22:06Z","updated_at":"2015-05-05T09:38:53Z","pushed_at":"2015-05-29T18:58:25Z","git_url":"git://github.com/checkmate/chessboard.git","ssh_url":"git@github.com:checkmate/chessboard.git","clone_url":"https://github.com/checkmate/chessboard.git","svn_url":"https://github.com/checkmate/chessboard","homepage":null,"size":545,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":14,"forks":2,"open_issues":14,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/checkmate/chessboard/pulls/28"},"html":{"href":"https://github.com/checkmate/chessboard/pull/28"},"issue":{"href":"https://api.github.com/repos/checkmate/chessboard/issues/28"},"comments":{"href":"https://api.github.com/repos/checkmate/chessboard/issues/28/comments"},"review_comments":{"href":"https://api.github.com/repos/checkmate/chessboard/pulls/28/comments"},"review_comment":{"href":"https://api.github.com/repos/checkmate/chessboard/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/checkmate/chessboard/pulls/28/commits"},"statuses":{"href":"https://api.github.com/repos/checkmate/chessboard/statuses/d752a0159221c0e053affeba823f0b07b6e327fb"}}}}