{"action":"created","comment":{"url":"https://api.github.com/repos/KissKissBankBank/kitten/pulls/comments/121911696","pull_request_review_id":43976082,"id":121911696,"diff_hunk":"@@ -0,0 +1,309 @@\n+import React from 'react'\n+import Cropper from 'react-cropper'\n+import { Marger } from 'kitten/components/layout/marger'\n+import { Separator } from 'kitten/components/layout/separator'\n+import { Container } from 'kitten/components/grid/container'\n+import { Grid, GridCol } from 'kitten/components/grid/grid'\n+import { Label } from 'kitten/components/form/label'\n+import { Paragraph } from 'kitten/components/typography/paragraph'\n+import { SimpleUploader } from 'kitten/components/uploaders/simple-uploader'\n+import Slider from 'kitten/components/form/slider'\n+import domElementHelper from 'kitten/helpers/dom/element-helper'\n+\n+export class ImageCropper extends React.Component {\n+  constructor(props) {\n+    super(props)\n+\n+    this.state = {\n+      ...this.initialState(),\n+      hasErrorOnUploader: false,\n+      cropperWidth: null,\n+      cropperHeight: null,\n+      imageSrc: this.props.imageSrc,\n+    }\n+\n+    this.handleUploaderSuccess = this.handleUploaderSuccess.bind(this)\n+    this.handleUploaderError = this.handleUploaderError.bind(this)\n+    this.handleUploaderReset = this.handleUploaderReset.bind(this)\n+\n+    this.handleSliderChange = this.handleSliderChange.bind(this)\n+    this.handleSliderAction = this.handleSliderAction.bind(this)\n+\n+    this.handleReady = this.handleReady.bind(this)\n+    this.handleCrop = this.handleCrop.bind(this)\n+\n+    this.renderError = this.renderError.bind(this)\n+    this.setCropperHeight = this.setCropperHeight.bind(this)\n+  }\n+\n+  initialState() {\n+    return {\n+      imageSrc: null,\n+      imageCropSrc: null,\n+      fileName: null,\n+      touched: false,\n+      sliderValue: 0,\n+      sliderMin: this.props.sliderMin,\n+      sliderMax: this.props.sliderMax,\n+    }\n+  }\n+\n+  componentDidMount() {\n+    this.setCropperHeight()\n+\n+    window.addEventListener('resize', this.setCropperHeight)\n+  }\n+\n+  handleUploaderSuccess(data) {\n+    this.setState({\n+      imageSrc: data.file,\n+      imageCropSrc: null,\n+      fileName: data.name,\n+      sliderValue: 0,\n+    }, () => {\n+      this.setCropperHeight()\n+    })\n+  }\n+\n+  handleUploaderError(hasError) {\n+    this.setState({\n+      hasErrorOnUploader: hasError,\n+    })\n+\n+    if (hasError) {\n+      this.setState(this.initialState())\n+    }\n+  }\n+\n+  handleUploaderReset() {\n+    this.setState(this.initialState())\n+  }\n+\n+  handleSliderChange(value) {\n+    this.setState({\n+      sliderValue: value,\n+    })\n+\n+    this.refs.cropper.zoomTo(value / 100)\n+  }\n+\n+  handleSliderAction() {\n+    this.setState({ touched: true })\n+  }\n+\n+  // Calculate the right range for the zoom slider.\n+  handleReady() {\n+    const imageData = this.refs.cropper.getImageData()\n+    const naturalWidth = imageData.naturalWidth\n+    const width = imageData.width\n+    const ratio = width / naturalWidth * 100\n+    const min = this.props.sliderMin + ratio\n+    const max = this.props.sliderMax + ratio\n+\n+    this.setState({\n+      sliderMin: min,\n+      sliderMax: max,\n+      sliderValue: min,\n+    })\n+  }\n+\n+  handleCrop() {\n+    if (this.state.imageSrc) {\n+      const croppedCanvas = this.refs.cropper.getCroppedCanvas()\n+\n+      if (croppedCanvas) {\n+        const imageCropSrc = croppedCanvas.toDataURL()\n+\n+        this.setState({\n+          imageCropSrc: imageCropSrc,\n+        })\n+\n+        this.props.onChange({\n+          value: imageCropSrc,\n+          name: this.state.fileName,\n+        })\n+      }\n+    }\n+  }\n+\n+  setCropperHeight() {\n+    if (this.refs.cropperContainer) {\n+      const width = domElementHelper.getComputedWidth(this.refs.cropperContainer)\n+      const height = width / (this.props.aspectRatio)\n+\n+      this.setState({\n+        cropperWidth: width,\n+        cropperHeight: height,\n+      })\n+    }\n+  }\n+\n+  renderCropper() {\n+    const cropperProps = {\n+      ref: 'cropper',\n+      className: 'k-Cropper',\n+      src: this.state.imageSrc,\n+      style: {\n+        width: this.state.cropperWidth,\n+        height: this.state.cropperHeight,\n+      },\n+      aspectRatio: this.props.aspectRatio,\n+      viewMode: 3,\n+      guides: false,\n+      modal: false,\n+      autoCropArea: 1,\n+      cropBoxMovable: false,\n+      cropBoxResizable: false,\n+      toggleDragModeOnDblclick: false,\n+      zoomOnTouch: false,\n+      zoomOnWheel: false,\n+      dragMode: 'move',\n+      crop: this.handleCrop,\n+      ready: this.handleReady,\n+    }\n+\n+    return (\n+      <Marger key=\"cropper\" top=\"2\" bottom=\"2\">\n+        <div ref=\"cropperContainer\">\n+          <Cropper\n+            // This helps unmount and remount a new cropper to keep\n+            // the component responsive.\n+            key={ `cropper-${ this.state.cropperHeight }` }\n+            { ...cropperProps } />\n+        </div>\n+      </Marger>\n+    )\n+  }\n+\n+  renderCropperInfo() {\n+    return (\n+      <Marger top=\"2\" bottom=\"2\">\n+        <Paragraph modifier=\"quaternary\" margin={ false }>\n+          { this.props.cropperInfo }\n+        </Paragraph>\n+      </Marger>\n+    )\n+  }\n+\n+  renderSlider() {\n+    const sliderProps = {\n+      name: 'zoom',\n+      min: this.state.sliderMin,\n+      max: this.state.sliderMax,\n+      value: this.state.sliderValue,\n+      onChange: this.handleSliderChange,\n+      onAction: this.handleSliderAction,\n+    }\n+\n+    return (\n+      <Marger top=\"1\" bottom=\"2\">\n+        <Slider { ...sliderProps } />\n+      </Marger>\n+    )\n+  }\n+\n+  renderSliderTitle() {\n+    return (\n+      <Marger top=\"2\" bottom=\"1\">\n+        <Label size=\"tiny\">\n+          { this.props.sliderTitle }\n+        </Label>\n+      </Marger>\n+    )\n+  }\n+\n+  renderCroppingImage() {\n+    if (!this.state.imageSrc) return\n+\n+    return (\n+      <Grid>\n+        <GridCol col=\"12\" col-m=\"6\">\n+          { this.renderCropper() }\n+        </GridCol>\n+\n+        <GridCol col=\"12\" col-m=\"6\">\n+          { this.renderCropperInfo() }\n+          { this.renderSliderTitle() }\n+          { this.renderSlider() }\n+        </GridCol>\n+      </Grid>\n+    )\n+  }\n+\n+  renderError(error) {\n+    if (!this.state.hasErrorOnUploader) return\n+\n+    return (\n+      <Marger top=\"1\" bottom=\"1\" key={ `uploader-error` }>","path":"assets/javascripts/kitten/components/images/image-cropper.js","position":237,"original_position":237,"commit_id":"28dc622983419f60b53e444d57f9d8265faf6db2","original_commit_id":"28dc622983419f60b53e444d57f9d8265faf6db2","user":{"login":"sunny","id":132,"avatar_url":"https://avatars1.githubusercontent.com/u/132?v=3","gravatar_id":"","url":"https://api.github.com/users/sunny","html_url":"https://github.com/sunny","followers_url":"https://api.github.com/users/sunny/followers","following_url":"https://api.github.com/users/sunny/following{/other_user}","gists_url":"https://api.github.com/users/sunny/gists{/gist_id}","starred_url":"https://api.github.com/users/sunny/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sunny/subscriptions","organizations_url":"https://api.github.com/users/sunny/orgs","repos_url":"https://api.github.com/users/sunny/repos","events_url":"https://api.github.com/users/sunny/events{/privacy}","received_events_url":"https://api.github.com/users/sunny/received_events","type":"User","site_admin":false},"body":"On peut l'écrire `key=\"uploader-error\"` tout simplement.","created_at":"2017-06-14T10:33:32Z","updated_at":"2017-06-14T10:55:59Z","html_url":"https://github.com/KissKissBankBank/kitten/pull/642#discussion_r121911696","pull_request_url":"https://api.github.com/repos/KissKissBankBank/kitten/pulls/642","_links":{"self":{"href":"https://api.github.com/repos/KissKissBankBank/kitten/pulls/comments/121911696"},"html":{"href":"https://github.com/KissKissBankBank/kitten/pull/642#discussion_r121911696"},"pull_request":{"href":"https://api.github.com/repos/KissKissBankBank/kitten/pulls/642"}}},"pull_request":{"url":"https://api.github.com/repos/KissKissBankBank/kitten/pulls/642","id":119691473,"html_url":"https://github.com/KissKissBankBank/kitten/pull/642","diff_url":"https://github.com/KissKissBankBank/kitten/pull/642.diff","patch_url":"https://github.com/KissKissBankBank/kitten/pull/642.patch","issue_url":"https://api.github.com/repos/KissKissBankBank/kitten/issues/642","number":642,"state":"open","locked":false,"title":"Add `SimpleUploader`, `Uploader` and `ImageCropper` components","user":{"login":"LanF3usT","id":736319,"avatar_url":"https://avatars2.githubusercontent.com/u/736319?v=3","gravatar_id":"","url":"https://api.github.com/users/LanF3usT","html_url":"https://github.com/LanF3usT","followers_url":"https://api.github.com/users/LanF3usT/followers","following_url":"https://api.github.com/users/LanF3usT/following{/other_user}","gists_url":"https://api.github.com/users/LanF3usT/gists{/gist_id}","starred_url":"https://api.github.com/users/LanF3usT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LanF3usT/subscriptions","organizations_url":"https://api.github.com/users/LanF3usT/orgs","repos_url":"https://api.github.com/users/LanF3usT/repos","events_url":"https://api.github.com/users/LanF3usT/events{/privacy}","received_events_url":"https://api.github.com/users/LanF3usT/received_events","type":"User","site_admin":false},"body":"Screenshot:\r\n\r\n<img width=\"499\" alt=\"capture d ecran 2017-05-11 a 12 18 16\" src=\"https://cloud.githubusercontent.com/assets/736319/25944541/f72a77cc-3643-11e7-96b4-e1955f33127c.png\">\r\n\r\nTODO:\r\n\r\n- [ ] Tests\r\n- [ ] Ajouter un exemple dans le styleguide\r\n- [x] Changelog / Karl_Changelog\r\n- [x] Responsive\r\n","created_at":"2017-05-09T15:47:47Z","updated_at":"2017-06-14T10:55:59Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a3698192b26a5222b8d820e421a6f46a562f914c","assignee":{"login":"LanF3usT","id":736319,"avatar_url":"https://avatars2.githubusercontent.com/u/736319?v=3","gravatar_id":"","url":"https://api.github.com/users/LanF3usT","html_url":"https://github.com/LanF3usT","followers_url":"https://api.github.com/users/LanF3usT/followers","following_url":"https://api.github.com/users/LanF3usT/following{/other_user}","gists_url":"https://api.github.com/users/LanF3usT/gists{/gist_id}","starred_url":"https://api.github.com/users/LanF3usT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LanF3usT/subscriptions","organizations_url":"https://api.github.com/users/LanF3usT/orgs","repos_url":"https://api.github.com/users/LanF3usT/repos","events_url":"https://api.github.com/users/LanF3usT/events{/privacy}","received_events_url":"https://api.github.com/users/LanF3usT/received_events","type":"User","site_admin":false},"assignees":[{"login":"LanF3usT","id":736319,"avatar_url":"https://avatars2.githubusercontent.com/u/736319?v=3","gravatar_id":"","url":"https://api.github.com/users/LanF3usT","html_url":"https://github.com/LanF3usT","followers_url":"https://api.github.com/users/LanF3usT/followers","following_url":"https://api.github.com/users/LanF3usT/following{/other_user}","gists_url":"https://api.github.com/users/LanF3usT/gists{/gist_id}","starred_url":"https://api.github.com/users/LanF3usT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LanF3usT/subscriptions","organizations_url":"https://api.github.com/users/LanF3usT/orgs","repos_url":"https://api.github.com/users/LanF3usT/repos","events_url":"https://api.github.com/users/LanF3usT/events{/privacy}","received_events_url":"https://api.github.com/users/LanF3usT/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/KissKissBankBank/kitten/pulls/642/commits","review_comments_url":"https://api.github.com/repos/KissKissBankBank/kitten/pulls/642/comments","review_comment_url":"https://api.github.com/repos/KissKissBankBank/kitten/pulls/comments{/number}","comments_url":"https://api.github.com/repos/KissKissBankBank/kitten/issues/642/comments","statuses_url":"https://api.github.com/repos/KissKissBankBank/kitten/statuses/28dc622983419f60b53e444d57f9d8265faf6db2","head":{"label":"KissKissBankBank:feature/cropper","ref":"feature/cropper","sha":"28dc622983419f60b53e444d57f9d8265faf6db2","user":{"login":"KissKissBankBank","id":6039709,"avatar_url":"https://avatars2.githubusercontent.com/u/6039709?v=3","gravatar_id":"","url":"https://api.github.com/users/KissKissBankBank","html_url":"https://github.com/KissKissBankBank","followers_url":"https://api.github.com/users/KissKissBankBank/followers","following_url":"https://api.github.com/users/KissKissBankBank/following{/other_user}","gists_url":"https://api.github.com/users/KissKissBankBank/gists{/gist_id}","starred_url":"https://api.github.com/users/KissKissBankBank/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KissKissBankBank/subscriptions","organizations_url":"https://api.github.com/users/KissKissBankBank/orgs","repos_url":"https://api.github.com/users/KissKissBankBank/repos","events_url":"https://api.github.com/users/KissKissBankBank/events{/privacy}","received_events_url":"https://api.github.com/users/KissKissBankBank/received_events","type":"Organization","site_admin":false},"repo":{"id":61292012,"name":"kitten","full_name":"KissKissBankBank/kitten","owner":{"login":"KissKissBankBank","id":6039709,"avatar_url":"https://avatars2.githubusercontent.com/u/6039709?v=3","gravatar_id":"","url":"https://api.github.com/users/KissKissBankBank","html_url":"https://github.com/KissKissBankBank","followers_url":"https://api.github.com/users/KissKissBankBank/followers","following_url":"https://api.github.com/users/KissKissBankBank/following{/other_user}","gists_url":"https://api.github.com/users/KissKissBankBank/gists{/gist_id}","starred_url":"https://api.github.com/users/KissKissBankBank/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KissKissBankBank/subscriptions","organizations_url":"https://api.github.com/users/KissKissBankBank/orgs","repos_url":"https://api.github.com/users/KissKissBankBank/repos","events_url":"https://api.github.com/users/KissKissBankBank/events{/privacy}","received_events_url":"https://api.github.com/users/KissKissBankBank/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/KissKissBankBank/kitten","description":"KissKissBankBank's front-end components library","fork":false,"url":"https://api.github.com/repos/KissKissBankBank/kitten","forks_url":"https://api.github.com/repos/KissKissBankBank/kitten/forks","keys_url":"https://api.github.com/repos/KissKissBankBank/kitten/keys{/key_id}","collaborators_url":"https://api.github.com/repos/KissKissBankBank/kitten/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/KissKissBankBank/kitten/teams","hooks_url":"https://api.github.com/repos/KissKissBankBank/kitten/hooks","issue_events_url":"https://api.github.com/repos/KissKissBankBank/kitten/issues/events{/number}","events_url":"https://api.github.com/repos/KissKissBankBank/kitten/events","assignees_url":"https://api.github.com/repos/KissKissBankBank/kitten/assignees{/user}","branches_url":"https://api.github.com/repos/KissKissBankBank/kitten/branches{/branch}","tags_url":"https://api.github.com/repos/KissKissBankBank/kitten/tags","blobs_url":"https://api.github.com/repos/KissKissBankBank/kitten/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/KissKissBankBank/kitten/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/KissKissBankBank/kitten/git/refs{/sha}","trees_url":"https://api.github.com/repos/KissKissBankBank/kitten/git/trees{/sha}","statuses_url":"https://api.github.com/repos/KissKissBankBank/kitten/statuses/{sha}","languages_url":"https://api.github.com/repos/KissKissBankBank/kitten/languages","stargazers_url":"https://api.github.com/repos/KissKissBankBank/kitten/stargazers","contributors_url":"https://api.github.com/repos/KissKissBankBank/kitten/contributors","subscribers_url":"https://api.github.com/repos/KissKissBankBank/kitten/subscribers","subscription_url":"https://api.github.com/repos/KissKissBankBank/kitten/subscription","commits_url":"https://api.github.com/repos/KissKissBankBank/kitten/commits{/sha}","git_commits_url":"https://api.github.com/repos/KissKissBankBank/kitten/git/commits{/sha}","comments_url":"https://api.github.com/repos/KissKissBankBank/kitten/comments{/number}","issue_comment_url":"https://api.github.com/repos/KissKissBankBank/kitten/issues/comments{/number}","contents_url":"https://api.github.com/repos/KissKissBankBank/kitten/contents/{+path}","compare_url":"https://api.github.com/repos/KissKissBankBank/kitten/compare/{base}...{head}","merges_url":"https://api.github.com/repos/KissKissBankBank/kitten/merges","archive_url":"https://api.github.com/repos/KissKissBankBank/kitten/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/KissKissBankBank/kitten/downloads","issues_url":"https://api.github.com/repos/KissKissBankBank/kitten/issues{/number}","pulls_url":"https://api.github.com/repos/KissKissBankBank/kitten/pulls{/number}","milestones_url":"https://api.github.com/repos/KissKissBankBank/kitten/milestones{/number}","notifications_url":"https://api.github.com/repos/KissKissBankBank/kitten/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/KissKissBankBank/kitten/labels{/name}","releases_url":"https://api.github.com/repos/KissKissBankBank/kitten/releases{/id}","deployments_url":"https://api.github.com/repos/KissKissBankBank/kitten/deployments","created_at":"2016-06-16T12:46:14Z","updated_at":"2017-06-06T19:29:34Z","pushed_at":"2017-06-14T09:45:12Z","git_url":"git://github.com/KissKissBankBank/kitten.git","ssh_url":"git@github.com:KissKissBankBank/kitten.git","clone_url":"https://github.com/KissKissBankBank/kitten.git","svn_url":"https://github.com/KissKissBankBank/kitten","homepage":"","size":2213,"stargazers_count":5,"watchers_count":5,"language":"HTML","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":51,"forks":0,"open_issues":51,"watchers":5,"default_branch":"master"}},"base":{"label":"KissKissBankBank:master","ref":"master","sha":"9856b94bdf40434e1e11734c721d20cbf5fd87f7","user":{"login":"KissKissBankBank","id":6039709,"avatar_url":"https://avatars2.githubusercontent.com/u/6039709?v=3","gravatar_id":"","url":"https://api.github.com/users/KissKissBankBank","html_url":"https://github.com/KissKissBankBank","followers_url":"https://api.github.com/users/KissKissBankBank/followers","following_url":"https://api.github.com/users/KissKissBankBank/following{/other_user}","gists_url":"https://api.github.com/users/KissKissBankBank/gists{/gist_id}","starred_url":"https://api.github.com/users/KissKissBankBank/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KissKissBankBank/subscriptions","organizations_url":"https://api.github.com/users/KissKissBankBank/orgs","repos_url":"https://api.github.com/users/KissKissBankBank/repos","events_url":"https://api.github.com/users/KissKissBankBank/events{/privacy}","received_events_url":"https://api.github.com/users/KissKissBankBank/received_events","type":"Organization","site_admin":false},"repo":{"id":61292012,"name":"kitten","full_name":"KissKissBankBank/kitten","owner":{"login":"KissKissBankBank","id":6039709,"avatar_url":"https://avatars2.githubusercontent.com/u/6039709?v=3","gravatar_id":"","url":"https://api.github.com/users/KissKissBankBank","html_url":"https://github.com/KissKissBankBank","followers_url":"https://api.github.com/users/KissKissBankBank/followers","following_url":"https://api.github.com/users/KissKissBankBank/following{/other_user}","gists_url":"https://api.github.com/users/KissKissBankBank/gists{/gist_id}","starred_url":"https://api.github.com/users/KissKissBankBank/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KissKissBankBank/subscriptions","organizations_url":"https://api.github.com/users/KissKissBankBank/orgs","repos_url":"https://api.github.com/users/KissKissBankBank/repos","events_url":"https://api.github.com/users/KissKissBankBank/events{/privacy}","received_events_url":"https://api.github.com/users/KissKissBankBank/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/KissKissBankBank/kitten","description":"KissKissBankBank's front-end components library","fork":false,"url":"https://api.github.com/repos/KissKissBankBank/kitten","forks_url":"https://api.github.com/repos/KissKissBankBank/kitten/forks","keys_url":"https://api.github.com/repos/KissKissBankBank/kitten/keys{/key_id}","collaborators_url":"https://api.github.com/repos/KissKissBankBank/kitten/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/KissKissBankBank/kitten/teams","hooks_url":"https://api.github.com/repos/KissKissBankBank/kitten/hooks","issue_events_url":"https://api.github.com/repos/KissKissBankBank/kitten/issues/events{/number}","events_url":"https://api.github.com/repos/KissKissBankBank/kitten/events","assignees_url":"https://api.github.com/repos/KissKissBankBank/kitten/assignees{/user}","branches_url":"https://api.github.com/repos/KissKissBankBank/kitten/branches{/branch}","tags_url":"https://api.github.com/repos/KissKissBankBank/kitten/tags","blobs_url":"https://api.github.com/repos/KissKissBankBank/kitten/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/KissKissBankBank/kitten/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/KissKissBankBank/kitten/git/refs{/sha}","trees_url":"https://api.github.com/repos/KissKissBankBank/kitten/git/trees{/sha}","statuses_url":"https://api.github.com/repos/KissKissBankBank/kitten/statuses/{sha}","languages_url":"https://api.github.com/repos/KissKissBankBank/kitten/languages","stargazers_url":"https://api.github.com/repos/KissKissBankBank/kitten/stargazers","contributors_url":"https://api.github.com/repos/KissKissBankBank/kitten/contributors","subscribers_url":"https://api.github.com/repos/KissKissBankBank/kitten/subscribers","subscription_url":"https://api.github.com/repos/KissKissBankBank/kitten/subscription","commits_url":"https://api.github.com/repos/KissKissBankBank/kitten/commits{/sha}","git_commits_url":"https://api.github.com/repos/KissKissBankBank/kitten/git/commits{/sha}","comments_url":"https://api.github.com/repos/KissKissBankBank/kitten/comments{/number}","issue_comment_url":"https://api.github.com/repos/KissKissBankBank/kitten/issues/comments{/number}","contents_url":"https://api.github.com/repos/KissKissBankBank/kitten/contents/{+path}","compare_url":"https://api.github.com/repos/KissKissBankBank/kitten/compare/{base}...{head}","merges_url":"https://api.github.com/repos/KissKissBankBank/kitten/merges","archive_url":"https://api.github.com/repos/KissKissBankBank/kitten/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/KissKissBankBank/kitten/downloads","issues_url":"https://api.github.com/repos/KissKissBankBank/kitten/issues{/number}","pulls_url":"https://api.github.com/repos/KissKissBankBank/kitten/pulls{/number}","milestones_url":"https://api.github.com/repos/KissKissBankBank/kitten/milestones{/number}","notifications_url":"https://api.github.com/repos/KissKissBankBank/kitten/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/KissKissBankBank/kitten/labels{/name}","releases_url":"https://api.github.com/repos/KissKissBankBank/kitten/releases{/id}","deployments_url":"https://api.github.com/repos/KissKissBankBank/kitten/deployments","created_at":"2016-06-16T12:46:14Z","updated_at":"2017-06-06T19:29:34Z","pushed_at":"2017-06-14T09:45:12Z","git_url":"git://github.com/KissKissBankBank/kitten.git","ssh_url":"git@github.com:KissKissBankBank/kitten.git","clone_url":"https://github.com/KissKissBankBank/kitten.git","svn_url":"https://github.com/KissKissBankBank/kitten","homepage":"","size":2213,"stargazers_count":5,"watchers_count":5,"language":"HTML","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":51,"forks":0,"open_issues":51,"watchers":5,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/KissKissBankBank/kitten/pulls/642"},"html":{"href":"https://github.com/KissKissBankBank/kitten/pull/642"},"issue":{"href":"https://api.github.com/repos/KissKissBankBank/kitten/issues/642"},"comments":{"href":"https://api.github.com/repos/KissKissBankBank/kitten/issues/642/comments"},"review_comments":{"href":"https://api.github.com/repos/KissKissBankBank/kitten/pulls/642/comments"},"review_comment":{"href":"https://api.github.com/repos/KissKissBankBank/kitten/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/KissKissBankBank/kitten/pulls/642/commits"},"statuses":{"href":"https://api.github.com/repos/KissKissBankBank/kitten/statuses/28dc622983419f60b53e444d57f9d8265faf6db2"}}}}
{"actor":{"display_login":"sunny"}}