{"action":"created","comment":{"url":"https://api.github.com/repos/paritytech/substrate/pulls/comments/214838274","pull_request_review_id":151972249,"id":214838274,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxNDgzODI3NA==","diff_hunk":"@@ -0,0 +1,385 @@\n+// Copyright 2017 Parity Technologies (UK) Ltd.\n+// This file is part of Substrate.\n+\n+// Substrate is free software: you can redistribute it and/or modify\n+// it under the terms of the GNU General Public License as published by\n+// the Free Software Foundation, either version 3 of the License, or\n+// (at your option) any later version.\n+\n+// Substrate is distributed in the hope that it will be useful,\n+// but WITHOUT ANY WARRANTY; without even the implied warranty of\n+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n+// GNU General Public License for more details.\n+\n+// You should have received a copy of the GNU General Public License\n+// along with Substrate.  If not, see <http://www.gnu.org/licenses/>.\n+\n+//! The Example: A simple example of a runtime module demonstrating\n+//! concepts, APIs and structures common to most runtime modules.\n+\n+// Ensure we're `no_std` when compiling for Wasm.\n+#![cfg_attr(not(feature = \"std\"), no_std)]\n+\n+// Assert macros used in tests.\n+#[cfg_attr(feature = \"std\", macro_use)]\n+extern crate substrate_runtime_std;\n+\n+// Needed for tests (`with_externalities`).\n+#[cfg(test)]\n+extern crate substrate_runtime_io as runtime_io;\n+\n+// Needed for the set of mock primatives used in our tests.\n+#[cfg(test)]\n+extern crate substrate_primitives;\n+\n+// Needed for deriving `Serialize` and `Deserialize` for various types.\n+// We only implement the serde traits for std builds - they're unneeded\n+// in the wasm runtime.\n+#[cfg(feature = \"std\")]\n+#[macro_use]\n+extern crate serde_derive;\n+\n+// Needed for deriving `Encode` and `Decode` for `RawEvent`.\n+#[macro_use]\n+extern crate substrate_codec_derive;\n+extern crate substrate_codec as codec;\n+\n+// Needed for type-safe access to storage DB.\n+#[macro_use]\n+extern crate substrate_runtime_support as runtime_support;\n+\n+// Needed for various traits. In our case, `OnFinalise`.\n+extern crate substrate_runtime_primitives as runtime_primitives;\n+// `system` module provides us with all sorts of useful stuff and macros\n+// depend on it being around.\n+extern crate substrate_runtime_system as system;\n+// `balances` module is needed for our little example. It's not required in\n+// general (though if you want your module to be able to work with tokens, then you\n+// might find it useful).\n+extern crate substrate_runtime_balances as balances;\n+\n+use runtime_primitives::traits::OnFinalise;\n+use runtime_support::{StorageValue, dispatch::Result};\n+\n+/// Our module's configuration trait. All our types and consts go in here. If the\n+/// module is dependent on specfiic other modules, then their configuration traits\n+/// should be added to our implied traits list.\n+/// \n+/// `system::Trait` should always be included in our implied traits.\n+pub trait Trait: balances::Trait {\n+\t/// The overarching event type. \n+\ttype Event: From<Event<Self>> + Into<<Self as system::Trait>::Event>;\n+}\n+\n+// The module declaration. This states the entry points that we handle. The\n+// macro looks after the marshalling of arguments and dispatch.\n+decl_module! {\n+\t// Simple declaration of the `Module` type. Lets the macro know what its working on.\n+\tpub struct Module<T: Trait>;\n+\n+\t// The unpriviledged entry points. Any account can call into these by signing and submitting\n+\t// an extrinsic. Ensure that calls into each of these execute in a time, memory and\n+\t// using storage space proportional to any costs paid for by the caller.\n+\t//\n+\t// The account that is calling this (i.e. the one that signed the extrinsic) is provided\n+\t// via the `aux` argument, always first in each function call. As such functions must\n+\t// always look like:\n+\t// \n+\t// `fn foo(aux, bar: Bar, baz: Baz) -> Result = 0;`\n+\t//\n+\t// The `Result` is required as part of the syntax (and expands to the conventional dispatch\n+\t// result of `Result<(), &'static str>`). The index after `=` must be unique within this\n+\t// enum (the `PrivCall` enum is allowed to reuse indexes).\n+\t// \n+\t// When you come to `impl` them later in the module, you must specify the full type for `aux`:\n+\t//\n+\t// `fn foo(aux: T::PublicAux, bar: Bar, baz: Baz) { ... }`\n+\t//\n+\t// This is your public interface. Be extremely careful.\n+\t#[cfg_attr(feature = \"std\", derive(Serialize, Deserialize))]\n+\tpub enum Call where aux: T::PublicAux {\n+\t\t// This is just a simple example of how to interact with the module from the external\n+\t\t// world.\n+\t\tfn accumulate_dummy(aux, increase_by: T::Balance) -> Result = 0;\n+\t}\n+\n+\t// The priviledged entry points. These are provided to allow any governance modules in \n+\t// the runtime to be able to execute common functions. Unlike for `Call` there is no\n+\t// auxilliary data to encode the sender (since there is no sender). Though still important\n+\t// to ensure that these execute in reasonable time and space, they can do what would\n+\t// otherwise be costly or unsafe operations.\n+\t#[cfg_attr(feature = \"std\", derive(Serialize, Deserialize))]\n+\tpub enum PrivCall {\n+\t\t// A priviledged call; in this case it resets our dummy value to something new.\n+\t\tfn set_dummy(new_dummy: T::Balance) -> Result = 0;\n+\t}\n+}\n+\n+/// Exported Event type that's generic over the configuration trait.\n+// NOTE: External macro-fu expects this type to exist and be generic over\n+// the configuration trait.\n+pub type Event<T> = RawEvent<\n+\t<T as balances::Trait>::Balance,\n+>;\n+\n+/// An event in this module. Events are simple means of reporting specific conditions and\n+/// cursumstances that have happened that users, Dapps and/or chain explorers would find\n+/// interested and otherwise difficult to detect.\n+#[cfg_attr(feature = \"std\", derive(Serialize, Deserialize, Debug))]\n+#[derive(Encode, Decode, PartialEq, Eq, Clone)]\n+pub enum RawEvent<B> {\n+\t// Just a normal `enum`, here's a dummy event to ensure it compiles.\n+\t/// Dummy event, just here so there's a generic type that's used.\n+\tDummy(B),\n+}\n+\n+// By convention we implement any trait for which a \"null implemntation\" makes sense\n+// for `()`. This is the case for conversion of module `Event` types and hook traits. It\n+// is helpful for test code and production configurations where no eventing is necessary\n+// or the hook is unused.\n+impl<B> From<RawEvent<B>> for () {\n+\tfn from(_: RawEvent<B>) -> () { () }\n+}\n+\n+decl_storage! {\n+\t// A macro for the Storage trait, and its implementation, for this module.\n+\t// This allows for type-safe usage of the Substrate storage database, so you can\n+\t// keep things around between blocks.\n+\ttrait Store for Module<T: Trait> as Example {\n+\t\t// Any storage declarations of the form:\n+\t\t//   `pub? Name get(getter_name)? : [required | default]? <type>;`\n+\t\t// where `<type>` is either:\n+\t\t//   - `Type` (a basic value item); or\n+\t\t//   - `map [ KeyType => ValueType ]` (a map item).\n+\t\t//\n+\t\t// Note that there are two optional modifiers for the storage type declaration.\n+\t\t// - `Foo: u32`:\n+\t\t//   - `Foo::put(1); Foo::get()` returns `Some(1)`;\n+\t\t//   - `Foo::kill(); Foo::get()` returns `None`.\n+\t\t// - `Foo: required u32`:\n+\t\t//   - `Foo::put(1); Foo::get()` returns `1`;\n+\t\t//   - `Foo::kill(); Foo::get()` panics.\n+\t\t// - `Foo: default u32`:\n+\t\t//   - `Foo::put(1); Foo::get()` returns `1`;\n+\t\t//   - `Foo::kill(); Foo::get()` returns `0` (u32::default()).\n+\t\t// e.g. Foo: u32;\n+\t\t// e.g. pub Bar get(bar): default map [ T::AccountId => Vec<(T::Balance, u64)> ];\n+\t\t//\n+\t\t// For basic value items, you'll get a type which implements\n+\t\t// `runtime_support::StorageValue`. For map items, you'll get a type which\n+\t\t// implements `runtime_support::StorageMap`.\n+\t\t//\n+\t\t// If they have a getter (`get(getter_name)`), then your module will come\n+\t\t// equiped with `fn getter_name() -> Type` for basic value items or\n+\t\t// `fn getter_name(key: KeyType) -> ValueType` for map items.\n+\t\tDummy get(dummy): T::Balance;\n+\t}\n+}\n+\n+// The main implementation block for the module. Functions here fall into three broad\n+// categories:\n+// - Implementations of dispatch functions. The dispatch code generated by the module macro\n+// expects each of its functions to be implemented.\n+// - Public interface. These are functions that are `pub` and generally fall into inspector\n+// functions that do not write to storage and operation functions that do.\n+// - Private functions. These are your usual private utilities unavailable to other modules.\n+impl<T: Trait> Module<T> {\n+\t/// Deposit one of this module's events. This function doesn't change.","path":"substrate/runtime/example/src/lib.rs","position":187,"original_position":187,"commit_id":"026ad90167bc2f80f6dddf77a7ee81cff47c80cc","original_commit_id":"99e0f26496b8ac73945ca64467d146c18da18292","user":{"login":"gavofyork","id":138296,"node_id":"MDQ6VXNlcjEzODI5Ng==","avatar_url":"https://avatars0.githubusercontent.com/u/138296?v=4","gravatar_id":"","url":"https://api.github.com/users/gavofyork","html_url":"https://github.com/gavofyork","followers_url":"https://api.github.com/users/gavofyork/followers","following_url":"https://api.github.com/users/gavofyork/following{/other_user}","gists_url":"https://api.github.com/users/gavofyork/gists{/gist_id}","starred_url":"https://api.github.com/users/gavofyork/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gavofyork/subscriptions","organizations_url":"https://api.github.com/users/gavofyork/orgs","repos_url":"https://api.github.com/users/gavofyork/repos","events_url":"https://api.github.com/users/gavofyork/events{/privacy}","received_events_url":"https://api.github.com/users/gavofyork/received_events","type":"User","site_admin":false},"body":"removed as superfluous","created_at":"2018-09-04T09:01:31Z","updated_at":"2018-09-04T09:01:31Z","html_url":"https://github.com/paritytech/substrate/pull/646#discussion_r214838274","pull_request_url":"https://api.github.com/repos/paritytech/substrate/pulls/646","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/paritytech/substrate/pulls/comments/214838274"},"html":{"href":"https://github.com/paritytech/substrate/pull/646#discussion_r214838274"},"pull_request":{"href":"https://api.github.com/repos/paritytech/substrate/pulls/646"}},"in_reply_to_id":214794906},"pull_request":{"url":"https://api.github.com/repos/paritytech/substrate/pulls/646","id":212583367,"node_id":"MDExOlB1bGxSZXF1ZXN0MjEyNTgzMzY3","html_url":"https://github.com/paritytech/substrate/pull/646","diff_url":"https://github.com/paritytech/substrate/pull/646.diff","patch_url":"https://github.com/paritytech/substrate/pull/646.patch","issue_url":"https://api.github.com/repos/paritytech/substrate/issues/646","number":646,"state":"open","locked":false,"title":"Introduce treasury and document","user":{"login":"gavofyork","id":138296,"node_id":"MDQ6VXNlcjEzODI5Ng==","avatar_url":"https://avatars0.githubusercontent.com/u/138296?v=4","gravatar_id":"","url":"https://api.github.com/users/gavofyork","html_url":"https://github.com/gavofyork","followers_url":"https://api.github.com/users/gavofyork/followers","following_url":"https://api.github.com/users/gavofyork/following{/other_user}","gists_url":"https://api.github.com/users/gavofyork/gists{/gist_id}","starred_url":"https://api.github.com/users/gavofyork/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gavofyork/subscriptions","organizations_url":"https://api.github.com/users/gavofyork/orgs","repos_url":"https://api.github.com/users/gavofyork/repos","events_url":"https://api.github.com/users/gavofyork/events{/privacy}","received_events_url":"https://api.github.com/users/gavofyork/received_events","type":"User","site_admin":false},"body":"- Rename `Executable` to `OnFinalise` to reflect meaning.\r\n- Remove unused storage item.\r\n- Introduce `OnMinted` trait.\r\n- Introduce new skeleton treasury module.","created_at":"2018-09-02T09:10:45Z","updated_at":"2018-09-04T09:01:31Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2eca13b2832e03f22fd074b3f1dbbad5a0826f3e","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":746560614,"node_id":"MDU6TGFiZWw3NDY1NjA2MTQ=","url":"https://api.github.com/repos/paritytech/substrate/labels/A3-inprogress","name":"A3-inprogress","color":"DBC6F8","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/paritytech/substrate/pulls/646/commits","review_comments_url":"https://api.github.com/repos/paritytech/substrate/pulls/646/comments","review_comment_url":"https://api.github.com/repos/paritytech/substrate/pulls/comments{/number}","comments_url":"https://api.github.com/repos/paritytech/substrate/issues/646/comments","statuses_url":"https://api.github.com/repos/paritytech/substrate/statuses/026ad90167bc2f80f6dddf77a7ee81cff47c80cc","head":{"label":"paritytech:gav-treasury","ref":"gav-treasury","sha":"026ad90167bc2f80f6dddf77a7ee81cff47c80cc","user":{"login":"paritytech","id":14176906,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE0MTc2OTA2","avatar_url":"https://avatars2.githubusercontent.com/u/14176906?v=4","gravatar_id":"","url":"https://api.github.com/users/paritytech","html_url":"https://github.com/paritytech","followers_url":"https://api.github.com/users/paritytech/followers","following_url":"https://api.github.com/users/paritytech/following{/other_user}","gists_url":"https://api.github.com/users/paritytech/gists{/gist_id}","starred_url":"https://api.github.com/users/paritytech/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paritytech/subscriptions","organizations_url":"https://api.github.com/users/paritytech/orgs","repos_url":"https://api.github.com/users/paritytech/repos","events_url":"https://api.github.com/users/paritytech/events{/privacy}","received_events_url":"https://api.github.com/users/paritytech/received_events","type":"Organization","site_admin":false},"repo":{"id":109872620,"node_id":"MDEwOlJlcG9zaXRvcnkxMDk4NzI2MjA=","name":"substrate","full_name":"paritytech/substrate","owner":{"login":"paritytech","id":14176906,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE0MTc2OTA2","avatar_url":"https://avatars2.githubusercontent.com/u/14176906?v=4","gravatar_id":"","url":"https://api.github.com/users/paritytech","html_url":"https://github.com/paritytech","followers_url":"https://api.github.com/users/paritytech/followers","following_url":"https://api.github.com/users/paritytech/following{/other_user}","gists_url":"https://api.github.com/users/paritytech/gists{/gist_id}","starred_url":"https://api.github.com/users/paritytech/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paritytech/subscriptions","organizations_url":"https://api.github.com/users/paritytech/orgs","repos_url":"https://api.github.com/users/paritytech/repos","events_url":"https://api.github.com/users/paritytech/events{/privacy}","received_events_url":"https://api.github.com/users/paritytech/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/paritytech/substrate","description":"Substrate: The platform for blockchain innovators","fork":false,"url":"https://api.github.com/repos/paritytech/substrate","forks_url":"https://api.github.com/repos/paritytech/substrate/forks","keys_url":"https://api.github.com/repos/paritytech/substrate/keys{/key_id}","collaborators_url":"https://api.github.com/repos/paritytech/substrate/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/paritytech/substrate/teams","hooks_url":"https://api.github.com/repos/paritytech/substrate/hooks","issue_events_url":"https://api.github.com/repos/paritytech/substrate/issues/events{/number}","events_url":"https://api.github.com/repos/paritytech/substrate/events","assignees_url":"https://api.github.com/repos/paritytech/substrate/assignees{/user}","branches_url":"https://api.github.com/repos/paritytech/substrate/branches{/branch}","tags_url":"https://api.github.com/repos/paritytech/substrate/tags","blobs_url":"https://api.github.com/repos/paritytech/substrate/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/paritytech/substrate/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/paritytech/substrate/git/refs{/sha}","trees_url":"https://api.github.com/repos/paritytech/substrate/git/trees{/sha}","statuses_url":"https://api.github.com/repos/paritytech/substrate/statuses/{sha}","languages_url":"https://api.github.com/repos/paritytech/substrate/languages","stargazers_url":"https://api.github.com/repos/paritytech/substrate/stargazers","contributors_url":"https://api.github.com/repos/paritytech/substrate/contributors","subscribers_url":"https://api.github.com/repos/paritytech/substrate/subscribers","subscription_url":"https://api.github.com/repos/paritytech/substrate/subscription","commits_url":"https://api.github.com/repos/paritytech/substrate/commits{/sha}","git_commits_url":"https://api.github.com/repos/paritytech/substrate/git/commits{/sha}","comments_url":"https://api.github.com/repos/paritytech/substrate/comments{/number}","issue_comment_url":"https://api.github.com/repos/paritytech/substrate/issues/comments{/number}","contents_url":"https://api.github.com/repos/paritytech/substrate/contents/{+path}","compare_url":"https://api.github.com/repos/paritytech/substrate/compare/{base}...{head}","merges_url":"https://api.github.com/repos/paritytech/substrate/merges","archive_url":"https://api.github.com/repos/paritytech/substrate/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/paritytech/substrate/downloads","issues_url":"https://api.github.com/repos/paritytech/substrate/issues{/number}","pulls_url":"https://api.github.com/repos/paritytech/substrate/pulls{/number}","milestones_url":"https://api.github.com/repos/paritytech/substrate/milestones{/number}","notifications_url":"https://api.github.com/repos/paritytech/substrate/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/paritytech/substrate/labels{/name}","releases_url":"https://api.github.com/repos/paritytech/substrate/releases{/id}","deployments_url":"https://api.github.com/repos/paritytech/substrate/deployments","created_at":"2017-11-07T18:08:53Z","updated_at":"2018-09-04T08:26:58Z","pushed_at":"2018-09-04T08:53:19Z","git_url":"git://github.com/paritytech/substrate.git","ssh_url":"git@github.com:paritytech/substrate.git","clone_url":"https://github.com/paritytech/substrate.git","svn_url":"https://github.com/paritytech/substrate","homepage":"","size":39162,"stargazers_count":357,"watchers_count":357,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":77,"mirror_url":null,"archived":false,"open_issues_count":77,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":77,"open_issues":77,"watchers":357,"default_branch":"master"}},"base":{"label":"paritytech:master","ref":"master","sha":"ee2b68e03400caf507081e9ccf03657168c8f960","user":{"login":"paritytech","id":14176906,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE0MTc2OTA2","avatar_url":"https://avatars2.githubusercontent.com/u/14176906?v=4","gravatar_id":"","url":"https://api.github.com/users/paritytech","html_url":"https://github.com/paritytech","followers_url":"https://api.github.com/users/paritytech/followers","following_url":"https://api.github.com/users/paritytech/following{/other_user}","gists_url":"https://api.github.com/users/paritytech/gists{/gist_id}","starred_url":"https://api.github.com/users/paritytech/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paritytech/subscriptions","organizations_url":"https://api.github.com/users/paritytech/orgs","repos_url":"https://api.github.com/users/paritytech/repos","events_url":"https://api.github.com/users/paritytech/events{/privacy}","received_events_url":"https://api.github.com/users/paritytech/received_events","type":"Organization","site_admin":false},"repo":{"id":109872620,"node_id":"MDEwOlJlcG9zaXRvcnkxMDk4NzI2MjA=","name":"substrate","full_name":"paritytech/substrate","owner":{"login":"paritytech","id":14176906,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE0MTc2OTA2","avatar_url":"https://avatars2.githubusercontent.com/u/14176906?v=4","gravatar_id":"","url":"https://api.github.com/users/paritytech","html_url":"https://github.com/paritytech","followers_url":"https://api.github.com/users/paritytech/followers","following_url":"https://api.github.com/users/paritytech/following{/other_user}","gists_url":"https://api.github.com/users/paritytech/gists{/gist_id}","starred_url":"https://api.github.com/users/paritytech/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paritytech/subscriptions","organizations_url":"https://api.github.com/users/paritytech/orgs","repos_url":"https://api.github.com/users/paritytech/repos","events_url":"https://api.github.com/users/paritytech/events{/privacy}","received_events_url":"https://api.github.com/users/paritytech/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/paritytech/substrate","description":"Substrate: The platform for blockchain innovators","fork":false,"url":"https://api.github.com/repos/paritytech/substrate","forks_url":"https://api.github.com/repos/paritytech/substrate/forks","keys_url":"https://api.github.com/repos/paritytech/substrate/keys{/key_id}","collaborators_url":"https://api.github.com/repos/paritytech/substrate/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/paritytech/substrate/teams","hooks_url":"https://api.github.com/repos/paritytech/substrate/hooks","issue_events_url":"https://api.github.com/repos/paritytech/substrate/issues/events{/number}","events_url":"https://api.github.com/repos/paritytech/substrate/events","assignees_url":"https://api.github.com/repos/paritytech/substrate/assignees{/user}","branches_url":"https://api.github.com/repos/paritytech/substrate/branches{/branch}","tags_url":"https://api.github.com/repos/paritytech/substrate/tags","blobs_url":"https://api.github.com/repos/paritytech/substrate/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/paritytech/substrate/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/paritytech/substrate/git/refs{/sha}","trees_url":"https://api.github.com/repos/paritytech/substrate/git/trees{/sha}","statuses_url":"https://api.github.com/repos/paritytech/substrate/statuses/{sha}","languages_url":"https://api.github.com/repos/paritytech/substrate/languages","stargazers_url":"https://api.github.com/repos/paritytech/substrate/stargazers","contributors_url":"https://api.github.com/repos/paritytech/substrate/contributors","subscribers_url":"https://api.github.com/repos/paritytech/substrate/subscribers","subscription_url":"https://api.github.com/repos/paritytech/substrate/subscription","commits_url":"https://api.github.com/repos/paritytech/substrate/commits{/sha}","git_commits_url":"https://api.github.com/repos/paritytech/substrate/git/commits{/sha}","comments_url":"https://api.github.com/repos/paritytech/substrate/comments{/number}","issue_comment_url":"https://api.github.com/repos/paritytech/substrate/issues/comments{/number}","contents_url":"https://api.github.com/repos/paritytech/substrate/contents/{+path}","compare_url":"https://api.github.com/repos/paritytech/substrate/compare/{base}...{head}","merges_url":"https://api.github.com/repos/paritytech/substrate/merges","archive_url":"https://api.github.com/repos/paritytech/substrate/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/paritytech/substrate/downloads","issues_url":"https://api.github.com/repos/paritytech/substrate/issues{/number}","pulls_url":"https://api.github.com/repos/paritytech/substrate/pulls{/number}","milestones_url":"https://api.github.com/repos/paritytech/substrate/milestones{/number}","notifications_url":"https://api.github.com/repos/paritytech/substrate/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/paritytech/substrate/labels{/name}","releases_url":"https://api.github.com/repos/paritytech/substrate/releases{/id}","deployments_url":"https://api.github.com/repos/paritytech/substrate/deployments","created_at":"2017-11-07T18:08:53Z","updated_at":"2018-09-04T08:26:58Z","pushed_at":"2018-09-04T08:53:19Z","git_url":"git://github.com/paritytech/substrate.git","ssh_url":"git@github.com:paritytech/substrate.git","clone_url":"https://github.com/paritytech/substrate.git","svn_url":"https://github.com/paritytech/substrate","homepage":"","size":39162,"stargazers_count":357,"watchers_count":357,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":77,"mirror_url":null,"archived":false,"open_issues_count":77,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":77,"open_issues":77,"watchers":357,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/paritytech/substrate/pulls/646"},"html":{"href":"https://github.com/paritytech/substrate/pull/646"},"issue":{"href":"https://api.github.com/repos/paritytech/substrate/issues/646"},"comments":{"href":"https://api.github.com/repos/paritytech/substrate/issues/646/comments"},"review_comments":{"href":"https://api.github.com/repos/paritytech/substrate/pulls/646/comments"},"review_comment":{"href":"https://api.github.com/repos/paritytech/substrate/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/paritytech/substrate/pulls/646/commits"},"statuses":{"href":"https://api.github.com/repos/paritytech/substrate/statuses/026ad90167bc2f80f6dddf77a7ee81cff47c80cc"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"gavofyork"}}