{"action":"created","comment":{"url":"https://api.github.com/repos/corda/corda/pulls/comments/167532240","pull_request_review_id":95750067,"id":167532240,"diff_hunk":"@@ -1,49 +1,148 @@\n Release notes\n =============\n \n-Here are release notes for each snapshot release from M9 onwards.\n+Release 3.0\n+-----------\n \n-Unreleased\n-----------\n-* X.509 certificates now have an extension that specifies the Corda role the certificate is used for, and the role\n-  hierarchy is now enforced in the validation code. This only has impact on those developing integrations with external\n-  PKI solutions, in most cases it is managed transparently by Corda. A formal specification of the extension can be\n-  found at see :doc:`permissioning-certificate-specification`.\n+Corda 3.0 is here and brings with it wire stability and a host of other exciting features that aim to enhance\n+the developer and user experience whilst providing for the long term usability of deployed Corda instances. It\n+will provide functionality to ensure anyone wishing to move to the anticipated release of R3 Corda can do so\n+seamlessly and with the assurance stateful data persisted to the vault will remain understandable between\n+newer and older nodes.\n+\n+Special Thanks\n+~~~~~~~~~~~~~~\n+\n+As ever, we are grateful to the enthusiastic user and developer community that has  grown up to surround Corda.\n+As an open project we are always grateful to take code contributions from individual users where they feel they\n+can add functionality useful to themselves and the wider community.\n+\n+As such we'd like to extend special thanks to\n+\n+  * Ben Wyeth got providing a mechanism for registering a callback on app shutdown\n+  * Tomas Tauber for adding support for running the vault service using PostgresSQL in place of in memory H2 service\n+\n+Significant Changes in 3.0\n+~~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+* **Wire Stability**:\n+\n+  Wire stability brings the same promise to developers for data that API stability did for code. From this point forward Corda will\n+  remain able to always read States generated by older and newer versions of itself. This allows system to be deployed safe in the\n+  knowledge that valuable and important information will always be accessible through upgrade and change.\n+\n+  * **R3 Corda 3.0 compatibility**\n+\n+    The release of Corda version 3.0 will be wire compatible with the upcoming development preview and future\n+    release of R3 Corda. This will allow, for those interested, painless transfer of CorDapps, peace of mind that\n+    vault states will remain valid and understood by mixed version nodes and that networks of both Corda and R3 Corda\n+    nodes can inter-operate without issue.\n+\n+  * **AMQP Serialization**\n+\n+    AMQP Serialization is now enabled for both peer to peer communication and the writing of states to the vault. This\n+    change brings a serialisation format that will allow us to deliver enhanced security and wire stability. It is a key\n+    prerequisite to enabling different Corda node versions to coexist on the same network and to enable easier upgrades.\n+\n+    Details on the AMQP serialization framework can be found :ref:`here <amqp_ref>`. This provides an introduction and\n+    overview of the framework whilst more specific details on object evolution as it relates to serialization is similarly\n+    found in :doc:`serialization-default-evolution` and :doc:`serialization-enum-evolution` respectively.\n+\n+    .. note:: This release delivers the bulk of our transition from Kryo serialisation to AMQP serialisation. This means\n+      that many of the restrictions that were documented in previous versions of Corda are now enforced.\n+ \n+      In particular, you are advised to review the section titled :ref:`Custom Types <amqp_custom_types_ref>`.\n+      To aid with the transition, we have included support in this release for default construction and instantiation of\n+      objects with inaccessible private fields, but it is not guaranteed that this support will continue into future versions;\n+      the restrictions documented at the link above are the canonical source.0\n+\n+  * **Artemis and Bridges**\n+    This is good because... <<< Mathew >>>\n \n-* **Enum Class Evolution**\n-  With the addition of AMQP serialization Corda now supports enum constant evolution.\n+    .. warning:: The Artemis topics used for peer-to-peer communication have been changed to be more consistent with future cryptographic\n+      agility and to open up the future possibility of sharing brokers between nodes. This is a breaking wire level change\n+      as it means that nodes after this change will not be able to communicate correctly with nodes running the previous version.\n+      Also, any pending enqueued messages in the Artemis message store will not be delivered correctly to their original target.\n+      However, assuming a clean reset of the artemis data and that the nodes are consistent versions,\n+      data persisted via the AMQP serializer will be forward compatible.\n \n-  That is the ability to alter an enum constant and, as long as certain rules are followed and the correct\n-  annotations applied, have older and newer instances of that enumeration be understood.\n+* **New Network Map Service**:\n \n-* **AMQP Enabled**:\n-  AMQP Serialization is now enabled for both peer to peer communication and the writing of states to the vault. This change\n-  brings a stable format Corda can support internally throughout it's lifetime that meets the needs of Corda and our\n-  users.\n+  This release introduces the new network map architecture. The network map service has been completely redesigned and\n+  implemented to enable future increased network scalability and redundancy, reduced runtime operational overhead,\n+  support for multiple notaries, and administration of network compatibility zones (CZ) and business networks.\n \n-  Details on the AMQP serialization framework can be found in the :doc:`serialization` document :ref:`here <amqp_ref>`.\n-  This provides an introduction and overview of the framework whilst more specific details on object evolution as it relates to\n-  serialization is similarly found in pages :doc:`serialization-default-evolution` and :doc:`serialization-enum-evolution`\n-  respectively. Recommendations on how best to code CorDapps using your own :ref:`custom types <amqp_custom_types_ref>`.\n+  A Corda Compatibility Zone is defined as a grouping of participants and services (notaries, oracles,\n+  doorman, network map server) configured within an operational Corda network to be interoperable and compatible with\n+  each other.\n \n-  .. note:: This release delivers the bulk of our transition from Kryo serialisation to AMQP serialisation. This means that many of the restrictions\n-    that were documented in previous versions of Corda are now enforced. (https://docs.corda.net/releases/release-V1.0/serialization.html).\n+  We introduce the concept of network parameters, which will be used in a future version of Corda to specify precisely\n+  the set of constants (or ranges of constants) upon which the nodes within a network need to agree in order to be assured\n+  of seamless inter-operation. Additional security controls ensure that all network map data is now signed, thus reducing\n+  the power of the network operator to tamper with the map.\n \n-    In particular, you are advised to review the section titled \"Custom Types\". To aid with the transition, we have included support\n-    in this release for default construction of objects and their instantiation through getters as well as objects with inaccessible\n-    private fields but it is not guaranteed that this support will continue into future versions; the restrictions documented at the\n-    link above are the canonical source.\n+  There is also support for a group of nodes to operate locally in a private network, which is achieved by copying the\n+  node's signed info file to other nodes' directories. We've added a bootstrapping tool to facilitate this use case.\n \n-* **Custom Serializers**\n+  Further information can be found in the :doc:`changelog`, :doc:`network-map` and :doc:`setting-up-a-corda-network` documentation.\n \n-  To allow interop with third party libraries that cannot be recompiled we add functionality that allows custom serializers\n-  to be written for those classes. If needed, a proxy object can be created as an interim step that allows Corda's internal\n-  serializers to operate on those types.\n+Other Functional Improvements\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n \n-  A good example of this is the SIMM valuation demo which has a number of such serializers defined in the plugin/customserializers package\n+* **Security Auditing**\n+\n+  This version of Corda is the first to have been thoroughly internally audited by R3's internal security team. In addition\n+  several external security audits of the code have been undertaken. In all cases the reports have been... <<< JAMES BROWN >>>\n+\n+* **Contract Upgrade**\n+\n+  <<< Tudor >>> Is awesome because... see documentation here...\n+\n+  .. note:: be aware of XXX\n+\n+* **Test API Stability**\n+\n+  A great deal of work has been carried out to refine the API's  provided to test CorDapps, making it simpler, more intuitive,\n+  and generally easier. In addition, these API's have been added to the ~locked~ list of the API's we guarantee to be stable\n+  over time. This should greatly increase confidence when upgrading between versions as your testing environments will not require\n+  altering to work, giving confidence as you upgrade.\n+\n+  .. note:: <<< ARC??? HOW TO UPGRADE >>>\n+\n+* **X.509 certificates**\n+\n+  These now have an extension that specifies the Corda role the certificate is used for, and the role\n+  hierarchy is now enforced in the validation code. This only has impact on those developing integrations with external\n+  PKI solutions, in most cases it is managed transparently by Corda. A formal specification of the extension can be\n+  found at see :doc:`permissioning-certificate-specification`.\n+\n+* **Configurable authorization and authentication data sources**\n+    Corda now supports the configuration of the external sources of user authentication including support for the\n+    Apace Shiro Modular Crypt Format encoded passwords. See :doc:`client` for details on configuring this.\n+\n+* **SSH Server**\n+\n+  Remote administration of Corda nodes through the CRaSH shell is now available via SSH, please see :doc:`shell` for more details\n+\n+Minor Changes\n+~~~~~~~~~~~~~\n+\n+  * Upgraded gradle to 4.4.1\n+  * Overall improvements to error handling (RPC, flows, Network Client)\n+  * Fingerprinting of generics in the AMQP library has has a number of issues resolved","path":"docs/source/release-notes.rst","position":180,"original_position":162,"commit_id":"4a032bcc743eea5810f7262c100cf1bc4beba6c7","original_commit_id":"11c790efbceac8e31181a42cc3af705033757a4d","user":{"login":"mikehearn","id":971089,"avatar_url":"https://avatars2.githubusercontent.com/u/971089?v=4","gravatar_id":"","url":"https://api.github.com/users/mikehearn","html_url":"https://github.com/mikehearn","followers_url":"https://api.github.com/users/mikehearn/followers","following_url":"https://api.github.com/users/mikehearn/following{/other_user}","gists_url":"https://api.github.com/users/mikehearn/gists{/gist_id}","starred_url":"https://api.github.com/users/mikehearn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikehearn/subscriptions","organizations_url":"https://api.github.com/users/mikehearn/orgs","repos_url":"https://api.github.com/users/mikehearn/repos","events_url":"https://api.github.com/users/mikehearn/events{/privacy}","received_events_url":"https://api.github.com/users/mikehearn/received_events","type":"User","site_admin":false},"body":"Right: I think 3.0 is the first outing for AMQP so this doesn't need to be here.","created_at":"2018-02-12T11:47:55Z","updated_at":"2018-02-12T11:49:41Z","html_url":"https://github.com/corda/corda/pull/2492#discussion_r167532240","pull_request_url":"https://api.github.com/repos/corda/corda/pulls/2492","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/corda/corda/pulls/comments/167532240"},"html":{"href":"https://github.com/corda/corda/pull/2492#discussion_r167532240"},"pull_request":{"href":"https://api.github.com/repos/corda/corda/pulls/2492"}},"in_reply_to_id":167295103},"pull_request":{"url":"https://api.github.com/repos/corda/corda/pulls/2492","id":168251671,"html_url":"https://github.com/corda/corda/pull/2492","diff_url":"https://github.com/corda/corda/pull/2492.diff","patch_url":"https://github.com/corda/corda/pull/2492.patch","issue_url":"https://api.github.com/repos/corda/corda/issues/2492","number":2492,"state":"open","locked":false,"title":"V3 Release notes","user":{"login":"fenryka","id":3903362,"avatar_url":"https://avatars3.githubusercontent.com/u/3903362?v=4","gravatar_id":"","url":"https://api.github.com/users/fenryka","html_url":"https://github.com/fenryka","followers_url":"https://api.github.com/users/fenryka/followers","following_url":"https://api.github.com/users/fenryka/following{/other_user}","gists_url":"https://api.github.com/users/fenryka/gists{/gist_id}","starred_url":"https://api.github.com/users/fenryka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fenryka/subscriptions","organizations_url":"https://api.github.com/users/fenryka/orgs","repos_url":"https://api.github.com/users/fenryka/repos","events_url":"https://api.github.com/users/fenryka/events{/privacy}","received_events_url":"https://api.github.com/users/fenryka/received_events","type":"User","site_admin":false},"body":"So, input needed from \r\n\r\n@gendal and @mikehearn (clearly)\r\n\r\nSpecific inputs from\r\n\r\n@jamesbr3 - security blurb\r\n@tudor-malene - cntract upgrade\r\n@andr3ej - Testing api blurb\r\n@mnesbit - \r\n@shamsasari - network map stuff\r\n","created_at":"2018-02-09T14:22:21Z","updated_at":"2018-02-12T11:49:41Z","closed_at":null,"merged_at":null,"merge_commit_sha":"06662975d5378c5da2c98a4a44dc256ed6188f9d","assignee":null,"assignees":[],"requested_reviewers":[{"login":"tudor-malene","id":1941897,"avatar_url":"https://avatars0.githubusercontent.com/u/1941897?v=4","gravatar_id":"","url":"https://api.github.com/users/tudor-malene","html_url":"https://github.com/tudor-malene","followers_url":"https://api.github.com/users/tudor-malene/followers","following_url":"https://api.github.com/users/tudor-malene/following{/other_user}","gists_url":"https://api.github.com/users/tudor-malene/gists{/gist_id}","starred_url":"https://api.github.com/users/tudor-malene/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tudor-malene/subscriptions","organizations_url":"https://api.github.com/users/tudor-malene/orgs","repos_url":"https://api.github.com/users/tudor-malene/repos","events_url":"https://api.github.com/users/tudor-malene/events{/privacy}","received_events_url":"https://api.github.com/users/tudor-malene/received_events","type":"User","site_admin":false},{"login":"shamsasari","id":3883563,"avatar_url":"https://avatars3.githubusercontent.com/u/3883563?v=4","gravatar_id":"","url":"https://api.github.com/users/shamsasari","html_url":"https://github.com/shamsasari","followers_url":"https://api.github.com/users/shamsasari/followers","following_url":"https://api.github.com/users/shamsasari/following{/other_user}","gists_url":"https://api.github.com/users/shamsasari/gists{/gist_id}","starred_url":"https://api.github.com/users/shamsasari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shamsasari/subscriptions","organizations_url":"https://api.github.com/users/shamsasari/orgs","repos_url":"https://api.github.com/users/shamsasari/repos","events_url":"https://api.github.com/users/shamsasari/events{/privacy}","received_events_url":"https://api.github.com/users/shamsasari/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/corda/corda/pulls/2492/commits","review_comments_url":"https://api.github.com/repos/corda/corda/pulls/2492/comments","review_comment_url":"https://api.github.com/repos/corda/corda/pulls/comments{/number}","comments_url":"https://api.github.com/repos/corda/corda/issues/2492/comments","statuses_url":"https://api.github.com/repos/corda/corda/statuses/4a032bcc743eea5810f7262c100cf1bc4beba6c7","head":{"label":"corda:pre-release-v3-release-notes","ref":"pre-release-v3-release-notes","sha":"4a032bcc743eea5810f7262c100cf1bc4beba6c7","user":{"login":"corda","id":22600631,"avatar_url":"https://avatars1.githubusercontent.com/u/22600631?v=4","gravatar_id":"","url":"https://api.github.com/users/corda","html_url":"https://github.com/corda","followers_url":"https://api.github.com/users/corda/followers","following_url":"https://api.github.com/users/corda/following{/other_user}","gists_url":"https://api.github.com/users/corda/gists{/gist_id}","starred_url":"https://api.github.com/users/corda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/corda/subscriptions","organizations_url":"https://api.github.com/users/corda/orgs","repos_url":"https://api.github.com/users/corda/repos","events_url":"https://api.github.com/users/corda/events{/privacy}","received_events_url":"https://api.github.com/users/corda/received_events","type":"Organization","site_admin":false},"repo":{"id":70137417,"name":"corda","full_name":"corda/corda","owner":{"login":"corda","id":22600631,"avatar_url":"https://avatars1.githubusercontent.com/u/22600631?v=4","gravatar_id":"","url":"https://api.github.com/users/corda","html_url":"https://github.com/corda","followers_url":"https://api.github.com/users/corda/followers","following_url":"https://api.github.com/users/corda/following{/other_user}","gists_url":"https://api.github.com/users/corda/gists{/gist_id}","starred_url":"https://api.github.com/users/corda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/corda/subscriptions","organizations_url":"https://api.github.com/users/corda/orgs","repos_url":"https://api.github.com/users/corda/repos","events_url":"https://api.github.com/users/corda/events{/privacy}","received_events_url":"https://api.github.com/users/corda/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/corda/corda","description":"Corda is a distributed ledger platform designed to record, manage and automate legal agreements between business partners. Designed by (and for) the world's largest financial institutions yet with applications in multiple industries.  It offers a unique response to the privacy and scalability challenges facing decentralised applications.","fork":false,"url":"https://api.github.com/repos/corda/corda","forks_url":"https://api.github.com/repos/corda/corda/forks","keys_url":"https://api.github.com/repos/corda/corda/keys{/key_id}","collaborators_url":"https://api.github.com/repos/corda/corda/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/corda/corda/teams","hooks_url":"https://api.github.com/repos/corda/corda/hooks","issue_events_url":"https://api.github.com/repos/corda/corda/issues/events{/number}","events_url":"https://api.github.com/repos/corda/corda/events","assignees_url":"https://api.github.com/repos/corda/corda/assignees{/user}","branches_url":"https://api.github.com/repos/corda/corda/branches{/branch}","tags_url":"https://api.github.com/repos/corda/corda/tags","blobs_url":"https://api.github.com/repos/corda/corda/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/corda/corda/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/corda/corda/git/refs{/sha}","trees_url":"https://api.github.com/repos/corda/corda/git/trees{/sha}","statuses_url":"https://api.github.com/repos/corda/corda/statuses/{sha}","languages_url":"https://api.github.com/repos/corda/corda/languages","stargazers_url":"https://api.github.com/repos/corda/corda/stargazers","contributors_url":"https://api.github.com/repos/corda/corda/contributors","subscribers_url":"https://api.github.com/repos/corda/corda/subscribers","subscription_url":"https://api.github.com/repos/corda/corda/subscription","commits_url":"https://api.github.com/repos/corda/corda/commits{/sha}","git_commits_url":"https://api.github.com/repos/corda/corda/git/commits{/sha}","comments_url":"https://api.github.com/repos/corda/corda/comments{/number}","issue_comment_url":"https://api.github.com/repos/corda/corda/issues/comments{/number}","contents_url":"https://api.github.com/repos/corda/corda/contents/{+path}","compare_url":"https://api.github.com/repos/corda/corda/compare/{base}...{head}","merges_url":"https://api.github.com/repos/corda/corda/merges","archive_url":"https://api.github.com/repos/corda/corda/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/corda/corda/downloads","issues_url":"https://api.github.com/repos/corda/corda/issues{/number}","pulls_url":"https://api.github.com/repos/corda/corda/pulls{/number}","milestones_url":"https://api.github.com/repos/corda/corda/milestones{/number}","notifications_url":"https://api.github.com/repos/corda/corda/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/corda/corda/labels{/name}","releases_url":"https://api.github.com/repos/corda/corda/releases{/id}","deployments_url":"https://api.github.com/repos/corda/corda/deployments","created_at":"2016-10-06T08:46:29Z","updated_at":"2018-02-11T22:30:23Z","pushed_at":"2018-02-12T11:47:17Z","git_url":"git://github.com/corda/corda.git","ssh_url":"git@github.com:corda/corda.git","clone_url":"https://github.com/corda/corda.git","svn_url":"https://github.com/corda/corda","homepage":"https://www.corda.net","size":107043,"stargazers_count":1458,"watchers_count":1458,"language":"Kotlin","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":392,"mirror_url":null,"archived":false,"open_issues_count":132,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":392,"open_issues":132,"watchers":1458,"default_branch":"master"}},"base":{"label":"corda:pre-release-V3","ref":"pre-release-V3","sha":"e41408d21e86a67880ffd425a8a4c9d74af9a3f1","user":{"login":"corda","id":22600631,"avatar_url":"https://avatars1.githubusercontent.com/u/22600631?v=4","gravatar_id":"","url":"https://api.github.com/users/corda","html_url":"https://github.com/corda","followers_url":"https://api.github.com/users/corda/followers","following_url":"https://api.github.com/users/corda/following{/other_user}","gists_url":"https://api.github.com/users/corda/gists{/gist_id}","starred_url":"https://api.github.com/users/corda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/corda/subscriptions","organizations_url":"https://api.github.com/users/corda/orgs","repos_url":"https://api.github.com/users/corda/repos","events_url":"https://api.github.com/users/corda/events{/privacy}","received_events_url":"https://api.github.com/users/corda/received_events","type":"Organization","site_admin":false},"repo":{"id":70137417,"name":"corda","full_name":"corda/corda","owner":{"login":"corda","id":22600631,"avatar_url":"https://avatars1.githubusercontent.com/u/22600631?v=4","gravatar_id":"","url":"https://api.github.com/users/corda","html_url":"https://github.com/corda","followers_url":"https://api.github.com/users/corda/followers","following_url":"https://api.github.com/users/corda/following{/other_user}","gists_url":"https://api.github.com/users/corda/gists{/gist_id}","starred_url":"https://api.github.com/users/corda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/corda/subscriptions","organizations_url":"https://api.github.com/users/corda/orgs","repos_url":"https://api.github.com/users/corda/repos","events_url":"https://api.github.com/users/corda/events{/privacy}","received_events_url":"https://api.github.com/users/corda/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/corda/corda","description":"Corda is a distributed ledger platform designed to record, manage and automate legal agreements between business partners. Designed by (and for) the world's largest financial institutions yet with applications in multiple industries.  It offers a unique response to the privacy and scalability challenges facing decentralised applications.","fork":false,"url":"https://api.github.com/repos/corda/corda","forks_url":"https://api.github.com/repos/corda/corda/forks","keys_url":"https://api.github.com/repos/corda/corda/keys{/key_id}","collaborators_url":"https://api.github.com/repos/corda/corda/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/corda/corda/teams","hooks_url":"https://api.github.com/repos/corda/corda/hooks","issue_events_url":"https://api.github.com/repos/corda/corda/issues/events{/number}","events_url":"https://api.github.com/repos/corda/corda/events","assignees_url":"https://api.github.com/repos/corda/corda/assignees{/user}","branches_url":"https://api.github.com/repos/corda/corda/branches{/branch}","tags_url":"https://api.github.com/repos/corda/corda/tags","blobs_url":"https://api.github.com/repos/corda/corda/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/corda/corda/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/corda/corda/git/refs{/sha}","trees_url":"https://api.github.com/repos/corda/corda/git/trees{/sha}","statuses_url":"https://api.github.com/repos/corda/corda/statuses/{sha}","languages_url":"https://api.github.com/repos/corda/corda/languages","stargazers_url":"https://api.github.com/repos/corda/corda/stargazers","contributors_url":"https://api.github.com/repos/corda/corda/contributors","subscribers_url":"https://api.github.com/repos/corda/corda/subscribers","subscription_url":"https://api.github.com/repos/corda/corda/subscription","commits_url":"https://api.github.com/repos/corda/corda/commits{/sha}","git_commits_url":"https://api.github.com/repos/corda/corda/git/commits{/sha}","comments_url":"https://api.github.com/repos/corda/corda/comments{/number}","issue_comment_url":"https://api.github.com/repos/corda/corda/issues/comments{/number}","contents_url":"https://api.github.com/repos/corda/corda/contents/{+path}","compare_url":"https://api.github.com/repos/corda/corda/compare/{base}...{head}","merges_url":"https://api.github.com/repos/corda/corda/merges","archive_url":"https://api.github.com/repos/corda/corda/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/corda/corda/downloads","issues_url":"https://api.github.com/repos/corda/corda/issues{/number}","pulls_url":"https://api.github.com/repos/corda/corda/pulls{/number}","milestones_url":"https://api.github.com/repos/corda/corda/milestones{/number}","notifications_url":"https://api.github.com/repos/corda/corda/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/corda/corda/labels{/name}","releases_url":"https://api.github.com/repos/corda/corda/releases{/id}","deployments_url":"https://api.github.com/repos/corda/corda/deployments","created_at":"2016-10-06T08:46:29Z","updated_at":"2018-02-11T22:30:23Z","pushed_at":"2018-02-12T11:47:17Z","git_url":"git://github.com/corda/corda.git","ssh_url":"git@github.com:corda/corda.git","clone_url":"https://github.com/corda/corda.git","svn_url":"https://github.com/corda/corda","homepage":"https://www.corda.net","size":107043,"stargazers_count":1458,"watchers_count":1458,"language":"Kotlin","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":392,"mirror_url":null,"archived":false,"open_issues_count":132,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":392,"open_issues":132,"watchers":1458,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/corda/corda/pulls/2492"},"html":{"href":"https://github.com/corda/corda/pull/2492"},"issue":{"href":"https://api.github.com/repos/corda/corda/issues/2492"},"comments":{"href":"https://api.github.com/repos/corda/corda/issues/2492/comments"},"review_comments":{"href":"https://api.github.com/repos/corda/corda/pulls/2492/comments"},"review_comment":{"href":"https://api.github.com/repos/corda/corda/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/corda/corda/pulls/2492/commits"},"statuses":{"href":"https://api.github.com/repos/corda/corda/statuses/4a032bcc743eea5810f7262c100cf1bc4beba6c7"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"mikehearn"}}