{"action":"created","comment":{"url":"https://api.github.com/repos/Madadata/manual/pulls/comments/74378644","id":74378644,"diff_hunk":"@@ -0,0 +1,304 @@\n+# Stateless Functional Component\n+\n+* [when to use?](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/prefer-stateless-function.md)\n+  * no lifecycle method\n+  * no state to keep, only render data from props.\n+\n+* code snippet\n+\n+```\n+// Madadata.jsx\n+import React, { PropTypes } from 'react';\n+\n+// you can do this with function declaration. (function Madadata = ())\n+const Madadata = props => <div>{props.name}</div>;\n+\n+Madadata.propTypes = {\n+  name: PropTypes.string.isRequired,\n+};\n+\n+// don't use context if you don't know what it is.\n+// Madadata.contextTypes = {}\n+\n+export default Madadata;\n+```\n+\n+* signature\n+\n+```\n+(props, context) => JSXElement;\n+```\n+\n+* Notes\n+  * capitalize the **first character** of your component.\n+  * optional params of this function can be **props**, **context**.\n+  * specify the propTypes of your component for props and context **explicitly**.\n+  * export your component as **default**.\n+  * name the file as **ComponentName.jsx**.\n+\n+* Styles\n+  * prefer arrow function\n+  * If JSX spans for several lines\n+    ```\n+    const Madadata = props => (\n+      <div>\n+        {props.name}\n+      </div>\n+    );\n+    ```\n+  * prefer collapsing props in propTypes and contextTypes and prefer isRequired to enforce checking prop existence.\n+    ```\n+    Madadata.propTypes = {\n+      name: PropTypes.string.isRequired,\n+    };\n+\n+    Madadata.contextTypes = {\n+      store: PropTypes.object.isRequired,\n+    }\n+    ```\n+\n+# PureComponent\n+\n+* when to use?\n+  * has lifecycle method\n+  * has state to keep.\n+  * UI is determined only by state, props.\n+    * UI do not depend on global variable.\n+    * UI do not use any utility function that has variables from outside.\n+    * UI do not have children that are not PureComponent.\n+\n+* code snippet\n+\n+```\n+// PureMadadata.jsx\n+import React, { PureComponent, PropTypes } from 'react';\n+\n+class PureMadadata extends PureComponent {\n+\n+  constructor(props, context) {\n+    super(props, context);\n+    this.state = { value: 'madadata' };\n+    this.handleSomethingClick = this.handleSomethingClick.bind(this);\n+  }\n+\n+  componentWillMount() {\n+    // * call this.setState here to update state, the next render will pick up state changes.\n+    // * will only be invoked once.\n+  }\n+\n+  componentDidMount() {\n+    // * do setTimeout, setInterval, addEventListeners\n+    // * do ajax calls (dispatch actions that will be handled by redux-saga)\n+    // * access any refs to your children\n+  }\n+\n+  componentWillReceiveProps(nextProps) {\n+    // * componentWillReceiveProps enables you to decide what to do with next props before the component is rendered.\n+    // * this.props -> old props\n+    // * nextProps -> new props\n+    // * will not be called for initial render\n+    // * call this.setState here to update state, the next render will pick up state changes.\n+  }\n+\n+  shouldComponentUpdate(nextProps, nextState) {\n+    // * it will always return true by default. This method enables you to check to see whether you want react to re-render this component with new props and state. It's a costly operation and also a performance optimization point.\n+    // * PureComponent will help you **shallow** compare the this.props and nextProps, this.state and nextState. If you need to do compare deeply, explicitly do this in the shouldComponentUpdate method of a Component instead of PureComponent.\n+  }\n+\n+  componentWillUpdate(nextProps, nextState) {\n+    // * componentWillUpdate enables you to perform preparation before and update occurs.\n+    // * invoked immediately before rendering.\n+    // * you might do:\n+    //   1. set a variable for particular use\n+    //   2. animate your DOM elements\n+    //   3. dispatch action to do something to your store\n+    //   ...\n+  }\n+\n+  componentDidUpdate(prevProps, prevState) {\n+    // * componentDidUpdate gives you a chance to operate on the DOM.\n+    // * it will not be called in the initial render.\n+  }\n+\n+  componentWillUnmount() {\n+    // * perform necessary cleanup, clearTimer, clearEventListener ....\n+  }\n+\n+  handleSomethingClick() {\n+\n+  }\n+\n+  render() {\n+\n+  }\n+\n+}\n+\n+PureMadadata.propTypes = {};\n+PureMadadata.contextTypes = {};\n+\n+export default PureMadadata;\n+\n+```\n+\n+* Grammers\n+  * if you don't do anything other than invoke the constructor of super class\n+\n+    ```\n+    constructor() {\n+      super();\n+    }\n+    ```\n+    you can should omit the constructor.\n+  * if you want to use props or both props and context in your constructor, you need to pass them to the constructor of its super class.\n+\n+    ```\n+    constructor(props) {\n+      super(props);\n+      // this.props....\n+    }\n+\n+    constructor(props, context) {\n+      super(props, context);\n+      // this.props, this.context...\n+    }\n+    ```\n+  * bind event-handler in constructor.\n+\n+* styles\n+  * constructor: follow this order: super -> set initial state -> bind event-handler\n+    ```\n+    constructor() {\n+      super();\n+      this.state = {};\n+      this.handleSomethingClick = this.handleSomethingClick.bind(this);\n+    }\n+    ```\n+  * event-handler: if the handler is used by DOMElement named **button**, the corresponding event is **Click**, you should write it as\n+\n+    ```\n+    constructor() {\n+      ...\n+      this.handleButtonClick = this.handleButtonClick.bind(this);\n+    }\n+\n+    handleButtonClick() {\n+\n+    }\n+\n+    render() {\n+      return <div className={styles.button} onClick={this.handleButtonClick}></div>\n+    }\n+    ```\n+\n+    that is to say, the event-handler should be named **handleElementEvent**\n+  * order of Component methods should be as follows:\n+    [constructor] -> [lifecycle methods] -> [self-defined methods] -> render\n+  * if render method is to long, and it's a combination of several parts. Extract each part as a single method. For instance:\n+\n+    ```\n+    class Madadata extends PureComponent {\n+      render() {\n+        return (\n+          <div className={styles.container}>\n+            <div className={styles.header}>\n+            </div>\n+            <div className={styles.body}>\n+            </div>\n+            <div className={styles.footer}>\n+            </div>\n+          </div>\n+        );\n+      }\n+    }\n+    ```\n+\n+    you'd better extract header, body and footer out like:\n+\n+    ```\n+    class Madadata extends PureComponent {\n+\n+      getHeaderJSX() { // or you can name it **renderHeader**\n+        return <div className={styles.header}></div>;\n+      }\n+\n+      getBodyJSX() { // or you can name it **renderBody**\n+        return <div className={styles.body}></div>;\n+      }\n+\n+      getFooterJSX() { // or you can name it **renderFooter**\n+        return <div className={styles.footer}></div>;\n+      }\n+\n+      render() {\n+        const headerJSX = this.getHeaderJSX();\n+        const bodyJSX = this.getBodyJSX();\n+        const footerJSX = this.getFooterJSX();\n+        return (\n+          <div className={styles.container}>\n+            {headerJSX}\n+            {bodyJSX}\n+            {footerJSX}\n+          </div>\n+        );\n+      }\n+    }\n+    ```\n+\n+    and these extracted methods should be right above render method.\n+\n+# Component\n+* when to use?\n+  * has lifecycle method\n+  * has state to keep.\n+  * UI is not pure component.\n+\n+* [others] same with PureComponent.\n+\n+# Redux\n+\n+* when to use?\n+\n+* styles\n+  * prefer arrow functions for mapStateToProps and mapDispatchToProps:","path":"react/ComponentStyle.md","position":263,"original_position":263,"commit_id":"a57df14322f57da36137a57a160c40c2e11e7158","original_commit_id":"a57df14322f57da36137a57a160c40c2e11e7158","user":{"login":"ZhengHe-MD","id":18113865,"avatar_url":"https://avatars.githubusercontent.com/u/18113865?v=3","gravatar_id":"","url":"https://api.github.com/users/ZhengHe-MD","html_url":"https://github.com/ZhengHe-MD","followers_url":"https://api.github.com/users/ZhengHe-MD/followers","following_url":"https://api.github.com/users/ZhengHe-MD/following{/other_user}","gists_url":"https://api.github.com/users/ZhengHe-MD/gists{/gist_id}","starred_url":"https://api.github.com/users/ZhengHe-MD/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ZhengHe-MD/subscriptions","organizations_url":"https://api.github.com/users/ZhengHe-MD/orgs","repos_url":"https://api.github.com/users/ZhengHe-MD/repos","events_url":"https://api.github.com/users/ZhengHe-MD/events{/privacy}","received_events_url":"https://api.github.com/users/ZhengHe-MD/received_events","type":"User","site_admin":false},"body":"just convention. If you think that is not appropriate, we can use other conventions. My motivation for that is just for consistency.\r\n\r\nthis is good\r\n```\r\nfunction mapStateToProps() {}\r\nfunction mapDispatchToProps() {}\r\n```\r\n\r\nthis is good, as well as concise and neat.\r\n```\r\nconst mapStateToProps = state => ({});\r\nconst mapDispatchToProps = ({});\r\n```","created_at":"2016-08-11T07:35:09Z","updated_at":"2016-08-11T07:35:09Z","html_url":"https://github.com/Madadata/manual/pull/1#discussion_r74378644","pull_request_url":"https://api.github.com/repos/Madadata/manual/pulls/1","_links":{"self":{"href":"https://api.github.com/repos/Madadata/manual/pulls/comments/74378644"},"html":{"href":"https://github.com/Madadata/manual/pull/1#discussion_r74378644"},"pull_request":{"href":"https://api.github.com/repos/Madadata/manual/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/Madadata/manual/pulls/1","id":80909047,"html_url":"https://github.com/Madadata/manual/pull/1","diff_url":"https://github.com/Madadata/manual/pull/1.diff","patch_url":"https://github.com/Madadata/manual/pull/1.patch","issue_url":"https://api.github.com/repos/Madadata/manual/issues/1","number":1,"state":"open","locked":false,"title":"propose of react style","user":{"login":"ZhengHe-MD","id":18113865,"avatar_url":"https://avatars.githubusercontent.com/u/18113865?v=3","gravatar_id":"","url":"https://api.github.com/users/ZhengHe-MD","html_url":"https://github.com/ZhengHe-MD","followers_url":"https://api.github.com/users/ZhengHe-MD/followers","following_url":"https://api.github.com/users/ZhengHe-MD/following{/other_user}","gists_url":"https://api.github.com/users/ZhengHe-MD/gists{/gist_id}","starred_url":"https://api.github.com/users/ZhengHe-MD/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ZhengHe-MD/subscriptions","organizations_url":"https://api.github.com/users/ZhengHe-MD/orgs","repos_url":"https://api.github.com/users/ZhengHe-MD/repos","events_url":"https://api.github.com/users/ZhengHe-MD/events{/privacy}","received_events_url":"https://api.github.com/users/ZhengHe-MD/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-08-11T06:27:08Z","updated_at":"2016-08-11T07:35:09Z","closed_at":null,"merged_at":null,"merge_commit_sha":"85d2ce5ee6ad8ebd483093a4ad7ceb25f6596cf0","assignee":{"login":"Jimexist","id":622789,"avatar_url":"https://avatars.githubusercontent.com/u/622789?v=3","gravatar_id":"","url":"https://api.github.com/users/Jimexist","html_url":"https://github.com/Jimexist","followers_url":"https://api.github.com/users/Jimexist/followers","following_url":"https://api.github.com/users/Jimexist/following{/other_user}","gists_url":"https://api.github.com/users/Jimexist/gists{/gist_id}","starred_url":"https://api.github.com/users/Jimexist/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jimexist/subscriptions","organizations_url":"https://api.github.com/users/Jimexist/orgs","repos_url":"https://api.github.com/users/Jimexist/repos","events_url":"https://api.github.com/users/Jimexist/events{/privacy}","received_events_url":"https://api.github.com/users/Jimexist/received_events","type":"User","site_admin":false},"assignees":[{"login":"Jimexist","id":622789,"avatar_url":"https://avatars.githubusercontent.com/u/622789?v=3","gravatar_id":"","url":"https://api.github.com/users/Jimexist","html_url":"https://github.com/Jimexist","followers_url":"https://api.github.com/users/Jimexist/followers","following_url":"https://api.github.com/users/Jimexist/following{/other_user}","gists_url":"https://api.github.com/users/Jimexist/gists{/gist_id}","starred_url":"https://api.github.com/users/Jimexist/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jimexist/subscriptions","organizations_url":"https://api.github.com/users/Jimexist/orgs","repos_url":"https://api.github.com/users/Jimexist/repos","events_url":"https://api.github.com/users/Jimexist/events{/privacy}","received_events_url":"https://api.github.com/users/Jimexist/received_events","type":"User","site_admin":false},{"login":"CrazyAlvaro","id":2230058,"avatar_url":"https://avatars.githubusercontent.com/u/2230058?v=3","gravatar_id":"","url":"https://api.github.com/users/CrazyAlvaro","html_url":"https://github.com/CrazyAlvaro","followers_url":"https://api.github.com/users/CrazyAlvaro/followers","following_url":"https://api.github.com/users/CrazyAlvaro/following{/other_user}","gists_url":"https://api.github.com/users/CrazyAlvaro/gists{/gist_id}","starred_url":"https://api.github.com/users/CrazyAlvaro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CrazyAlvaro/subscriptions","organizations_url":"https://api.github.com/users/CrazyAlvaro/orgs","repos_url":"https://api.github.com/users/CrazyAlvaro/repos","events_url":"https://api.github.com/users/CrazyAlvaro/events{/privacy}","received_events_url":"https://api.github.com/users/CrazyAlvaro/received_events","type":"User","site_admin":false},{"login":"maicaiyao","id":2432030,"avatar_url":"https://avatars.githubusercontent.com/u/2432030?v=3","gravatar_id":"","url":"https://api.github.com/users/maicaiyao","html_url":"https://github.com/maicaiyao","followers_url":"https://api.github.com/users/maicaiyao/followers","following_url":"https://api.github.com/users/maicaiyao/following{/other_user}","gists_url":"https://api.github.com/users/maicaiyao/gists{/gist_id}","starred_url":"https://api.github.com/users/maicaiyao/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maicaiyao/subscriptions","organizations_url":"https://api.github.com/users/maicaiyao/orgs","repos_url":"https://api.github.com/users/maicaiyao/repos","events_url":"https://api.github.com/users/maicaiyao/events{/privacy}","received_events_url":"https://api.github.com/users/maicaiyao/received_events","type":"User","site_admin":false},{"login":"wangqianliangM","id":20763538,"avatar_url":"https://avatars.githubusercontent.com/u/20763538?v=3","gravatar_id":"","url":"https://api.github.com/users/wangqianliangM","html_url":"https://github.com/wangqianliangM","followers_url":"https://api.github.com/users/wangqianliangM/followers","following_url":"https://api.github.com/users/wangqianliangM/following{/other_user}","gists_url":"https://api.github.com/users/wangqianliangM/gists{/gist_id}","starred_url":"https://api.github.com/users/wangqianliangM/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wangqianliangM/subscriptions","organizations_url":"https://api.github.com/users/wangqianliangM/orgs","repos_url":"https://api.github.com/users/wangqianliangM/repos","events_url":"https://api.github.com/users/wangqianliangM/events{/privacy}","received_events_url":"https://api.github.com/users/wangqianliangM/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/Madadata/manual/pulls/1/commits","review_comments_url":"https://api.github.com/repos/Madadata/manual/pulls/1/comments","review_comment_url":"https://api.github.com/repos/Madadata/manual/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Madadata/manual/issues/1/comments","statuses_url":"https://api.github.com/repos/Madadata/manual/statuses/a57df14322f57da36137a57a160c40c2e11e7158","head":{"label":"Madadata:styles/react","ref":"styles/react","sha":"a57df14322f57da36137a57a160c40c2e11e7158","user":{"login":"Madadata","id":16741075,"avatar_url":"https://avatars.githubusercontent.com/u/16741075?v=3","gravatar_id":"","url":"https://api.github.com/users/Madadata","html_url":"https://github.com/Madadata","followers_url":"https://api.github.com/users/Madadata/followers","following_url":"https://api.github.com/users/Madadata/following{/other_user}","gists_url":"https://api.github.com/users/Madadata/gists{/gist_id}","starred_url":"https://api.github.com/users/Madadata/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Madadata/subscriptions","organizations_url":"https://api.github.com/users/Madadata/orgs","repos_url":"https://api.github.com/users/Madadata/repos","events_url":"https://api.github.com/users/Madadata/events{/privacy}","received_events_url":"https://api.github.com/users/Madadata/received_events","type":"Organization","site_admin":false},"repo":{"id":65069105,"name":"manual","full_name":"Madadata/manual","owner":{"login":"Madadata","id":16741075,"avatar_url":"https://avatars.githubusercontent.com/u/16741075?v=3","gravatar_id":"","url":"https://api.github.com/users/Madadata","html_url":"https://github.com/Madadata","followers_url":"https://api.github.com/users/Madadata/followers","following_url":"https://api.github.com/users/Madadata/following{/other_user}","gists_url":"https://api.github.com/users/Madadata/gists{/gist_id}","starred_url":"https://api.github.com/users/Madadata/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Madadata/subscriptions","organizations_url":"https://api.github.com/users/Madadata/orgs","repos_url":"https://api.github.com/users/Madadata/repos","events_url":"https://api.github.com/users/Madadata/events{/privacy}","received_events_url":"https://api.github.com/users/Madadata/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Madadata/manual","description":"RTFM","fork":false,"url":"https://api.github.com/repos/Madadata/manual","forks_url":"https://api.github.com/repos/Madadata/manual/forks","keys_url":"https://api.github.com/repos/Madadata/manual/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Madadata/manual/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Madadata/manual/teams","hooks_url":"https://api.github.com/repos/Madadata/manual/hooks","issue_events_url":"https://api.github.com/repos/Madadata/manual/issues/events{/number}","events_url":"https://api.github.com/repos/Madadata/manual/events","assignees_url":"https://api.github.com/repos/Madadata/manual/assignees{/user}","branches_url":"https://api.github.com/repos/Madadata/manual/branches{/branch}","tags_url":"https://api.github.com/repos/Madadata/manual/tags","blobs_url":"https://api.github.com/repos/Madadata/manual/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Madadata/manual/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Madadata/manual/git/refs{/sha}","trees_url":"https://api.github.com/repos/Madadata/manual/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Madadata/manual/statuses/{sha}","languages_url":"https://api.github.com/repos/Madadata/manual/languages","stargazers_url":"https://api.github.com/repos/Madadata/manual/stargazers","contributors_url":"https://api.github.com/repos/Madadata/manual/contributors","subscribers_url":"https://api.github.com/repos/Madadata/manual/subscribers","subscription_url":"https://api.github.com/repos/Madadata/manual/subscription","commits_url":"https://api.github.com/repos/Madadata/manual/commits{/sha}","git_commits_url":"https://api.github.com/repos/Madadata/manual/git/commits{/sha}","comments_url":"https://api.github.com/repos/Madadata/manual/comments{/number}","issue_comment_url":"https://api.github.com/repos/Madadata/manual/issues/comments{/number}","contents_url":"https://api.github.com/repos/Madadata/manual/contents/{+path}","compare_url":"https://api.github.com/repos/Madadata/manual/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Madadata/manual/merges","archive_url":"https://api.github.com/repos/Madadata/manual/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Madadata/manual/downloads","issues_url":"https://api.github.com/repos/Madadata/manual/issues{/number}","pulls_url":"https://api.github.com/repos/Madadata/manual/pulls{/number}","milestones_url":"https://api.github.com/repos/Madadata/manual/milestones{/number}","notifications_url":"https://api.github.com/repos/Madadata/manual/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Madadata/manual/labels{/name}","releases_url":"https://api.github.com/repos/Madadata/manual/releases{/id}","deployments_url":"https://api.github.com/repos/Madadata/manual/deployments","created_at":"2016-08-06T06:47:06Z","updated_at":"2016-08-06T07:16:58Z","pushed_at":"2016-08-11T06:27:08Z","git_url":"git://github.com/Madadata/manual.git","ssh_url":"git@github.com:Madadata/manual.git","clone_url":"https://github.com/Madadata/manual.git","svn_url":"https://github.com/Madadata/manual","homepage":null,"size":8,"stargazers_count":5,"watchers_count":5,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":1,"forks":1,"open_issues":1,"watchers":5,"default_branch":"master"}},"base":{"label":"Madadata:master","ref":"master","sha":"1765d6ca082370820839d222516ae3cf270d4daa","user":{"login":"Madadata","id":16741075,"avatar_url":"https://avatars.githubusercontent.com/u/16741075?v=3","gravatar_id":"","url":"https://api.github.com/users/Madadata","html_url":"https://github.com/Madadata","followers_url":"https://api.github.com/users/Madadata/followers","following_url":"https://api.github.com/users/Madadata/following{/other_user}","gists_url":"https://api.github.com/users/Madadata/gists{/gist_id}","starred_url":"https://api.github.com/users/Madadata/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Madadata/subscriptions","organizations_url":"https://api.github.com/users/Madadata/orgs","repos_url":"https://api.github.com/users/Madadata/repos","events_url":"https://api.github.com/users/Madadata/events{/privacy}","received_events_url":"https://api.github.com/users/Madadata/received_events","type":"Organization","site_admin":false},"repo":{"id":65069105,"name":"manual","full_name":"Madadata/manual","owner":{"login":"Madadata","id":16741075,"avatar_url":"https://avatars.githubusercontent.com/u/16741075?v=3","gravatar_id":"","url":"https://api.github.com/users/Madadata","html_url":"https://github.com/Madadata","followers_url":"https://api.github.com/users/Madadata/followers","following_url":"https://api.github.com/users/Madadata/following{/other_user}","gists_url":"https://api.github.com/users/Madadata/gists{/gist_id}","starred_url":"https://api.github.com/users/Madadata/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Madadata/subscriptions","organizations_url":"https://api.github.com/users/Madadata/orgs","repos_url":"https://api.github.com/users/Madadata/repos","events_url":"https://api.github.com/users/Madadata/events{/privacy}","received_events_url":"https://api.github.com/users/Madadata/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Madadata/manual","description":"RTFM","fork":false,"url":"https://api.github.com/repos/Madadata/manual","forks_url":"https://api.github.com/repos/Madadata/manual/forks","keys_url":"https://api.github.com/repos/Madadata/manual/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Madadata/manual/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Madadata/manual/teams","hooks_url":"https://api.github.com/repos/Madadata/manual/hooks","issue_events_url":"https://api.github.com/repos/Madadata/manual/issues/events{/number}","events_url":"https://api.github.com/repos/Madadata/manual/events","assignees_url":"https://api.github.com/repos/Madadata/manual/assignees{/user}","branches_url":"https://api.github.com/repos/Madadata/manual/branches{/branch}","tags_url":"https://api.github.com/repos/Madadata/manual/tags","blobs_url":"https://api.github.com/repos/Madadata/manual/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Madadata/manual/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Madadata/manual/git/refs{/sha}","trees_url":"https://api.github.com/repos/Madadata/manual/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Madadata/manual/statuses/{sha}","languages_url":"https://api.github.com/repos/Madadata/manual/languages","stargazers_url":"https://api.github.com/repos/Madadata/manual/stargazers","contributors_url":"https://api.github.com/repos/Madadata/manual/contributors","subscribers_url":"https://api.github.com/repos/Madadata/manual/subscribers","subscription_url":"https://api.github.com/repos/Madadata/manual/subscription","commits_url":"https://api.github.com/repos/Madadata/manual/commits{/sha}","git_commits_url":"https://api.github.com/repos/Madadata/manual/git/commits{/sha}","comments_url":"https://api.github.com/repos/Madadata/manual/comments{/number}","issue_comment_url":"https://api.github.com/repos/Madadata/manual/issues/comments{/number}","contents_url":"https://api.github.com/repos/Madadata/manual/contents/{+path}","compare_url":"https://api.github.com/repos/Madadata/manual/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Madadata/manual/merges","archive_url":"https://api.github.com/repos/Madadata/manual/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Madadata/manual/downloads","issues_url":"https://api.github.com/repos/Madadata/manual/issues{/number}","pulls_url":"https://api.github.com/repos/Madadata/manual/pulls{/number}","milestones_url":"https://api.github.com/repos/Madadata/manual/milestones{/number}","notifications_url":"https://api.github.com/repos/Madadata/manual/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Madadata/manual/labels{/name}","releases_url":"https://api.github.com/repos/Madadata/manual/releases{/id}","deployments_url":"https://api.github.com/repos/Madadata/manual/deployments","created_at":"2016-08-06T06:47:06Z","updated_at":"2016-08-06T07:16:58Z","pushed_at":"2016-08-11T06:27:08Z","git_url":"git://github.com/Madadata/manual.git","ssh_url":"git@github.com:Madadata/manual.git","clone_url":"https://github.com/Madadata/manual.git","svn_url":"https://github.com/Madadata/manual","homepage":null,"size":8,"stargazers_count":5,"watchers_count":5,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":1,"forks":1,"open_issues":1,"watchers":5,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Madadata/manual/pulls/1"},"html":{"href":"https://github.com/Madadata/manual/pull/1"},"issue":{"href":"https://api.github.com/repos/Madadata/manual/issues/1"},"comments":{"href":"https://api.github.com/repos/Madadata/manual/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/Madadata/manual/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/Madadata/manual/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Madadata/manual/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/Madadata/manual/statuses/a57df14322f57da36137a57a160c40c2e11e7158"}}}}
{"actor":{"display_login":"ZhengHe-MD"}}