{"action":"created","comment":{"url":"https://api.github.com/repos/ircv3/ircv3-specifications/pulls/comments/88093867","pull_request_review_id":8675941,"id":88093867,"diff_hunk":"@@ -0,0 +1,224 @@\n+---\n+title: \"The REG command framework\"\n+layout: spec\n+copyrights:\n+  -\n+    name: \"William Pitcock\"\n+    period: \"2014-2015\"\n+    email: \"nenolod@dereferenced.org\"\n+---\n+\n+The `REG` command framework provides a unified, standardized interface for account creation and\n+validation to the network's authentication layer.  This allows for a network to provide a common\n+interface regardless of what authentication layer they have chosen for their network to operate,\n+i.e. traditional services, a different central authority, or a decentralized model similar to [IRCX][ircx].\n+\n+   [ircx]: http://en.wikipedia.org/wiki/IRCX\n+   \n+We believe that the benefit of adding a common interface for account creation and validation,\n+is helpful to the end user in discovering the capabilities offered by the authentication and\n+authority layer of the network.  Further, we believe it is helpful to client authors, so that\n+they may provide guided account creation and validation for their users, regardless of network\n+configuration.\n+\n+## The `REG` command\n+\n+The `REG` command is the main command used by the account registration subsystem.  It provides\n+several subcommands listed in the `REGCOMMANDS` ISUPPORT type.  The core sub-commands are listed\n+below:\n+\n+## The `REG CREATE` sub-command\n+\n+The `REG CREATE` command signals the intent of a client to register an account in the network's\n+authentication layer.  It is similar to current methods of signalling that intent.\n+\n+A `REG CREATE` command consists of the following format:\n+\n+    REG CREATE <accountname> [callback_namespace:]<callback> [cred_type] :<credential>\n+\n+The `credential` field specifies a credential of `cred_type`.  If there is no specified credential, then\n+the `credential` field MUST be `*`.  A passphrase type `credential` MAY have spaces in it. New credential\n+types may or may not allow spaces inside `credential`.\n+\n+The `callback` field designates an opaque value which indicates where a verification code, if any,\n+will be sent.  The callback field is implementation-specific, with namespaces being listed using the\n+`REGCALLBACKS` ISUPPORT token.  An invalid callback parameter should result in the `ERR_REG_INVALID_CALLBACK`\n+error.  In the event that a callback is not provided, the client SHOULD send `*` to indicate that\n+they are not providing a callback resource.  If a callback namespace is not explicitly provided, the IRC\n+server MAY choose to use `mailto` as a default.\n+\n+The `cred_type` field designates a value which indicates the type of supplied credential.  The accepted\n+values of the `cred_type` field is implementation-specific, with credential types being listed using the\n+`REGCREDTYPES` ISUPPORT token.  An invalid credential type parameter should result in the `ERR_REG_INVALID_CRED_TYPE`\n+error.  The client SHOULD supply a `cred_type` value, however if one is not provided the IRC server SHOULD\n+use `passphrase` as a default credential type.\n+\n+The IRC server MAY forward the `REG CREATE` command to a central authority, or process it locally. Clients\n+SHOULD NOT be sent unnecessary legacy (e.g. from NickServ) private messages or notices in response to `REG`\n+commands, where native numerics such as the ones defined in this document can replace them.\n+\n+Upon success, the IRC server MUST send the `RPL_REGISTRATION_SUCCESS` numeric, which looks like:\n+\n+| No. | Label                      | Format                                                         |\n+| --- | -------------------------- | -------------------------------------------------------------- |\n+| 920 | `RPL_REGISTRATION_SUCCESS` | `:<server> 920 <user_nickname> <accountname> :Account created` |\n+\n+If the server requires a verification token, it MUST also reply with the `RPL_REG_VERIFICATION_REQUIRED`\n+numeric, which looks like:\n+\n+| No. | Label                           | Format                                                                                                       |\n+| --- | ------------------------------- | ------------------------------------------------------------------------------------------------------------ |\n+| 927 | `RPL_REG_VERIFICATION_REQUIRED` | `:<server> 927 <user_nickname> <accountname> <callback_namespace:><callback> :A verification token was sent` |\n+\n+Upon error, the IRC server MUST send an error code that is relevant.  We suggest these numerics:\n+\n+| No. | Label                        | Format                                                                                          |\n+| --- | ---------------------------- | ----------------------------------------------------------------------------------------------- |\n+| 921 | `ERR_ACCOUNT_ALREADY_EXISTS` | `:<server> 921 <user_nickname> <accountname> :Account already exists`                           |\n+| 922 | `ERR_REG_UNSPECIFIED_ERROR`  | `:<server> 922 <user_nickname> <accountname> :<descriptive_text>`                               |\n+| 929 | `ERR_REG_INVALID_CALLBACK`   | `:<server> 929 <user_nickname> <accountname> <callback> :Callback token is invalid`             |\n+| 928 | `ERR_REG_INVALID_CRED_TYPE`  | `:<server> 928 <user_nickname> <accountname> <cred_type> :Credential type is invalid`           |\n+| 440 | `ERR_REG_UNAVAILABLE`        | `:<server> 440 <user_nickname> <subcommand> :Authentication services are currently unavailable` |\n+\n+The server MAY send additional informative text upon registration success or failure using `RPL_TEXT` or `NOTICE`.\n+\n+## The `REG VERIFY` sub-command\n+\n+The `REG VERIFY` command signals the intent of a client to submit a verification token for their\n+account to the authentication layer.  The verification token MUST be sent to a valid callback\n+resource as specified by the client in the `REG CREATE` command.\n+\n+A `REG VERIFY` command consists of the following format:\n+\n+    REG VERIFY <accountname> <auth_code>\n+\n+The IRC server MAY forward the `REG VERIFY` command to a central authority, or process it\n+locally.\n+\n+Upon success, the IRC server MUST send the `RPL_VERIFYSUCCESS` numeric, which looks like:\n+\n+| No. | Label               | Format                                                                         |\n+| --- | ------------------- | ------------------------------------------------------------------------------ |\n+| 923 | `RPL_VERIFYSUCCESS` | `:<server> 923 <user_nickname> <accountname> :Account verification successful` |\n+\n+The IRC server SHOULD also send an `RPL_LOGGEDIN` (900) numeric and consider the client to be logged in to the\n+account that has been successfully verified.\n+\n+Upon error, the IRC server MUST send an error code that is relevant.  We suggest these\n+numerics:\n+\n+| No. | Label                             | Format                                                                   |\n+| --- | --------------------------------- | ------------------------------------------------------------------------ |\n+| 924 | `ERR_ACCOUNT_ALREADY_VERIFIED`    | `:<server> 924 <user_nickname> <accountname> :Account already verified`  |\n+| 925 | `ERR_ACCOUNT_INVALID_VERIFY_CODE` | `:<server> 925 <user_nickname> <accountname> :Invalid verification code` |\n+\n+## The `REGCOMMANDS` `RPL_ISUPPORT` token\n+\n+Implementations which provide these commands SHOULD signal their availability using the `REGCOMMANDS`\n+RPL_ISUPPORT (005) token.  The `REGCOMMANDS` token takes a comma-separated list of supported\n+commands.  Other extensions MAY include additional commands in the `REGCOMMANDS` token than those\n+documented here.\n+\n+A sample 005 reply indicating support for these commands is:\n+\n+    :irc.example.com 005 kaniini REGCOMMANDS=CREATE,VERIFY :are supported by this server\n+\n+## The `REGCALLBACKS` `RPL_ISUPPORT` token\n+\n+Implementations which require a verification token should list the types of verification callbacks\n+they support, using the `REGCALLBACKS` RPL_ISUPPORT (005) token.  The `REGCALLBACKS` token takes\n+a comma-separated list of supported commands.  In general, the `REGCALLBACKS` token is limited to\n+URI schemes defined in the IANA URI schemes registry, per [RFC 4395][rfc4395].\n+\n+  [rfc3495]: https://tools.ietf.org/html/rfc4395\n+\n+In the event that verification is not required by the implementation, the `REGCALLBACKS` token should\n+be an empty value.\n+\n+A sample 005 reply indicating support for verification callbacks is:\n+\n+    :irc.example.com 005 kaniini REGCALLBACKS=mailto,sms :are supported by this server\n+\n+A sample 005 reply indicating that no verification callback methods are supported is:\n+\n+    :irc.example.com 005 kaniini REGCALLBACKS= :are supported by this server\n+\n+The first callback type SHOULD be the implementation-defined default if default callback types\n+are supported.\n+\n+## The `REGCREDTYPES` `RPL_ISUPPORT` token\n+\n+Implementations which provide support for this framework SHOULD specify the allowed credential\n+types using the `REGCREDTYPES` RPL_ISUPPORT (005) token.  The `REGCREDTYPES` token takes a\n+comma-separated list of supported commands.  Other extensions MAY include additional credential\n+types than those listed here.\n+\n+The following credential types are defined:\n+\n+  * `passphrase`: an unencrypted passphrase which is sent to the server.\n+  * `certfp`: the client certificate fingerprint as determined by the server if available.\n+    The client MAY provide an empty credential (`*`) in this case.  The server SHOULD calculate\n+    the credential using the client certificate fingerprint, if available.  If no client certificate\n+    is presented, the server SHOULD NOT advertise the availability of this credential type.\n+\n+A sample 005 reply indicating support for credential types is:\n+\n+    :irc.example.com 005 kaniini REGCREDTYPES=passphrase,certfp :are supported by this server\n+\n+The first credential type SHOULD be the implementation-defined default if default credential types\n+are supported.","path":"extensions/reg-core-3.3.md","position":169,"original_position":169,"commit_id":"142415fe8989959db4146d68ba111e79c8784706","original_commit_id":"142415fe8989959db4146d68ba111e79c8784706","user":{"login":"ProgVal","id":406946,"avatar_url":"https://avatars.githubusercontent.com/u/406946?v=3","gravatar_id":"","url":"https://api.github.com/users/ProgVal","html_url":"https://github.com/ProgVal","followers_url":"https://api.github.com/users/ProgVal/followers","following_url":"https://api.github.com/users/ProgVal/following{/other_user}","gists_url":"https://api.github.com/users/ProgVal/gists{/gist_id}","starred_url":"https://api.github.com/users/ProgVal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ProgVal/subscriptions","organizations_url":"https://api.github.com/users/ProgVal/orgs","repos_url":"https://api.github.com/users/ProgVal/repos","events_url":"https://api.github.com/users/ProgVal/events{/privacy}","received_events_url":"https://api.github.com/users/ProgVal/received_events","type":"User","site_admin":false},"body":"I did not understand this line at first.\r\nDo you mean this? “The **order** credential type SHOULD be the implementation-defined default if **both** credential types are supported.","created_at":"2016-11-15T19:28:42Z","updated_at":"2016-11-15T19:29:22Z","html_url":"https://github.com/ircv3/ircv3-specifications/pull/276#discussion_r88093867","pull_request_url":"https://api.github.com/repos/ircv3/ircv3-specifications/pulls/276","_links":{"self":{"href":"https://api.github.com/repos/ircv3/ircv3-specifications/pulls/comments/88093867"},"html":{"href":"https://github.com/ircv3/ircv3-specifications/pull/276#discussion_r88093867"},"pull_request":{"href":"https://api.github.com/repos/ircv3/ircv3-specifications/pulls/276"}}},"pull_request":{"url":"https://api.github.com/repos/ircv3/ircv3-specifications/pulls/276","id":92515398,"html_url":"https://github.com/ircv3/ircv3-specifications/pull/276","diff_url":"https://github.com/ircv3/ircv3-specifications/pull/276.diff","patch_url":"https://github.com/ircv3/ircv3-specifications/pull/276.patch","issue_url":"https://api.github.com/repos/ircv3/ircv3-specifications/issues/276","number":276,"state":"open","locked":false,"title":"Add register-and-verify extension","user":{"login":"DanielOaks","id":251281,"avatar_url":"https://avatars.githubusercontent.com/u/251281?v=3","gravatar_id":"","url":"https://api.github.com/users/DanielOaks","html_url":"https://github.com/DanielOaks","followers_url":"https://api.github.com/users/DanielOaks/followers","following_url":"https://api.github.com/users/DanielOaks/following{/other_user}","gists_url":"https://api.github.com/users/DanielOaks/gists{/gist_id}","starred_url":"https://api.github.com/users/DanielOaks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DanielOaks/subscriptions","organizations_url":"https://api.github.com/users/DanielOaks/orgs","repos_url":"https://api.github.com/users/DanielOaks/repos","events_url":"https://api.github.com/users/DanielOaks/events{/privacy}","received_events_url":"https://api.github.com/users/DanielOaks/received_events","type":"User","site_admin":false},"body":"The `REG` command framework provides a unified, standardized interface for account creation and validation to the network's authentication layer.  This allows for a network to provide a common interface regardless of what authentication layer they have chosen for their network to operate.\r\n\r\nThis allows clients to develop tailored interfaces for registering accounts.\r\n\r\nThis is the same spec as in #152 but cleaned up and with some bugs fixed. Asked kaniini if I could submit some fixes a while back and he said I should just throw a new PR in.\r\n\r\n*edit:* I think the last thing missing here is the ability to know whether the net uses your nickname as the account name or not. I'll take a look at that and get something worked out there","created_at":"2016-11-07T02:29:09Z","updated_at":"2016-11-15T19:29:22Z","closed_at":null,"merged_at":null,"merge_commit_sha":"513c320867f404ba84b03812049b174caecb7e05","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/ircv3/ircv3-specifications/pulls/276/commits","review_comments_url":"https://api.github.com/repos/ircv3/ircv3-specifications/pulls/276/comments","review_comment_url":"https://api.github.com/repos/ircv3/ircv3-specifications/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ircv3/ircv3-specifications/issues/276/comments","statuses_url":"https://api.github.com/repos/ircv3/ircv3-specifications/statuses/142415fe8989959db4146d68ba111e79c8784706","head":{"label":"DanielOaks:register-and-verify","ref":"register-and-verify","sha":"142415fe8989959db4146d68ba111e79c8784706","user":{"login":"DanielOaks","id":251281,"avatar_url":"https://avatars.githubusercontent.com/u/251281?v=3","gravatar_id":"","url":"https://api.github.com/users/DanielOaks","html_url":"https://github.com/DanielOaks","followers_url":"https://api.github.com/users/DanielOaks/followers","following_url":"https://api.github.com/users/DanielOaks/following{/other_user}","gists_url":"https://api.github.com/users/DanielOaks/gists{/gist_id}","starred_url":"https://api.github.com/users/DanielOaks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DanielOaks/subscriptions","organizations_url":"https://api.github.com/users/DanielOaks/orgs","repos_url":"https://api.github.com/users/DanielOaks/repos","events_url":"https://api.github.com/users/DanielOaks/events{/privacy}","received_events_url":"https://api.github.com/users/DanielOaks/received_events","type":"User","site_admin":false},"repo":{"id":32207436,"name":"ircv3-specifications","full_name":"DanielOaks/ircv3-specifications","owner":{"login":"DanielOaks","id":251281,"avatar_url":"https://avatars.githubusercontent.com/u/251281?v=3","gravatar_id":"","url":"https://api.github.com/users/DanielOaks","html_url":"https://github.com/DanielOaks","followers_url":"https://api.github.com/users/DanielOaks/followers","following_url":"https://api.github.com/users/DanielOaks/following{/other_user}","gists_url":"https://api.github.com/users/DanielOaks/gists{/gist_id}","starred_url":"https://api.github.com/users/DanielOaks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DanielOaks/subscriptions","organizations_url":"https://api.github.com/users/DanielOaks/orgs","repos_url":"https://api.github.com/users/DanielOaks/repos","events_url":"https://api.github.com/users/DanielOaks/events{/privacy}","received_events_url":"https://api.github.com/users/DanielOaks/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/DanielOaks/ircv3-specifications","description":"IRCv3 specifications","fork":true,"url":"https://api.github.com/repos/DanielOaks/ircv3-specifications","forks_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/forks","keys_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/teams","hooks_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/hooks","issue_events_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/issues/events{/number}","events_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/events","assignees_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/assignees{/user}","branches_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/branches{/branch}","tags_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/tags","blobs_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/git/refs{/sha}","trees_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/statuses/{sha}","languages_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/languages","stargazers_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/stargazers","contributors_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/contributors","subscribers_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/subscribers","subscription_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/subscription","commits_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/commits{/sha}","git_commits_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/git/commits{/sha}","comments_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/comments{/number}","issue_comment_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/issues/comments{/number}","contents_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/contents/{+path}","compare_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/merges","archive_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/downloads","issues_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/issues{/number}","pulls_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/pulls{/number}","milestones_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/milestones{/number}","notifications_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/labels{/name}","releases_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/releases{/id}","deployments_url":"https://api.github.com/repos/DanielOaks/ircv3-specifications/deployments","created_at":"2015-03-14T11:09:13Z","updated_at":"2015-05-03T21:23:09Z","pushed_at":"2016-10-13T12:16:16Z","git_url":"git://github.com/DanielOaks/ircv3-specifications.git","ssh_url":"git@github.com:DanielOaks/ircv3-specifications.git","clone_url":"https://github.com/DanielOaks/ircv3-specifications.git","svn_url":"https://github.com/DanielOaks/ircv3-specifications","homepage":"http://ircv3.org/","size":349,"stargazers_count":1,"watchers_count":1,"language":"CSS","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":1,"default_branch":"gh-pages"}},"base":{"label":"ircv3:master","ref":"master","sha":"8eb2bd8b21f1216a21ffd88eb9b7cf94057c27af","user":{"login":"ircv3","id":6295495,"avatar_url":"https://avatars.githubusercontent.com/u/6295495?v=3","gravatar_id":"","url":"https://api.github.com/users/ircv3","html_url":"https://github.com/ircv3","followers_url":"https://api.github.com/users/ircv3/followers","following_url":"https://api.github.com/users/ircv3/following{/other_user}","gists_url":"https://api.github.com/users/ircv3/gists{/gist_id}","starred_url":"https://api.github.com/users/ircv3/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ircv3/subscriptions","organizations_url":"https://api.github.com/users/ircv3/orgs","repos_url":"https://api.github.com/users/ircv3/repos","events_url":"https://api.github.com/users/ircv3/events{/privacy}","received_events_url":"https://api.github.com/users/ircv3/received_events","type":"Organization","site_admin":false},"repo":{"id":4154671,"name":"ircv3-specifications","full_name":"ircv3/ircv3-specifications","owner":{"login":"ircv3","id":6295495,"avatar_url":"https://avatars.githubusercontent.com/u/6295495?v=3","gravatar_id":"","url":"https://api.github.com/users/ircv3","html_url":"https://github.com/ircv3","followers_url":"https://api.github.com/users/ircv3/followers","following_url":"https://api.github.com/users/ircv3/following{/other_user}","gists_url":"https://api.github.com/users/ircv3/gists{/gist_id}","starred_url":"https://api.github.com/users/ircv3/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ircv3/subscriptions","organizations_url":"https://api.github.com/users/ircv3/orgs","repos_url":"https://api.github.com/users/ircv3/repos","events_url":"https://api.github.com/users/ircv3/events{/privacy}","received_events_url":"https://api.github.com/users/ircv3/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ircv3/ircv3-specifications","description":"IRCv3 specifications","fork":false,"url":"https://api.github.com/repos/ircv3/ircv3-specifications","forks_url":"https://api.github.com/repos/ircv3/ircv3-specifications/forks","keys_url":"https://api.github.com/repos/ircv3/ircv3-specifications/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ircv3/ircv3-specifications/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ircv3/ircv3-specifications/teams","hooks_url":"https://api.github.com/repos/ircv3/ircv3-specifications/hooks","issue_events_url":"https://api.github.com/repos/ircv3/ircv3-specifications/issues/events{/number}","events_url":"https://api.github.com/repos/ircv3/ircv3-specifications/events","assignees_url":"https://api.github.com/repos/ircv3/ircv3-specifications/assignees{/user}","branches_url":"https://api.github.com/repos/ircv3/ircv3-specifications/branches{/branch}","tags_url":"https://api.github.com/repos/ircv3/ircv3-specifications/tags","blobs_url":"https://api.github.com/repos/ircv3/ircv3-specifications/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ircv3/ircv3-specifications/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ircv3/ircv3-specifications/git/refs{/sha}","trees_url":"https://api.github.com/repos/ircv3/ircv3-specifications/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ircv3/ircv3-specifications/statuses/{sha}","languages_url":"https://api.github.com/repos/ircv3/ircv3-specifications/languages","stargazers_url":"https://api.github.com/repos/ircv3/ircv3-specifications/stargazers","contributors_url":"https://api.github.com/repos/ircv3/ircv3-specifications/contributors","subscribers_url":"https://api.github.com/repos/ircv3/ircv3-specifications/subscribers","subscription_url":"https://api.github.com/repos/ircv3/ircv3-specifications/subscription","commits_url":"https://api.github.com/repos/ircv3/ircv3-specifications/commits{/sha}","git_commits_url":"https://api.github.com/repos/ircv3/ircv3-specifications/git/commits{/sha}","comments_url":"https://api.github.com/repos/ircv3/ircv3-specifications/comments{/number}","issue_comment_url":"https://api.github.com/repos/ircv3/ircv3-specifications/issues/comments{/number}","contents_url":"https://api.github.com/repos/ircv3/ircv3-specifications/contents/{+path}","compare_url":"https://api.github.com/repos/ircv3/ircv3-specifications/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ircv3/ircv3-specifications/merges","archive_url":"https://api.github.com/repos/ircv3/ircv3-specifications/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ircv3/ircv3-specifications/downloads","issues_url":"https://api.github.com/repos/ircv3/ircv3-specifications/issues{/number}","pulls_url":"https://api.github.com/repos/ircv3/ircv3-specifications/pulls{/number}","milestones_url":"https://api.github.com/repos/ircv3/ircv3-specifications/milestones{/number}","notifications_url":"https://api.github.com/repos/ircv3/ircv3-specifications/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ircv3/ircv3-specifications/labels{/name}","releases_url":"https://api.github.com/repos/ircv3/ircv3-specifications/releases{/id}","deployments_url":"https://api.github.com/repos/ircv3/ircv3-specifications/deployments","created_at":"2012-04-27T03:25:11Z","updated_at":"2016-11-07T07:50:51Z","pushed_at":"2016-11-15T18:48:02Z","git_url":"git://github.com/ircv3/ircv3-specifications.git","ssh_url":"git@github.com:ircv3/ircv3-specifications.git","clone_url":"https://github.com/ircv3/ircv3-specifications.git","svn_url":"https://github.com/ircv3/ircv3-specifications","homepage":"http://ircv3.net/","size":443,"stargazers_count":400,"watchers_count":400,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":33,"mirror_url":null,"open_issues_count":49,"forks":33,"open_issues":49,"watchers":400,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ircv3/ircv3-specifications/pulls/276"},"html":{"href":"https://github.com/ircv3/ircv3-specifications/pull/276"},"issue":{"href":"https://api.github.com/repos/ircv3/ircv3-specifications/issues/276"},"comments":{"href":"https://api.github.com/repos/ircv3/ircv3-specifications/issues/276/comments"},"review_comments":{"href":"https://api.github.com/repos/ircv3/ircv3-specifications/pulls/276/comments"},"review_comment":{"href":"https://api.github.com/repos/ircv3/ircv3-specifications/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ircv3/ircv3-specifications/pulls/276/commits"},"statuses":{"href":"https://api.github.com/repos/ircv3/ircv3-specifications/statuses/142415fe8989959db4146d68ba111e79c8784706"}}}}
{"actor":{"display_login":"ProgVal"}}