{"action":"created","comment":{"url":"https://api.github.com/repos/CodeYourFuture/syllabus/pulls/comments/141036550","pull_request_review_id":65184054,"id":141036550,"diff_hunk":"@@ -36,175 +91,431 @@ cd my-app/\n npm start\n ```\n \n+# Our first component\n \n-# JSX\n-- Uses [JSX](https://facebook.github.io/react/docs/introducing-jsx.html)\n+Components in React can be defined by just declaring a function that return some JSX.\n \n-```jsx\n-import React, { Component } from 'react';\n+- Create a new file in `./src/components/button.js`\n \n-class App extends Component {\n-  render() {\n+- Create your first component\n \n-    return (\n-      <div className=\"App\">\n-        Hello World!\n-      </div>\n-    );\n-  }\n+```javascript\n+import React from 'react';\n+\n+function GameButton() {\n+    return <button> Awesome button! </button>;\n }\n \n-export default App;\n+export default GameButton;\n ```\n-# Components\n+\n+- Switch back to `App.js` and use your new custom component!\n+\n+```javascript\n+import GameButton from './components/gameButton';\n+// .........\n+  <p className=\"App-intro\">\n+    <GameButton/>\n+  </p>\n+// .........\n+```\n+\n+- Check your browser, it should have refreshed with the latest changes\n+\n+# Class components\n \n React components are best understood in terms of parents and children.\n \n Parent or `container` components may have access to the data that they need in order to pass on to multiple child components. These larger components often contain the actions (e.g. API calls) or data processing functions that their child components require and thus are referred to as `smart` components.\n \n-Example:\n-```jsx\n-import React, { Component } from 'react';\n-import Organisation from './Organisation';\n+These components are usually defined using ES6 classes. So instead of returning the JSX directly, it's returned as part of a `render()` function. Here's how we would define the button component we created above using ES6 classes:\n+\n+```javascript\n+class GameButton extends React.Components {\n \n-class App extends Component {\n   render() {\n-    return (\n-      <div className=\"App\">\n-        <Organisation\n-            name=\"Refugee Support Network\"\n-            website=\"http://www.refugeesupportnetwork.org\"\n-        />\n-      </div>\n-    );\n+    return <button> Awesome button! </button>;\n   }\n }\n+```\n+\n+The above is the exact same component we defined using the function. \n+\n+Child or `presentational` components are essentially smaller customisable to the data that they receive but usually do not have the data in themselves. These are often referred to as `dumb` components - because they do not process the data in themselves:\n+\n+While function components are a lot simpler to read and write, using ES6 classes allows us to create more powerful, smarter components.\n+\n+# JSX\n+\n+You might have noticed something weird: we were returning some HTML-like code in our components.\n+\n+That is called JSX, and it's a compromise to allows us to use the HTML we are so familiar inside our JavaScript components. \n+\n+Since it's not exactly HTML, there are some gotchas, of which you'll need to be aware of:\n+\n+- event handlers are capitalized\n+\n+HTML: `<button onclick=\"myFunction()\"/>` \n+JSX: `button onClick=\"myFunction()\"/>`\n+\n+- `className` instead of `class`\n \n-export default App;\n+HTML: `<button class=\"myButton\"/>`\n+JSX: `<button className=\"myButton\"/>`\n \n+- must always have one child element\n+\n+Won't work:\n+\n+```javascript\n+return (\n+  <p> Hello! </p>\n+  <p> This is my blog. </p>\n+);\n ```\n \n-Child or `presentational` components are essentially smaller customisable to the data that they receive but usually do not have the data in themselves. These are often referred to as `dumb` components - because they do not process the data in themselves:\n+Will work:\n \n-```jsx\n-import React, { Component } from 'react';\n+```javascript\n+return (\n+  <div>\n+    <p> Hello! </p>\n+    <p> This is my blog. </p>\n+  </div>\n+);\n+```\n \n-class Organisation extends Component {\n-  render() {\n-    const name = this.props.name;\n-    const website = this.props.website;\n-    return (\n-        <div>\n-            Name: {name} <br />\n-            Website: {website}\n-        </div>\n-    );\n+## Thinking in React\n+\n+Let's go over some examples and discuss how we would break everything up into smart and dumb components.\n+\n+# Event handlers\n+\n+Time to handle a few user events. We'll add a \"difficulty setting\" input. For now, whenever the user changes that input, we will `console.log` the result.\n+\n+```javascript\n+\n+difficultyChange = (event) => {\n+  console.log(event.target.value);\n+};\n+\n+//inside render()\n+<input type=\"number\" onChange={this.difficultyChange}/>\n+```\n+\n+3 things to notice:\n+\n+- the curly brackets after `onChange`: surrounding something by two curly brackets is a way to use JavaScript inside JSX\n+- `difficultyChange` is written as an arrow function: this is a good way to avoid issues with the `this` context in React. You can read more about it here: https://facebook.github.io/react/docs/handling-events.html\n+- the `event` object: this is a special object passed to all event handlers in React. In our case we can use it to access the target DOM element of that event, and more specifically, its value.\n+\n+# JSX: Map Arrays to Components\n+\n+Because works so well with JavaScript, we can even it in for loops and build JS arrays that contain JSX elements.\n+\n+Adding more game buttons would be easy, we can just copy-paste them one after another. But what if need a lot of them? Or what if we want to make their number dynamic, chosen by the user?\n+\n+Let's create a function that returns us an array of game buttons:\n+\n+```javascript\n+buildGame() {\n+  let buttons =  [];\n+  for(var i=0; i<10; i++) {\n+    buttons.push(<GameButton />)\n   }\n+  return buttons;\n }\n+```\n \n-export default Organisation;\n+And then call it in our `render()` function:\n \n+```javascript\n+<p className=\"App-intro\">\n+  <input type=\"number\" onChange={this.difficultyChange}/>\n+  <br/>\n+  {this.buildGame()}\n+</p>\n ```\n \n-- [Props exercise](https://jsfiddle.net/kabaros/1h9taf1e/)\n+# State\n \n+A component's internal state represents all the information that a components \"knows\" about itself. \n+State can only exist on `class` components. That is why they're also called `statefull` components.\n+State can be accessed anywhere in the components using `this.state.myName` and can be set using `this.setState({myName: \"hello\"})`. \n \n-## Thinking in React\n-In development you are often given specification of a piece work with example design and data:\n+`setState` also tells React that our data has changed, so it can go ahead and re-render our view. Hence, it's very important that you never change state directly, and you only modify using `setState`:\n \n-![Inventory data table](https://facebook.github.io/react/img/blog/thinking-in-react-mock.png)\n+```javascript\n+//WRONG\n+this.state.myName = \"hello\";\n \n-```json\n-[\n-  {\"category\": \"Sporting Goods\", \"price\": \"$49.99\", \"stocked\": true, \"name\": \"Football\"},\n-  {\"category\": \"Sporting Goods\", \"price\": \"$9.99\", \"stocked\": true, \"name\": \"Baseball\"},\n-  {\"category\": \"Sporting Goods\", \"price\": \"$29.99\", \"stocked\": false, \"name\": \"Basketball\"},\n-  {\"category\": \"Electronics\", \"price\": \"$99.99\", \"stocked\": true, \"name\": \"iPod Touch\"},\n-  {\"category\": \"Electronics\", \"price\": \"$399.99\", \"stocked\": false, \"name\": \"iPhone 5\"},\n-  {\"category\": \"Electronics\", \"price\": \"$199.99\", \"stocked\": true, \"name\": \"Nexus 7\"}\n-];\n+//CORRECT\n+this.setState({\n+  myName: \"hello\"\n+});\n ```\n-Steps to conceptualise the solution with `React`:\n-- 1: [Break The UI Into A Component Hierarchy](https://facebook.github.io/react/img/blog/thinking-in-react-components.png)\n-- 2: Build A Static Version\n-- 3: Identify the State and where it should live\n \n-[Exercise: Code Review](http://codepen.io/lacker/pen/vXpAgj)\n+Remember the change handler we added for our difficulty setting? And the array that builds our buttons array? Time to connect those two using state!\n \n-# JSX: Map Arrays to Components\n+Start by defining the initial state in the constructor:\n \n-When working with APIs we often have collections of things in `Arrays` which we want to map to components. This means we can loop through that data and display the customisable `dumb` component for each one.\n+```javascript\n+constructor() {\n+  super();\n+  this.state = {\n+    difficulty: 10\n+  };\n+}\n+```\n \n-```jsx\n+Notice the call to `super()`. We always need to call that before referencing the `this` keyword in the constructor. In this case it calls the `constructor()` of the parent class `React.Component`. `super` is not a React function, it's an ES6 keyword used in class inherritence: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/super\n \n-renderOrganisations() {\n-    const orgData = [{ name: 'Organisation 1', borough: 'Camden'}, {name: 'Organisation 2'}];\n-    return orgData.map(function renderData(organisation) {\n-        return (\n-            <Organisation\n-                name= {organisation.name}\n-                borough={organisation.borough ? organisation.borough : 'None'}\n-                website= {organisation.website}\n-            />\n-        )\n+```javascript\n+  difficultyChange = (event) => {\n+    this.setState({\n+      difficulty: event.target.value\n     });\n+  };\n+\n+  buildGame() {\n+    let buttons =  [];\n+    for(var i=0; i<this.state.difficulty; i++) {\n+      buttons.push(<GameButton />)\n+    }\n+    return buttons;\n+  }\n+\n+  <input value={this.state.difficulty} type=\"number\" onChange={this.difficultyChange}/>\n+```\n+\n+Notice I'm also passing the state difficulty to our input through the `value` attribute.\n+\n+Now go ahead and change the difficulty level in your input, and see the number of buttons update in real time. Try to keep it under 100 to avoid your browser freezing.\n+\n+# Props\n+\n+Remember HTML attributes? \n+\n+`<input value=\"Hervin\" class=\"nameInput\" />`\n+\n+Props are the inputs sent from the parent to child component via its attributes. So for our `GameButton` we could send it a prop that would specify what text it should display on the button:\n+\n+`<GameButton btnText=\"First button\" />`","path":"react/lesson1.md","position":363,"original_position":363,"commit_id":"442c37c5447cbb2c49995674d52c3a2c7b070f0b","original_commit_id":"442c37c5447cbb2c49995674d52c3a2c7b070f0b","user":{"login":"scott-ad-riley","id":11612724,"avatar_url":"https://avatars3.githubusercontent.com/u/11612724?v=4","gravatar_id":"","url":"https://api.github.com/users/scott-ad-riley","html_url":"https://github.com/scott-ad-riley","followers_url":"https://api.github.com/users/scott-ad-riley/followers","following_url":"https://api.github.com/users/scott-ad-riley/following{/other_user}","gists_url":"https://api.github.com/users/scott-ad-riley/gists{/gist_id}","starred_url":"https://api.github.com/users/scott-ad-riley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scott-ad-riley/subscriptions","organizations_url":"https://api.github.com/users/scott-ad-riley/orgs","repos_url":"https://api.github.com/users/scott-ad-riley/repos","events_url":"https://api.github.com/users/scott-ad-riley/events{/privacy}","received_events_url":"https://api.github.com/users/scott-ad-riley/received_events","type":"User","site_admin":false},"body":"yeh for the sake of clarity here - `text` should be fine","created_at":"2017-09-26T12:12:16Z","updated_at":"2017-09-26T12:22:08Z","html_url":"https://github.com/CodeYourFuture/syllabus/pull/132#discussion_r141036550","pull_request_url":"https://api.github.com/repos/CodeYourFuture/syllabus/pulls/132","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/CodeYourFuture/syllabus/pulls/comments/141036550"},"html":{"href":"https://github.com/CodeYourFuture/syllabus/pull/132#discussion_r141036550"},"pull_request":{"href":"https://api.github.com/repos/CodeYourFuture/syllabus/pulls/132"}},"in_reply_to_id":141019598},"pull_request":{"url":"https://api.github.com/repos/CodeYourFuture/syllabus/pulls/132","id":143000692,"html_url":"https://github.com/CodeYourFuture/syllabus/pull/132","diff_url":"https://github.com/CodeYourFuture/syllabus/pull/132.diff","patch_url":"https://github.com/CodeYourFuture/syllabus/pull/132.patch","issue_url":"https://api.github.com/repos/CodeYourFuture/syllabus/issues/132","number":132,"state":"open","locked":false,"title":"React lesson 1","user":{"login":"rarmatei","id":5975076,"avatar_url":"https://avatars2.githubusercontent.com/u/5975076?v=4","gravatar_id":"","url":"https://api.github.com/users/rarmatei","html_url":"https://github.com/rarmatei","followers_url":"https://api.github.com/users/rarmatei/followers","following_url":"https://api.github.com/users/rarmatei/following{/other_user}","gists_url":"https://api.github.com/users/rarmatei/gists{/gist_id}","starred_url":"https://api.github.com/users/rarmatei/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rarmatei/subscriptions","organizations_url":"https://api.github.com/users/rarmatei/orgs","repos_url":"https://api.github.com/users/rarmatei/repos","events_url":"https://api.github.com/users/rarmatei/events{/privacy}","received_events_url":"https://api.github.com/users/rarmatei/received_events","type":"User","site_admin":false},"body":"If this lesson were a person, it would wear a large T-shirt. It's so large mainly because it contains a lot of code examples.\r\n\r\nThe aim of this first lesson is to get them interested in React and learn the basics. I wanted to avoid spending too much time just on explaining theoretical concepts, and instead learn them as we build a game. And then strengthen them during future lessons.\r\n\r\nAll of the topics I'm covering here are in line with @kabaros [Lesson 1 Plan for React](https://github.com/CodeYourFuture/syllabus/issues/131).\r\n\r\nI'm 100% confident we'll be able to get through all the React concepts in this lesson, and even if we don't have time to finish the whole game, I can have them finish it as homework. After the Node/DB module, it should be a lot easier for them to connect the puzzle pieces with React, as it's a lot less new APIs/concepts and more capitalising on previous JavaScript/HTML knowledge. I really hope that will be the case.\r\n\r\nThese are the only two files they'll be creating during the workshop (will be slightly different, but mostly the same):\r\nhttps://github.com/rarmatei/CYF-ReactGame/blob/master/src/App.js\r\nhttps://github.com/rarmatei/CYF-ReactGame/blob/master/src/components/button.js\r\n\r\nIt doesn't seem to be a lot of code. Maybe manageable for an intro class + what's left for homework?\r\n\r\nI still have to arrange it a bit, and make it look nicer.","created_at":"2017-09-25T22:39:00Z","updated_at":"2017-09-26T12:22:08Z","closed_at":null,"merged_at":null,"merge_commit_sha":"752b3281861465177796584b99674e62420078e8","assignee":null,"assignees":[],"requested_reviewers":[{"login":"Amwam","id":879073,"avatar_url":"https://avatars1.githubusercontent.com/u/879073?v=4","gravatar_id":"","url":"https://api.github.com/users/Amwam","html_url":"https://github.com/Amwam","followers_url":"https://api.github.com/users/Amwam/followers","following_url":"https://api.github.com/users/Amwam/following{/other_user}","gists_url":"https://api.github.com/users/Amwam/gists{/gist_id}","starred_url":"https://api.github.com/users/Amwam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Amwam/subscriptions","organizations_url":"https://api.github.com/users/Amwam/orgs","repos_url":"https://api.github.com/users/Amwam/repos","events_url":"https://api.github.com/users/Amwam/events{/privacy}","received_events_url":"https://api.github.com/users/Amwam/received_events","type":"User","site_admin":false},{"login":"kabaros","id":1014725,"avatar_url":"https://avatars3.githubusercontent.com/u/1014725?v=4","gravatar_id":"","url":"https://api.github.com/users/kabaros","html_url":"https://github.com/kabaros","followers_url":"https://api.github.com/users/kabaros/followers","following_url":"https://api.github.com/users/kabaros/following{/other_user}","gists_url":"https://api.github.com/users/kabaros/gists{/gist_id}","starred_url":"https://api.github.com/users/kabaros/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kabaros/subscriptions","organizations_url":"https://api.github.com/users/kabaros/orgs","repos_url":"https://api.github.com/users/kabaros/repos","events_url":"https://api.github.com/users/kabaros/events{/privacy}","received_events_url":"https://api.github.com/users/kabaros/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/CodeYourFuture/syllabus/pulls/132/commits","review_comments_url":"https://api.github.com/repos/CodeYourFuture/syllabus/pulls/132/comments","review_comment_url":"https://api.github.com/repos/CodeYourFuture/syllabus/pulls/comments{/number}","comments_url":"https://api.github.com/repos/CodeYourFuture/syllabus/issues/132/comments","statuses_url":"https://api.github.com/repos/CodeYourFuture/syllabus/statuses/442c37c5447cbb2c49995674d52c3a2c7b070f0b","head":{"label":"rarmatei:scotland-react-lesson1","ref":"scotland-react-lesson1","sha":"442c37c5447cbb2c49995674d52c3a2c7b070f0b","user":{"login":"rarmatei","id":5975076,"avatar_url":"https://avatars2.githubusercontent.com/u/5975076?v=4","gravatar_id":"","url":"https://api.github.com/users/rarmatei","html_url":"https://github.com/rarmatei","followers_url":"https://api.github.com/users/rarmatei/followers","following_url":"https://api.github.com/users/rarmatei/following{/other_user}","gists_url":"https://api.github.com/users/rarmatei/gists{/gist_id}","starred_url":"https://api.github.com/users/rarmatei/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rarmatei/subscriptions","organizations_url":"https://api.github.com/users/rarmatei/orgs","repos_url":"https://api.github.com/users/rarmatei/repos","events_url":"https://api.github.com/users/rarmatei/events{/privacy}","received_events_url":"https://api.github.com/users/rarmatei/received_events","type":"User","site_admin":false},"repo":{"id":85995632,"name":"syllabus","full_name":"rarmatei/syllabus","owner":{"login":"rarmatei","id":5975076,"avatar_url":"https://avatars2.githubusercontent.com/u/5975076?v=4","gravatar_id":"","url":"https://api.github.com/users/rarmatei","html_url":"https://github.com/rarmatei","followers_url":"https://api.github.com/users/rarmatei/followers","following_url":"https://api.github.com/users/rarmatei/following{/other_user}","gists_url":"https://api.github.com/users/rarmatei/gists{/gist_id}","starred_url":"https://api.github.com/users/rarmatei/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rarmatei/subscriptions","organizations_url":"https://api.github.com/users/rarmatei/orgs","repos_url":"https://api.github.com/users/rarmatei/repos","events_url":"https://api.github.com/users/rarmatei/events{/privacy}","received_events_url":"https://api.github.com/users/rarmatei/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/rarmatei/syllabus","description":"CodeYourFuture syllabus","fork":true,"url":"https://api.github.com/repos/rarmatei/syllabus","forks_url":"https://api.github.com/repos/rarmatei/syllabus/forks","keys_url":"https://api.github.com/repos/rarmatei/syllabus/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rarmatei/syllabus/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rarmatei/syllabus/teams","hooks_url":"https://api.github.com/repos/rarmatei/syllabus/hooks","issue_events_url":"https://api.github.com/repos/rarmatei/syllabus/issues/events{/number}","events_url":"https://api.github.com/repos/rarmatei/syllabus/events","assignees_url":"https://api.github.com/repos/rarmatei/syllabus/assignees{/user}","branches_url":"https://api.github.com/repos/rarmatei/syllabus/branches{/branch}","tags_url":"https://api.github.com/repos/rarmatei/syllabus/tags","blobs_url":"https://api.github.com/repos/rarmatei/syllabus/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rarmatei/syllabus/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rarmatei/syllabus/git/refs{/sha}","trees_url":"https://api.github.com/repos/rarmatei/syllabus/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rarmatei/syllabus/statuses/{sha}","languages_url":"https://api.github.com/repos/rarmatei/syllabus/languages","stargazers_url":"https://api.github.com/repos/rarmatei/syllabus/stargazers","contributors_url":"https://api.github.com/repos/rarmatei/syllabus/contributors","subscribers_url":"https://api.github.com/repos/rarmatei/syllabus/subscribers","subscription_url":"https://api.github.com/repos/rarmatei/syllabus/subscription","commits_url":"https://api.github.com/repos/rarmatei/syllabus/commits{/sha}","git_commits_url":"https://api.github.com/repos/rarmatei/syllabus/git/commits{/sha}","comments_url":"https://api.github.com/repos/rarmatei/syllabus/comments{/number}","issue_comment_url":"https://api.github.com/repos/rarmatei/syllabus/issues/comments{/number}","contents_url":"https://api.github.com/repos/rarmatei/syllabus/contents/{+path}","compare_url":"https://api.github.com/repos/rarmatei/syllabus/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rarmatei/syllabus/merges","archive_url":"https://api.github.com/repos/rarmatei/syllabus/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rarmatei/syllabus/downloads","issues_url":"https://api.github.com/repos/rarmatei/syllabus/issues{/number}","pulls_url":"https://api.github.com/repos/rarmatei/syllabus/pulls{/number}","milestones_url":"https://api.github.com/repos/rarmatei/syllabus/milestones{/number}","notifications_url":"https://api.github.com/repos/rarmatei/syllabus/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rarmatei/syllabus/labels{/name}","releases_url":"https://api.github.com/repos/rarmatei/syllabus/releases{/id}","deployments_url":"https://api.github.com/repos/rarmatei/syllabus/deployments","created_at":"2017-03-23T20:42:58Z","updated_at":"2017-03-23T20:43:00Z","pushed_at":"2017-09-25T22:26:12Z","git_url":"git://github.com/rarmatei/syllabus.git","ssh_url":"git@github.com:rarmatei/syllabus.git","clone_url":"https://github.com/rarmatei/syllabus.git","svn_url":"https://github.com/rarmatei/syllabus","homepage":"https://code-your-future.github.io/syllabus","size":11111,"stargazers_count":0,"watchers_count":0,"language":"HTML","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"CodeYourFuture:scotland","ref":"scotland","sha":"0f1ab32e47e26d6f4711e8096dc862bdfc17b0f2","user":{"login":"CodeYourFuture","id":22743767,"avatar_url":"https://avatars3.githubusercontent.com/u/22743767?v=4","gravatar_id":"","url":"https://api.github.com/users/CodeYourFuture","html_url":"https://github.com/CodeYourFuture","followers_url":"https://api.github.com/users/CodeYourFuture/followers","following_url":"https://api.github.com/users/CodeYourFuture/following{/other_user}","gists_url":"https://api.github.com/users/CodeYourFuture/gists{/gist_id}","starred_url":"https://api.github.com/users/CodeYourFuture/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CodeYourFuture/subscriptions","organizations_url":"https://api.github.com/users/CodeYourFuture/orgs","repos_url":"https://api.github.com/users/CodeYourFuture/repos","events_url":"https://api.github.com/users/CodeYourFuture/events{/privacy}","received_events_url":"https://api.github.com/users/CodeYourFuture/received_events","type":"Organization","site_admin":false},"repo":{"id":85242778,"name":"syllabus","full_name":"CodeYourFuture/syllabus","owner":{"login":"CodeYourFuture","id":22743767,"avatar_url":"https://avatars3.githubusercontent.com/u/22743767?v=4","gravatar_id":"","url":"https://api.github.com/users/CodeYourFuture","html_url":"https://github.com/CodeYourFuture","followers_url":"https://api.github.com/users/CodeYourFuture/followers","following_url":"https://api.github.com/users/CodeYourFuture/following{/other_user}","gists_url":"https://api.github.com/users/CodeYourFuture/gists{/gist_id}","starred_url":"https://api.github.com/users/CodeYourFuture/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CodeYourFuture/subscriptions","organizations_url":"https://api.github.com/users/CodeYourFuture/orgs","repos_url":"https://api.github.com/users/CodeYourFuture/repos","events_url":"https://api.github.com/users/CodeYourFuture/events{/privacy}","received_events_url":"https://api.github.com/users/CodeYourFuture/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/CodeYourFuture/syllabus","description":"CodeYourFuture syllabus v2","fork":false,"url":"https://api.github.com/repos/CodeYourFuture/syllabus","forks_url":"https://api.github.com/repos/CodeYourFuture/syllabus/forks","keys_url":"https://api.github.com/repos/CodeYourFuture/syllabus/keys{/key_id}","collaborators_url":"https://api.github.com/repos/CodeYourFuture/syllabus/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/CodeYourFuture/syllabus/teams","hooks_url":"https://api.github.com/repos/CodeYourFuture/syllabus/hooks","issue_events_url":"https://api.github.com/repos/CodeYourFuture/syllabus/issues/events{/number}","events_url":"https://api.github.com/repos/CodeYourFuture/syllabus/events","assignees_url":"https://api.github.com/repos/CodeYourFuture/syllabus/assignees{/user}","branches_url":"https://api.github.com/repos/CodeYourFuture/syllabus/branches{/branch}","tags_url":"https://api.github.com/repos/CodeYourFuture/syllabus/tags","blobs_url":"https://api.github.com/repos/CodeYourFuture/syllabus/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/CodeYourFuture/syllabus/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/CodeYourFuture/syllabus/git/refs{/sha}","trees_url":"https://api.github.com/repos/CodeYourFuture/syllabus/git/trees{/sha}","statuses_url":"https://api.github.com/repos/CodeYourFuture/syllabus/statuses/{sha}","languages_url":"https://api.github.com/repos/CodeYourFuture/syllabus/languages","stargazers_url":"https://api.github.com/repos/CodeYourFuture/syllabus/stargazers","contributors_url":"https://api.github.com/repos/CodeYourFuture/syllabus/contributors","subscribers_url":"https://api.github.com/repos/CodeYourFuture/syllabus/subscribers","subscription_url":"https://api.github.com/repos/CodeYourFuture/syllabus/subscription","commits_url":"https://api.github.com/repos/CodeYourFuture/syllabus/commits{/sha}","git_commits_url":"https://api.github.com/repos/CodeYourFuture/syllabus/git/commits{/sha}","comments_url":"https://api.github.com/repos/CodeYourFuture/syllabus/comments{/number}","issue_comment_url":"https://api.github.com/repos/CodeYourFuture/syllabus/issues/comments{/number}","contents_url":"https://api.github.com/repos/CodeYourFuture/syllabus/contents/{+path}","compare_url":"https://api.github.com/repos/CodeYourFuture/syllabus/compare/{base}...{head}","merges_url":"https://api.github.com/repos/CodeYourFuture/syllabus/merges","archive_url":"https://api.github.com/repos/CodeYourFuture/syllabus/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/CodeYourFuture/syllabus/downloads","issues_url":"https://api.github.com/repos/CodeYourFuture/syllabus/issues{/number}","pulls_url":"https://api.github.com/repos/CodeYourFuture/syllabus/pulls{/number}","milestones_url":"https://api.github.com/repos/CodeYourFuture/syllabus/milestones{/number}","notifications_url":"https://api.github.com/repos/CodeYourFuture/syllabus/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/CodeYourFuture/syllabus/labels{/name}","releases_url":"https://api.github.com/repos/CodeYourFuture/syllabus/releases{/id}","deployments_url":"https://api.github.com/repos/CodeYourFuture/syllabus/deployments","created_at":"2017-03-16T21:22:11Z","updated_at":"2017-07-13T21:25:06Z","pushed_at":"2017-09-25T22:39:01Z","git_url":"git://github.com/CodeYourFuture/syllabus.git","ssh_url":"git@github.com:CodeYourFuture/syllabus.git","clone_url":"https://github.com/CodeYourFuture/syllabus.git","svn_url":"https://github.com/CodeYourFuture/syllabus","homepage":"https://codeyourfuture.github.io/syllabus-master","size":12255,"stargazers_count":14,"watchers_count":14,"language":"Shell","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":35,"mirror_url":null,"open_issues_count":23,"forks":35,"open_issues":23,"watchers":14,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/CodeYourFuture/syllabus/pulls/132"},"html":{"href":"https://github.com/CodeYourFuture/syllabus/pull/132"},"issue":{"href":"https://api.github.com/repos/CodeYourFuture/syllabus/issues/132"},"comments":{"href":"https://api.github.com/repos/CodeYourFuture/syllabus/issues/132/comments"},"review_comments":{"href":"https://api.github.com/repos/CodeYourFuture/syllabus/pulls/132/comments"},"review_comment":{"href":"https://api.github.com/repos/CodeYourFuture/syllabus/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/CodeYourFuture/syllabus/pulls/132/commits"},"statuses":{"href":"https://api.github.com/repos/CodeYourFuture/syllabus/statuses/442c37c5447cbb2c49995674d52c3a2c7b070f0b"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"scott-ad-riley"}}