{"action":"created","comment":{"url":"https://api.github.com/repos/linode/manager/pulls/comments/210903509","pull_request_review_id":147218227,"id":210903509,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxMDkwMzUwOQ==","diff_hunk":"@@ -29,41 +42,135 @@ const styles: StyleRulesCallback<ClassNames> = (theme: Theme & Linode.Theme) =>\n   negative: {\n     color: theme.color.red,\n   },\n+  actionPanel: {\n+    display: 'flex',\n+    alignItems: 'center',\n+    flexWrap: 'wrap',\n+    position: 'relative',\n+  },\n+  paypalMask: {\n+    width: 175,\n+    height: 45,\n+    position: 'absolute',\n+    zIndex: 2,\n+    left: theme.spacing.unit * 2,\n+    top: theme.spacing.unit * 2,\n+  },\n+  paypalButtonWrapper: {\n+    position: 'relative',\n+    zIndex: 1,\n+    transition: theme.transitions.create(['opacity']),\n+  },\n+  PaypalHidden: {\n+    opacity: .3,\n+  },\n });\n \n-interface Props { }\n+interface Props {\n+ }\n \n interface State {\n   type: 'CREDIT_CARD' | 'PAYPAL',\n   submitting: boolean;\n   success?: boolean;\n+  successMessage?: string;\n   errors?: Linode.ApiFieldError[];\n   usd: string;\n   ccv: string;\n+  paymentID: string;\n+  payerID: string;\n+  isExecutingPaypalPayment: boolean;\n+  paypalSubmitEnabled: boolean;\n+  dialogOpen: boolean;\n+  paypalLoaded: boolean;\n }\n \n+interface PaypalScript {\n+  isScriptLoadSucceed?: boolean;\n+  isScriptLoaded?: boolean;\n+  onScriptLoaded?: () => void;\n+} \n+\n interface AccountContextProps {\n   accountLoading: boolean;\n-  balance: false | number,\n+  balance: false | number;\n+  request: () => Promise<void>;\n }\n \n type CombinedProps = Props\n   & AccountContextProps\n+  & PaypalScript\n   & WithStyles<ClassNames>;\n \n+type PaypalButton = React.ComponentType<Paypal.PayButtonProps>;\n+\n+/* tslint:disable-next-line */\n+let PaypalButton: PaypalButton; // needs to be a JSX.Element with some props\n+\n+/*\n+* Client IDs for Linode Paypal Apps\n+*/\n+const client = {\n+  sandbox: 'YbjxBCou-0Aum1f2K1xqSgrJqhNCHOEbdmvi1pPQhk-bj_dLrJ41Cssm_ektzlNxZJc9A-dx6UkYu2n',\n+  production: 'AWdnFJ_Yx5X9uqKZQdbdkLfCnEJwtauQJ2tyesKf3S0IxSrkRLmB2ZN2ACSwy37gxY_AZoTagHWlZCOA'\n+}\n+\n+const env = (process.env.NODE_ENV === 'development')\n+  ? 'sandbox'\n+  : 'production';\n+\n class MakeAPaymentPanel extends React.Component<CombinedProps, State> {\n   state: State = {\n     type: 'CREDIT_CARD',\n     submitting: false,\n     usd: '',\n     ccv: '',\n+    dialogOpen: false,\n+    paymentID: '',\n+    payerID: '',\n+    isExecutingPaypalPayment: false,\n+    paypalLoaded: false,\n+    paypalSubmitEnabled: false, // disabled until a user enters in an amount over $5 USD\n   };\n \n-  handleTypeChange = () => null;\n+  componentDidUpdate(prevProps: CombinedProps) {\n+    if (!prevProps.isScriptLoadSucceed && this.props.isScriptLoadSucceed) {\n+      /*\n+      * Becuase the paypal script is now loaded, so now we have access to this React component\n+      * in the window element. This will be used in the render method.\n+      * See documentation: https://github.com/paypal/paypal-checkout/blob/master/docs/frameworks.md\n+      */\n+      PaypalButton = (window as any).paypal.Button.driver('react', { React, ReactDOM });\n+      this.setState({ paypalLoaded: true })\n+    }\n+  }\n \n-  handleUSDChange = (e: React.ChangeEvent<HTMLInputElement>) => this.setState({ usd: e.target.value || '' });\n+  handleTypeChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n+    this.setState({ type: e.target.value as 'CREDIT_CARD' | 'PAYPAL' });","path":"src/features/Account/AccountPanels/MakeAPaymentPanel/MakeAPaymentPanel.tsx","position":156,"original_position":156,"commit_id":"ccaa3cc8782a8d53b2d7c85476893701be09cb42","original_commit_id":"ccaa3cc8782a8d53b2d7c85476893701be09cb42","user":{"login":"Jskobos","id":1624067,"node_id":"MDQ6VXNlcjE2MjQwNjc=","avatar_url":"https://avatars1.githubusercontent.com/u/1624067?v=4","gravatar_id":"","url":"https://api.github.com/users/Jskobos","html_url":"https://github.com/Jskobos","followers_url":"https://api.github.com/users/Jskobos/followers","following_url":"https://api.github.com/users/Jskobos/following{/other_user}","gists_url":"https://api.github.com/users/Jskobos/gists{/gist_id}","starred_url":"https://api.github.com/users/Jskobos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jskobos/subscriptions","organizations_url":"https://api.github.com/users/Jskobos/orgs","repos_url":"https://api.github.com/users/Jskobos/repos","events_url":"https://api.github.com/users/Jskobos/events{/privacy}","received_events_url":"https://api.github.com/users/Jskobos/received_events","type":"User","site_admin":false},"body":"Should probably reset `success` and `successMessage` here too","created_at":"2018-08-17T13:09:39Z","updated_at":"2018-08-17T13:33:21Z","html_url":"https://github.com/linode/manager/pull/3706#discussion_r210903509","pull_request_url":"https://api.github.com/repos/linode/manager/pulls/3706","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/linode/manager/pulls/comments/210903509"},"html":{"href":"https://github.com/linode/manager/pull/3706#discussion_r210903509"},"pull_request":{"href":"https://api.github.com/repos/linode/manager/pulls/3706"}}},"pull_request":{"url":"https://api.github.com/repos/linode/manager/pulls/3706","id":208373231,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA4MzczMjMx","html_url":"https://github.com/linode/manager/pull/3706","diff_url":"https://github.com/linode/manager/pull/3706.diff","patch_url":"https://github.com/linode/manager/pull/3706.patch","issue_url":"https://api.github.com/repos/linode/manager/issues/3706","number":3706,"state":"open","locked":false,"title":"M3-720 Pay with Paypal","user":{"login":"martinmckenna","id":7387001,"node_id":"MDQ6VXNlcjczODcwMDE=","avatar_url":"https://avatars2.githubusercontent.com/u/7387001?v=4","gravatar_id":"","url":"https://api.github.com/users/martinmckenna","html_url":"https://github.com/martinmckenna","followers_url":"https://api.github.com/users/martinmckenna/followers","following_url":"https://api.github.com/users/martinmckenna/following{/other_user}","gists_url":"https://api.github.com/users/martinmckenna/gists{/gist_id}","starred_url":"https://api.github.com/users/martinmckenna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinmckenna/subscriptions","organizations_url":"https://api.github.com/users/martinmckenna/orgs","repos_url":"https://api.github.com/users/martinmckenna/repos","events_url":"https://api.github.com/users/martinmckenna/events{/privacy}","received_events_url":"https://api.github.com/users/martinmckenna/received_events","type":"User","site_admin":false},"body":"### Purpose\r\n\r\nPay with Paypal!\r\n\r\n### To Test\r\n\r\nIf you want to place a test transaction, please reach out to get our sandbox credentials or create your own Paypal sandbox account\r\n\r\n### Notes\r\n* Utilizes react-async-script-loader, so we're only loading the Paypal checkout script when the component mounts\r\n* There is no way to validate the form before the user gets sent to paypal.com, so the current plan is to just disable the submit button until the user enters a correct USD value (which is anything above $5 USD)\r\n* If the Paypal script cannot load, the Paypal radio will not render and the user will not be able to choose the option to pay with Paypal.\r\n\r\n### Other Comments\r\n\r\nA lot of this is seemingly magic and may be hard to wrap your head around the functionality. I recommend reading the docs listed below if something isn't making sense. PayPal's documentation is not super reliable, so even then it may be confusing\r\n\r\n### References\r\n[react-async-script-loader](https://www.npmjs.com/package/react-async-script-loader)\r\n[Github Issue: Early return on payment callback](https://github.com/paypal/paypal-checkout/issues/794)\r\n[Tutorial: How to integrate Paypal Checkout with React](https://www.robinwieruch.de/react-paypal-payment/)\r\n\r\nPaypal docs:\r\n[Paypal Checkout](https://github.com/paypal/paypal-checkout)\r\n[Using Paypal Checkout with React](https://github.com/paypal/paypal-checkout/blob/master/docs/frameworks.md)\r\n[Advanced JavaScript Integration](https://github.com/paypal/paypal-checkout/blob/master/docs/button.md#advanced-integration)\r\n[Customize Checkout Button](https://developer.paypal.com/docs/checkout/how-to/customize-button/#)","created_at":"2018-08-14T18:39:55Z","updated_at":"2018-08-17T13:33:21Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9271581a6ef235dd29bedfd3f2f92c242f1696f0","assignee":{"login":"martinmckenna","id":7387001,"node_id":"MDQ6VXNlcjczODcwMDE=","avatar_url":"https://avatars2.githubusercontent.com/u/7387001?v=4","gravatar_id":"","url":"https://api.github.com/users/martinmckenna","html_url":"https://github.com/martinmckenna","followers_url":"https://api.github.com/users/martinmckenna/followers","following_url":"https://api.github.com/users/martinmckenna/following{/other_user}","gists_url":"https://api.github.com/users/martinmckenna/gists{/gist_id}","starred_url":"https://api.github.com/users/martinmckenna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinmckenna/subscriptions","organizations_url":"https://api.github.com/users/martinmckenna/orgs","repos_url":"https://api.github.com/users/martinmckenna/repos","events_url":"https://api.github.com/users/martinmckenna/events{/privacy}","received_events_url":"https://api.github.com/users/martinmckenna/received_events","type":"User","site_admin":false},"assignees":[{"login":"martinmckenna","id":7387001,"node_id":"MDQ6VXNlcjczODcwMDE=","avatar_url":"https://avatars2.githubusercontent.com/u/7387001?v=4","gravatar_id":"","url":"https://api.github.com/users/martinmckenna","html_url":"https://github.com/martinmckenna","followers_url":"https://api.github.com/users/martinmckenna/followers","following_url":"https://api.github.com/users/martinmckenna/following{/other_user}","gists_url":"https://api.github.com/users/martinmckenna/gists{/gist_id}","starred_url":"https://api.github.com/users/martinmckenna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinmckenna/subscriptions","organizations_url":"https://api.github.com/users/martinmckenna/orgs","repos_url":"https://api.github.com/users/martinmckenna/repos","events_url":"https://api.github.com/users/martinmckenna/events{/privacy}","received_events_url":"https://api.github.com/users/martinmckenna/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"alioso","id":205353,"node_id":"MDQ6VXNlcjIwNTM1Mw==","avatar_url":"https://avatars0.githubusercontent.com/u/205353?v=4","gravatar_id":"","url":"https://api.github.com/users/alioso","html_url":"https://github.com/alioso","followers_url":"https://api.github.com/users/alioso/followers","following_url":"https://api.github.com/users/alioso/following{/other_user}","gists_url":"https://api.github.com/users/alioso/gists{/gist_id}","starred_url":"https://api.github.com/users/alioso/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alioso/subscriptions","organizations_url":"https://api.github.com/users/alioso/orgs","repos_url":"https://api.github.com/users/alioso/repos","events_url":"https://api.github.com/users/alioso/events{/privacy}","received_events_url":"https://api.github.com/users/alioso/received_events","type":"User","site_admin":false},{"login":"asauber","id":2046750,"node_id":"MDQ6VXNlcjIwNDY3NTA=","avatar_url":"https://avatars0.githubusercontent.com/u/2046750?v=4","gravatar_id":"","url":"https://api.github.com/users/asauber","html_url":"https://github.com/asauber","followers_url":"https://api.github.com/users/asauber/followers","following_url":"https://api.github.com/users/asauber/following{/other_user}","gists_url":"https://api.github.com/users/asauber/gists{/gist_id}","starred_url":"https://api.github.com/users/asauber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/asauber/subscriptions","organizations_url":"https://api.github.com/users/asauber/orgs","repos_url":"https://api.github.com/users/asauber/repos","events_url":"https://api.github.com/users/asauber/events{/privacy}","received_events_url":"https://api.github.com/users/asauber/received_events","type":"User","site_admin":false},{"login":"rjstires","id":12218651,"node_id":"MDQ6VXNlcjEyMjE4NjUx","avatar_url":"https://avatars0.githubusercontent.com/u/12218651?v=4","gravatar_id":"","url":"https://api.github.com/users/rjstires","html_url":"https://github.com/rjstires","followers_url":"https://api.github.com/users/rjstires/followers","following_url":"https://api.github.com/users/rjstires/following{/other_user}","gists_url":"https://api.github.com/users/rjstires/gists{/gist_id}","starred_url":"https://api.github.com/users/rjstires/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rjstires/subscriptions","organizations_url":"https://api.github.com/users/rjstires/orgs","repos_url":"https://api.github.com/users/rjstires/repos","events_url":"https://api.github.com/users/rjstires/events{/privacy}","received_events_url":"https://api.github.com/users/rjstires/received_events","type":"User","site_admin":false},{"login":"patthiel","id":12736578,"node_id":"MDQ6VXNlcjEyNzM2NTc4","avatar_url":"https://avatars3.githubusercontent.com/u/12736578?v=4","gravatar_id":"","url":"https://api.github.com/users/patthiel","html_url":"https://github.com/patthiel","followers_url":"https://api.github.com/users/patthiel/followers","following_url":"https://api.github.com/users/patthiel/following{/other_user}","gists_url":"https://api.github.com/users/patthiel/gists{/gist_id}","starred_url":"https://api.github.com/users/patthiel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/patthiel/subscriptions","organizations_url":"https://api.github.com/users/patthiel/orgs","repos_url":"https://api.github.com/users/patthiel/repos","events_url":"https://api.github.com/users/patthiel/events{/privacy}","received_events_url":"https://api.github.com/users/patthiel/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/linode/manager/pulls/3706/commits","review_comments_url":"https://api.github.com/repos/linode/manager/pulls/3706/comments","review_comment_url":"https://api.github.com/repos/linode/manager/pulls/comments{/number}","comments_url":"https://api.github.com/repos/linode/manager/issues/3706/comments","statuses_url":"https://api.github.com/repos/linode/manager/statuses/ccaa3cc8782a8d53b2d7c85476893701be09cb42","head":{"label":"martinmckenna:M3-720-paypal","ref":"M3-720-paypal","sha":"ccaa3cc8782a8d53b2d7c85476893701be09cb42","user":{"login":"martinmckenna","id":7387001,"node_id":"MDQ6VXNlcjczODcwMDE=","avatar_url":"https://avatars2.githubusercontent.com/u/7387001?v=4","gravatar_id":"","url":"https://api.github.com/users/martinmckenna","html_url":"https://github.com/martinmckenna","followers_url":"https://api.github.com/users/martinmckenna/followers","following_url":"https://api.github.com/users/martinmckenna/following{/other_user}","gists_url":"https://api.github.com/users/martinmckenna/gists{/gist_id}","starred_url":"https://api.github.com/users/martinmckenna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinmckenna/subscriptions","organizations_url":"https://api.github.com/users/martinmckenna/orgs","repos_url":"https://api.github.com/users/martinmckenna/repos","events_url":"https://api.github.com/users/martinmckenna/events{/privacy}","received_events_url":"https://api.github.com/users/martinmckenna/received_events","type":"User","site_admin":false},"repo":{"id":131640833,"node_id":"MDEwOlJlcG9zaXRvcnkxMzE2NDA4MzM=","name":"manager","full_name":"martinmckenna/manager","owner":{"login":"martinmckenna","id":7387001,"node_id":"MDQ6VXNlcjczODcwMDE=","avatar_url":"https://avatars2.githubusercontent.com/u/7387001?v=4","gravatar_id":"","url":"https://api.github.com/users/martinmckenna","html_url":"https://github.com/martinmckenna","followers_url":"https://api.github.com/users/martinmckenna/followers","following_url":"https://api.github.com/users/martinmckenna/following{/other_user}","gists_url":"https://api.github.com/users/martinmckenna/gists{/gist_id}","starred_url":"https://api.github.com/users/martinmckenna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinmckenna/subscriptions","organizations_url":"https://api.github.com/users/martinmckenna/orgs","repos_url":"https://api.github.com/users/martinmckenna/repos","events_url":"https://api.github.com/users/martinmckenna/events{/privacy}","received_events_url":"https://api.github.com/users/martinmckenna/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/martinmckenna/manager","description":"The Linode Manager (Early Access)","fork":true,"url":"https://api.github.com/repos/martinmckenna/manager","forks_url":"https://api.github.com/repos/martinmckenna/manager/forks","keys_url":"https://api.github.com/repos/martinmckenna/manager/keys{/key_id}","collaborators_url":"https://api.github.com/repos/martinmckenna/manager/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/martinmckenna/manager/teams","hooks_url":"https://api.github.com/repos/martinmckenna/manager/hooks","issue_events_url":"https://api.github.com/repos/martinmckenna/manager/issues/events{/number}","events_url":"https://api.github.com/repos/martinmckenna/manager/events","assignees_url":"https://api.github.com/repos/martinmckenna/manager/assignees{/user}","branches_url":"https://api.github.com/repos/martinmckenna/manager/branches{/branch}","tags_url":"https://api.github.com/repos/martinmckenna/manager/tags","blobs_url":"https://api.github.com/repos/martinmckenna/manager/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/martinmckenna/manager/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/martinmckenna/manager/git/refs{/sha}","trees_url":"https://api.github.com/repos/martinmckenna/manager/git/trees{/sha}","statuses_url":"https://api.github.com/repos/martinmckenna/manager/statuses/{sha}","languages_url":"https://api.github.com/repos/martinmckenna/manager/languages","stargazers_url":"https://api.github.com/repos/martinmckenna/manager/stargazers","contributors_url":"https://api.github.com/repos/martinmckenna/manager/contributors","subscribers_url":"https://api.github.com/repos/martinmckenna/manager/subscribers","subscription_url":"https://api.github.com/repos/martinmckenna/manager/subscription","commits_url":"https://api.github.com/repos/martinmckenna/manager/commits{/sha}","git_commits_url":"https://api.github.com/repos/martinmckenna/manager/git/commits{/sha}","comments_url":"https://api.github.com/repos/martinmckenna/manager/comments{/number}","issue_comment_url":"https://api.github.com/repos/martinmckenna/manager/issues/comments{/number}","contents_url":"https://api.github.com/repos/martinmckenna/manager/contents/{+path}","compare_url":"https://api.github.com/repos/martinmckenna/manager/compare/{base}...{head}","merges_url":"https://api.github.com/repos/martinmckenna/manager/merges","archive_url":"https://api.github.com/repos/martinmckenna/manager/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/martinmckenna/manager/downloads","issues_url":"https://api.github.com/repos/martinmckenna/manager/issues{/number}","pulls_url":"https://api.github.com/repos/martinmckenna/manager/pulls{/number}","milestones_url":"https://api.github.com/repos/martinmckenna/manager/milestones{/number}","notifications_url":"https://api.github.com/repos/martinmckenna/manager/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/martinmckenna/manager/labels{/name}","releases_url":"https://api.github.com/repos/martinmckenna/manager/releases{/id}","deployments_url":"https://api.github.com/repos/martinmckenna/manager/deployments","created_at":"2018-04-30T20:02:12Z","updated_at":"2018-04-30T20:02:17Z","pushed_at":"2018-08-17T12:56:35Z","git_url":"git://github.com/martinmckenna/manager.git","ssh_url":"git@github.com:martinmckenna/manager.git","clone_url":"https://github.com/martinmckenna/manager.git","svn_url":"https://github.com/martinmckenna/manager","homepage":"https://cloud.linode.com","size":17558,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"linode:develop","ref":"develop","sha":"a5bf4f49e962cfa88860b8ee803121d23c165566","user":{"login":"linode","id":5184305,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUxODQzMDU=","avatar_url":"https://avatars0.githubusercontent.com/u/5184305?v=4","gravatar_id":"","url":"https://api.github.com/users/linode","html_url":"https://github.com/linode","followers_url":"https://api.github.com/users/linode/followers","following_url":"https://api.github.com/users/linode/following{/other_user}","gists_url":"https://api.github.com/users/linode/gists{/gist_id}","starred_url":"https://api.github.com/users/linode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/linode/subscriptions","organizations_url":"https://api.github.com/users/linode/orgs","repos_url":"https://api.github.com/users/linode/repos","events_url":"https://api.github.com/users/linode/events{/privacy}","received_events_url":"https://api.github.com/users/linode/received_events","type":"Organization","site_admin":false},"repo":{"id":58934207,"node_id":"MDEwOlJlcG9zaXRvcnk1ODkzNDIwNw==","name":"manager","full_name":"linode/manager","owner":{"login":"linode","id":5184305,"node_id":"MDEyOk9yZ2FuaXphdGlvbjUxODQzMDU=","avatar_url":"https://avatars0.githubusercontent.com/u/5184305?v=4","gravatar_id":"","url":"https://api.github.com/users/linode","html_url":"https://github.com/linode","followers_url":"https://api.github.com/users/linode/followers","following_url":"https://api.github.com/users/linode/following{/other_user}","gists_url":"https://api.github.com/users/linode/gists{/gist_id}","starred_url":"https://api.github.com/users/linode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/linode/subscriptions","organizations_url":"https://api.github.com/users/linode/orgs","repos_url":"https://api.github.com/users/linode/repos","events_url":"https://api.github.com/users/linode/events{/privacy}","received_events_url":"https://api.github.com/users/linode/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/linode/manager","description":"The Linode Manager (Early Access)","fork":false,"url":"https://api.github.com/repos/linode/manager","forks_url":"https://api.github.com/repos/linode/manager/forks","keys_url":"https://api.github.com/repos/linode/manager/keys{/key_id}","collaborators_url":"https://api.github.com/repos/linode/manager/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/linode/manager/teams","hooks_url":"https://api.github.com/repos/linode/manager/hooks","issue_events_url":"https://api.github.com/repos/linode/manager/issues/events{/number}","events_url":"https://api.github.com/repos/linode/manager/events","assignees_url":"https://api.github.com/repos/linode/manager/assignees{/user}","branches_url":"https://api.github.com/repos/linode/manager/branches{/branch}","tags_url":"https://api.github.com/repos/linode/manager/tags","blobs_url":"https://api.github.com/repos/linode/manager/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/linode/manager/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/linode/manager/git/refs{/sha}","trees_url":"https://api.github.com/repos/linode/manager/git/trees{/sha}","statuses_url":"https://api.github.com/repos/linode/manager/statuses/{sha}","languages_url":"https://api.github.com/repos/linode/manager/languages","stargazers_url":"https://api.github.com/repos/linode/manager/stargazers","contributors_url":"https://api.github.com/repos/linode/manager/contributors","subscribers_url":"https://api.github.com/repos/linode/manager/subscribers","subscription_url":"https://api.github.com/repos/linode/manager/subscription","commits_url":"https://api.github.com/repos/linode/manager/commits{/sha}","git_commits_url":"https://api.github.com/repos/linode/manager/git/commits{/sha}","comments_url":"https://api.github.com/repos/linode/manager/comments{/number}","issue_comment_url":"https://api.github.com/repos/linode/manager/issues/comments{/number}","contents_url":"https://api.github.com/repos/linode/manager/contents/{+path}","compare_url":"https://api.github.com/repos/linode/manager/compare/{base}...{head}","merges_url":"https://api.github.com/repos/linode/manager/merges","archive_url":"https://api.github.com/repos/linode/manager/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/linode/manager/downloads","issues_url":"https://api.github.com/repos/linode/manager/issues{/number}","pulls_url":"https://api.github.com/repos/linode/manager/pulls{/number}","milestones_url":"https://api.github.com/repos/linode/manager/milestones{/number}","notifications_url":"https://api.github.com/repos/linode/manager/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/linode/manager/labels{/name}","releases_url":"https://api.github.com/repos/linode/manager/releases{/id}","deployments_url":"https://api.github.com/repos/linode/manager/deployments","created_at":"2016-05-16T13:24:49Z","updated_at":"2018-08-16T22:24:30Z","pushed_at":"2018-08-17T12:56:37Z","git_url":"git://github.com/linode/manager.git","ssh_url":"git@github.com:linode/manager.git","clone_url":"https://github.com/linode/manager.git","svn_url":"https://github.com/linode/manager","homepage":"https://cloud.linode.com","size":17512,"stargazers_count":346,"watchers_count":346,"language":"TypeScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":74,"mirror_url":null,"archived":false,"open_issues_count":13,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":74,"open_issues":13,"watchers":346,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/linode/manager/pulls/3706"},"html":{"href":"https://github.com/linode/manager/pull/3706"},"issue":{"href":"https://api.github.com/repos/linode/manager/issues/3706"},"comments":{"href":"https://api.github.com/repos/linode/manager/issues/3706/comments"},"review_comments":{"href":"https://api.github.com/repos/linode/manager/pulls/3706/comments"},"review_comment":{"href":"https://api.github.com/repos/linode/manager/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/linode/manager/pulls/3706/commits"},"statuses":{"href":"https://api.github.com/repos/linode/manager/statuses/ccaa3cc8782a8d53b2d7c85476893701be09cb42"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"Jskobos"}}