{"action":"created","comment":{"url":"https://api.github.com/repos/mattermost/mattermost-webapp/pulls/comments/175452075","pull_request_review_id":104979142,"id":175452075,"diff_hunk":"@@ -0,0 +1,245 @@\n+// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n+// See License.txt for license information.\n+\n+import PropTypes from 'prop-types';\n+import React from 'react';\n+import {getTimezoneRegion} from 'mattermost-redux/utils/timezone_utils';\n+import {FormattedHTMLMessage, FormattedMessage} from 'react-intl';\n+\n+import {updateUser} from 'actions/user_actions.jsx';\n+\n+import SettingItemMax from 'components/setting_item_max.jsx';\n+import {getBrowserTimezone} from 'utils/timezone';\n+\n+import SuggestionBox from 'components/suggestion/suggestion_box.jsx';\n+import SuggestionList from 'components/suggestion/suggestion_list.jsx';\n+import TimezoneProvider from 'components/suggestion/timezone_provider.jsx';\n+\n+export default class ManageTimezones extends React.PureComponent {\n+    constructor(props) {\n+        super(props);\n+\n+        this.state = {\n+            useAutomaticTimezone: props.useAutomaticTimezone,\n+            automaticTimezone: props.automaticTimezone,\n+            manualTimezone: props.manualTimezone,\n+            manualTimezoneInput: props.manualTimezone,\n+            isSaving: false,\n+        };\n+    }\n+\n+    onChange = (e) => {\n+        this.setState({manualTimezoneInput: e.target.value});\n+    };\n+\n+    handleTimezoneSelected = (selected) => {\n+        if (!selected) {\n+            return;\n+        }\n+\n+        this.setState({\n+            manualTimezone: selected,\n+            manualTimezoneInput: selected,\n+        });\n+    };\n+\n+    timezoneNotChanged = () => {\n+        const {\n+            useAutomaticTimezone,\n+            automaticTimezone,\n+            manualTimezone,\n+        } = this.state;\n+\n+        const {\n+            useAutomaticTimezone: oldUseAutomaticTimezone,\n+            automaticTimezone: oldAutomaticTimezone,\n+            manualTimezone: oldManualTimezone,\n+        } = this.props;\n+\n+        return (\n+            useAutomaticTimezone === oldUseAutomaticTimezone &&\n+            automaticTimezone === oldAutomaticTimezone &&\n+            manualTimezone === oldManualTimezone\n+        );\n+    };\n+\n+    changeTimezone = () => {\n+        if (this.timezoneNotChanged()) {\n+            this.props.updateSection('');\n+            return;\n+        }\n+\n+        this.submitUser();\n+    };\n+\n+    submitUser = () => {\n+        const {user} = this.props;\n+        const {\n+            useAutomaticTimezone,\n+            automaticTimezone,\n+            manualTimezone,\n+        } = this.state;\n+\n+        const timezone = {\n+            useAutomaticTimezone: useAutomaticTimezone.toString(),\n+            automaticTimezone,\n+            manualTimezone,\n+        };\n+\n+        const updatedUser = {\n+            ...user,\n+            timezone,\n+        };\n+\n+        updateUser(\n+            updatedUser,\n+            () => this.props.updateSection(''),\n+            (err) => {\n+                let serverError;\n+                if (err.message) {\n+                    serverError = err.message;\n+                } else {\n+                    serverError = err;\n+                }\n+                this.setState({serverError, isSaving: false});\n+            }\n+        );\n+    };\n+\n+    handleAutomaticTimezone = (e) => {\n+        const useAutomaticTimezone = e.target.checked;\n+        let automaticTimezone = '';\n+\n+        if (useAutomaticTimezone) {\n+            automaticTimezone = getBrowserTimezone();\n+        }\n+\n+        this.setState({\n+            useAutomaticTimezone,\n+            automaticTimezone,\n+        });\n+    };\n+\n+    handleManualTimezone = (e) => {\n+        this.setState({manualTimezone: e.target.value});\n+    };\n+\n+    render() {\n+        const {timezones} = this.props;\n+        const {\n+            useAutomaticTimezone,\n+            automaticTimezone,\n+        } = this.state;\n+\n+        let serverError;\n+        if (this.state.serverError) {\n+            serverError = <label className='has-error'>{this.state.serverError}</label>;\n+        }\n+\n+        const inputs = [];\n+\n+        const timezoneRegion = (\n+            <div\n+                className='section-describe'\n+            >\n+                {useAutomaticTimezone && getTimezoneRegion(automaticTimezone)}\n+            </div>\n+        );\n+\n+        const noTimezonesFromServer = timezones.length === 0;\n+        const automaticTimezoneInput = (\n+            <div className='checkbox'>\n+                <label>\n+                    <input\n+                        id='automaticTimezoneInput'\n+                        type='checkbox'\n+                        checked={useAutomaticTimezone}\n+                        onChange={this.handleAutomaticTimezone}\n+                        disabled={noTimezonesFromServer}\n+                    />\n+                    <FormattedMessage\n+                        id='user.settings.timezones.automatic'\n+                        defaultMessage='Set automatically'\n+                    />\n+                    {timezoneRegion}\n+                </label>\n+            </div>\n+        );\n+\n+        const providers = [new TimezoneProvider()];\n+        const manualTimezoneInput = (\n+            <div key='changeTimezone'>\n+                <br/>\n+                <label className='control-label'>\n+                    <FormattedMessage\n+                        id='user.settings.timezones.change'\n+                        defaultMessage='Change timezone'\n+                    />\n+                </label>\n+                <div className='padding-top'>\n+                    <SuggestionBox\n+                        ref={this.setSwitchBoxRef}\n+                        className='form-control focused'\n+                        type='search'\n+                        onChange={this.onChange}\n+                        value={this.state.manualTimezoneInput}\n+                        onItemSelected={this.handleTimezoneSelected}\n+                        listComponent={SuggestionList}\n+                        maxLength='64'\n+                        requiredCharacters={0}\n+                        providers={providers}\n+                        listStyle='bottom'\n+                        completeOnTab={false}\n+                        renderDividers={false}\n+                        openOnFocus={true}\n+                        disabled={noTimezonesFromServer}\n+                    />\n+                    {serverError}\n+                </div>\n+                <div>\n+                    <br/>\n+                    <FormattedHTMLMessage\n+                        id='user.settings.timezones.promote'\n+                        defaultMessage='Select the time zone used for timestamps in the user interface and email notifications.'\n+                    />\n+                </div>\n+            </div>\n+        );\n+\n+        inputs.push(automaticTimezoneInput);\n+\n+        if (!useAutomaticTimezone) {\n+            inputs.push(manualTimezoneInput);\n+        }\n+\n+        return (\n+            <SettingItemMax\n+                title={\n+                    <FormattedMessage\n+                        id='user.settings.display.timezone'\n+                        defaultMessage='Timezone'\n+                    />\n+                }\n+                containerStyle={{","path":"components/user_settings/display/manage_timezones.jsx","position":223,"original_position":223,"commit_id":"592c7a278ae315c4fce2f26445f64f8c4668143d","original_commit_id":"592c7a278ae315c4fce2f26445f64f8c4668143d","user":{"login":"hmhealey","id":3277310,"avatar_url":"https://avatars3.githubusercontent.com/u/3277310?v=4","gravatar_id":"","url":"https://api.github.com/users/hmhealey","html_url":"https://github.com/hmhealey","followers_url":"https://api.github.com/users/hmhealey/followers","following_url":"https://api.github.com/users/hmhealey/following{/other_user}","gists_url":"https://api.github.com/users/hmhealey/gists{/gist_id}","starred_url":"https://api.github.com/users/hmhealey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hmhealey/subscriptions","organizations_url":"https://api.github.com/users/hmhealey/orgs","repos_url":"https://api.github.com/users/hmhealey/repos","events_url":"https://api.github.com/users/hmhealey/events{/privacy}","received_events_url":"https://api.github.com/users/hmhealey/received_events","type":"User","site_admin":false},"body":"Instead of passing in a raw style object, could you move this into the CSS and change this to a className that you're passing in?","created_at":"2018-03-19T14:24:11Z","updated_at":"2018-03-19T14:27:21Z","html_url":"https://github.com/mattermost/mattermost-webapp/pull/696#discussion_r175452075","pull_request_url":"https://api.github.com/repos/mattermost/mattermost-webapp/pulls/696","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/mattermost/mattermost-webapp/pulls/comments/175452075"},"html":{"href":"https://github.com/mattermost/mattermost-webapp/pull/696#discussion_r175452075"},"pull_request":{"href":"https://api.github.com/repos/mattermost/mattermost-webapp/pulls/696"}}},"pull_request":{"url":"https://api.github.com/repos/mattermost/mattermost-webapp/pulls/696","id":166682664,"html_url":"https://github.com/mattermost/mattermost-webapp/pull/696","diff_url":"https://github.com/mattermost/mattermost-webapp/pull/696.diff","patch_url":"https://github.com/mattermost/mattermost-webapp/pull/696.patch","issue_url":"https://api.github.com/repos/mattermost/mattermost-webapp/issues/696","number":696,"state":"open","locked":false,"title":"Timezone feature","user":{"login":"csduarte","id":9515253,"avatar_url":"https://avatars3.githubusercontent.com/u/9515253?v=4","gravatar_id":"","url":"https://api.github.com/users/csduarte","html_url":"https://github.com/csduarte","followers_url":"https://api.github.com/users/csduarte/followers","following_url":"https://api.github.com/users/csduarte/following{/other_user}","gists_url":"https://api.github.com/users/csduarte/gists{/gist_id}","starred_url":"https://api.github.com/users/csduarte/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/csduarte/subscriptions","organizations_url":"https://api.github.com/users/csduarte/orgs","repos_url":"https://api.github.com/users/csduarte/repos","events_url":"https://api.github.com/users/csduarte/events{/privacy}","received_events_url":"https://api.github.com/users/csduarte/received_events","type":"User","site_admin":false},"body":"#### Summary\r\n1. Update timezone both manually and automatic\r\n2. If chosen to update automatically, it updates after log in or when new session begins\r\n3. List of SupportedTimezones are pulled from Config\r\n\r\n#### Ticket Link\r\n[PLT-541 Add a \"Time zone\" field to account settings - Mattermost](https://mattermost.atlassian.net/browse/PLT-541)\r\n\r\n#### Checklist\r\n- [x] Ran `make check-style` to check for style errors (required for all pull requests)\r\n- [x] Ran `make test` to ensure unit and component tests passed\r\n- [x] Has server changes (please link)\r\n- [x] Has UI changes\r\n- [x] Includes text changes and localization file ([.../i18n/en.json](https://github.com/mattermost/mattermost-webapp/blob/master/i18n/en.json)) updates\r\n\r\n#### Screenshots\r\n##### manual timezone selection\r\n<img width=\"801\" alt=\"screen shot 2018-02-01 at 11 57 15 am\" src=\"https://user-images.githubusercontent.com/6182543/35700848-29b0104a-0762-11e8-8ce9-c35a5bbdaaf6.png\">\r\n\r\n##### automatic timezone selection\r\n<img width=\"801\" alt=\"manual\" src=\"https://user-images.githubusercontent.com/6182543/35700827-162207ae-0762-11e8-9134-b3f246aef9ba.png\">\r\n\r\n#### Feature in action\r\n##### manual\r\n![set_manual_timezone](https://user-images.githubusercontent.com/6182543/35700817-0ed70de6-0762-11e8-9dfe-6ffcdc1ee190.gif)\r\n\r\n\r\n##### automatic\r\n![set_automatic_timezone](https://user-images.githubusercontent.com/6182543/35700814-0d91c37c-0762-11e8-82a6-20fd4304939d.gif)","created_at":"2018-02-01T23:41:19Z","updated_at":"2018-03-19T14:27:21Z","closed_at":null,"merged_at":null,"merge_commit_sha":"55ef727d22977128be6ea658ecabc4e147cd5a58","assignee":{"login":"esethna","id":14333569,"avatar_url":"https://avatars3.githubusercontent.com/u/14333569?v=4","gravatar_id":"","url":"https://api.github.com/users/esethna","html_url":"https://github.com/esethna","followers_url":"https://api.github.com/users/esethna/followers","following_url":"https://api.github.com/users/esethna/following{/other_user}","gists_url":"https://api.github.com/users/esethna/gists{/gist_id}","starred_url":"https://api.github.com/users/esethna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/esethna/subscriptions","organizations_url":"https://api.github.com/users/esethna/orgs","repos_url":"https://api.github.com/users/esethna/repos","events_url":"https://api.github.com/users/esethna/events{/privacy}","received_events_url":"https://api.github.com/users/esethna/received_events","type":"User","site_admin":false},"assignees":[{"login":"esethna","id":14333569,"avatar_url":"https://avatars3.githubusercontent.com/u/14333569?v=4","gravatar_id":"","url":"https://api.github.com/users/esethna","html_url":"https://github.com/esethna","followers_url":"https://api.github.com/users/esethna/followers","following_url":"https://api.github.com/users/esethna/following{/other_user}","gists_url":"https://api.github.com/users/esethna/gists{/gist_id}","starred_url":"https://api.github.com/users/esethna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/esethna/subscriptions","organizations_url":"https://api.github.com/users/esethna/orgs","repos_url":"https://api.github.com/users/esethna/repos","events_url":"https://api.github.com/users/esethna/events{/privacy}","received_events_url":"https://api.github.com/users/esethna/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"esethna","id":14333569,"avatar_url":"https://avatars3.githubusercontent.com/u/14333569?v=4","gravatar_id":"","url":"https://api.github.com/users/esethna","html_url":"https://github.com/esethna","followers_url":"https://api.github.com/users/esethna/followers","following_url":"https://api.github.com/users/esethna/following{/other_user}","gists_url":"https://api.github.com/users/esethna/gists{/gist_id}","starred_url":"https://api.github.com/users/esethna/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/esethna/subscriptions","organizations_url":"https://api.github.com/users/esethna/orgs","repos_url":"https://api.github.com/users/esethna/repos","events_url":"https://api.github.com/users/esethna/events{/privacy}","received_events_url":"https://api.github.com/users/esethna/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":685999052,"url":"https://api.github.com/repos/mattermost/mattermost-webapp/labels/1:%20PM%20Review","name":"1: PM Review","color":"006b75","default":false},{"id":685999255,"url":"https://api.github.com/repos/mattermost/mattermost-webapp/labels/2:%20Dev%20Review","name":"2: Dev Review","color":"eb6420","default":false},{"id":692822318,"url":"https://api.github.com/repos/mattermost/mattermost-webapp/labels/Awaiting%20PR","name":"Awaiting PR","color":"0e8a16","default":false},{"id":702532842,"url":"https://api.github.com/repos/mattermost/mattermost-webapp/labels/Setup%20Test%20Server","name":"Setup Test Server","color":"0052cc","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/mattermost/mattermost-webapp/pulls/696/commits","review_comments_url":"https://api.github.com/repos/mattermost/mattermost-webapp/pulls/696/comments","review_comment_url":"https://api.github.com/repos/mattermost/mattermost-webapp/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mattermost/mattermost-webapp/issues/696/comments","statuses_url":"https://api.github.com/repos/mattermost/mattermost-webapp/statuses/592c7a278ae315c4fce2f26445f64f8c4668143d","head":{"label":"uber-uchat:timezone-feature","ref":"timezone-feature","sha":"592c7a278ae315c4fce2f26445f64f8c4668143d","user":{"login":"uber-uchat","id":31258996,"avatar_url":"https://avatars0.githubusercontent.com/u/31258996?v=4","gravatar_id":"","url":"https://api.github.com/users/uber-uchat","html_url":"https://github.com/uber-uchat","followers_url":"https://api.github.com/users/uber-uchat/followers","following_url":"https://api.github.com/users/uber-uchat/following{/other_user}","gists_url":"https://api.github.com/users/uber-uchat/gists{/gist_id}","starred_url":"https://api.github.com/users/uber-uchat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uber-uchat/subscriptions","organizations_url":"https://api.github.com/users/uber-uchat/orgs","repos_url":"https://api.github.com/users/uber-uchat/repos","events_url":"https://api.github.com/users/uber-uchat/events{/privacy}","received_events_url":"https://api.github.com/users/uber-uchat/received_events","type":"Organization","site_admin":false},"repo":{"id":104518612,"name":"mattermost-webapp","full_name":"uber-uchat/mattermost-webapp","owner":{"login":"uber-uchat","id":31258996,"avatar_url":"https://avatars0.githubusercontent.com/u/31258996?v=4","gravatar_id":"","url":"https://api.github.com/users/uber-uchat","html_url":"https://github.com/uber-uchat","followers_url":"https://api.github.com/users/uber-uchat/followers","following_url":"https://api.github.com/users/uber-uchat/following{/other_user}","gists_url":"https://api.github.com/users/uber-uchat/gists{/gist_id}","starred_url":"https://api.github.com/users/uber-uchat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uber-uchat/subscriptions","organizations_url":"https://api.github.com/users/uber-uchat/orgs","repos_url":"https://api.github.com/users/uber-uchat/repos","events_url":"https://api.github.com/users/uber-uchat/events{/privacy}","received_events_url":"https://api.github.com/users/uber-uchat/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/uber-uchat/mattermost-webapp","description":"Webapp of Mattermost server: https://github.com/mattermost/mattermost-server","fork":true,"url":"https://api.github.com/repos/uber-uchat/mattermost-webapp","forks_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/forks","keys_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/teams","hooks_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/hooks","issue_events_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/issues/events{/number}","events_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/events","assignees_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/assignees{/user}","branches_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/branches{/branch}","tags_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/tags","blobs_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/git/refs{/sha}","trees_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/statuses/{sha}","languages_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/languages","stargazers_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/stargazers","contributors_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/contributors","subscribers_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/subscribers","subscription_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/subscription","commits_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/commits{/sha}","git_commits_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/git/commits{/sha}","comments_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/comments{/number}","issue_comment_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/issues/comments{/number}","contents_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/contents/{+path}","compare_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/merges","archive_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/downloads","issues_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/issues{/number}","pulls_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/pulls{/number}","milestones_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/milestones{/number}","notifications_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/labels{/name}","releases_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/releases{/id}","deployments_url":"https://api.github.com/repos/uber-uchat/mattermost-webapp/deployments","created_at":"2017-09-22T21:04:24Z","updated_at":"2018-03-16T22:12:11Z","pushed_at":"2018-03-17T03:14:55Z","git_url":"git://github.com/uber-uchat/mattermost-webapp.git","ssh_url":"git@github.com:uber-uchat/mattermost-webapp.git","clone_url":"https://github.com/uber-uchat/mattermost-webapp.git","svn_url":"https://github.com/uber-uchat/mattermost-webapp","homepage":null,"size":98923,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":3,"mirror_url":null,"archived":false,"open_issues_count":1,"license":null,"forks":3,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"mattermost:master","ref":"master","sha":"d68b550d4c8bb07f0a6a8e56cc40b2cb12d75b36","user":{"login":"mattermost","id":9828093,"avatar_url":"https://avatars1.githubusercontent.com/u/9828093?v=4","gravatar_id":"","url":"https://api.github.com/users/mattermost","html_url":"https://github.com/mattermost","followers_url":"https://api.github.com/users/mattermost/followers","following_url":"https://api.github.com/users/mattermost/following{/other_user}","gists_url":"https://api.github.com/users/mattermost/gists{/gist_id}","starred_url":"https://api.github.com/users/mattermost/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mattermost/subscriptions","organizations_url":"https://api.github.com/users/mattermost/orgs","repos_url":"https://api.github.com/users/mattermost/repos","events_url":"https://api.github.com/users/mattermost/events{/privacy}","received_events_url":"https://api.github.com/users/mattermost/received_events","type":"Organization","site_admin":false},"repo":{"id":102689445,"name":"mattermost-webapp","full_name":"mattermost/mattermost-webapp","owner":{"login":"mattermost","id":9828093,"avatar_url":"https://avatars1.githubusercontent.com/u/9828093?v=4","gravatar_id":"","url":"https://api.github.com/users/mattermost","html_url":"https://github.com/mattermost","followers_url":"https://api.github.com/users/mattermost/followers","following_url":"https://api.github.com/users/mattermost/following{/other_user}","gists_url":"https://api.github.com/users/mattermost/gists{/gist_id}","starred_url":"https://api.github.com/users/mattermost/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mattermost/subscriptions","organizations_url":"https://api.github.com/users/mattermost/orgs","repos_url":"https://api.github.com/users/mattermost/repos","events_url":"https://api.github.com/users/mattermost/events{/privacy}","received_events_url":"https://api.github.com/users/mattermost/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mattermost/mattermost-webapp","description":"Webapp of Mattermost server: https://github.com/mattermost/mattermost-server","fork":false,"url":"https://api.github.com/repos/mattermost/mattermost-webapp","forks_url":"https://api.github.com/repos/mattermost/mattermost-webapp/forks","keys_url":"https://api.github.com/repos/mattermost/mattermost-webapp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mattermost/mattermost-webapp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mattermost/mattermost-webapp/teams","hooks_url":"https://api.github.com/repos/mattermost/mattermost-webapp/hooks","issue_events_url":"https://api.github.com/repos/mattermost/mattermost-webapp/issues/events{/number}","events_url":"https://api.github.com/repos/mattermost/mattermost-webapp/events","assignees_url":"https://api.github.com/repos/mattermost/mattermost-webapp/assignees{/user}","branches_url":"https://api.github.com/repos/mattermost/mattermost-webapp/branches{/branch}","tags_url":"https://api.github.com/repos/mattermost/mattermost-webapp/tags","blobs_url":"https://api.github.com/repos/mattermost/mattermost-webapp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mattermost/mattermost-webapp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mattermost/mattermost-webapp/git/refs{/sha}","trees_url":"https://api.github.com/repos/mattermost/mattermost-webapp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mattermost/mattermost-webapp/statuses/{sha}","languages_url":"https://api.github.com/repos/mattermost/mattermost-webapp/languages","stargazers_url":"https://api.github.com/repos/mattermost/mattermost-webapp/stargazers","contributors_url":"https://api.github.com/repos/mattermost/mattermost-webapp/contributors","subscribers_url":"https://api.github.com/repos/mattermost/mattermost-webapp/subscribers","subscription_url":"https://api.github.com/repos/mattermost/mattermost-webapp/subscription","commits_url":"https://api.github.com/repos/mattermost/mattermost-webapp/commits{/sha}","git_commits_url":"https://api.github.com/repos/mattermost/mattermost-webapp/git/commits{/sha}","comments_url":"https://api.github.com/repos/mattermost/mattermost-webapp/comments{/number}","issue_comment_url":"https://api.github.com/repos/mattermost/mattermost-webapp/issues/comments{/number}","contents_url":"https://api.github.com/repos/mattermost/mattermost-webapp/contents/{+path}","compare_url":"https://api.github.com/repos/mattermost/mattermost-webapp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mattermost/mattermost-webapp/merges","archive_url":"https://api.github.com/repos/mattermost/mattermost-webapp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mattermost/mattermost-webapp/downloads","issues_url":"https://api.github.com/repos/mattermost/mattermost-webapp/issues{/number}","pulls_url":"https://api.github.com/repos/mattermost/mattermost-webapp/pulls{/number}","milestones_url":"https://api.github.com/repos/mattermost/mattermost-webapp/milestones{/number}","notifications_url":"https://api.github.com/repos/mattermost/mattermost-webapp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mattermost/mattermost-webapp/labels{/name}","releases_url":"https://api.github.com/repos/mattermost/mattermost-webapp/releases{/id}","deployments_url":"https://api.github.com/repos/mattermost/mattermost-webapp/deployments","created_at":"2017-09-07T04:00:02Z","updated_at":"2018-03-19T14:03:32Z","pushed_at":"2018-03-19T14:14:14Z","git_url":"git://github.com/mattermost/mattermost-webapp.git","ssh_url":"git@github.com:mattermost/mattermost-webapp.git","clone_url":"https://github.com/mattermost/mattermost-webapp.git","svn_url":"https://github.com/mattermost/mattermost-webapp","homepage":null,"size":98505,"stargazers_count":155,"watchers_count":155,"language":"JavaScript","has_issues":false,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":314,"mirror_url":null,"archived":false,"open_issues_count":23,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":314,"open_issues":23,"watchers":155,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mattermost/mattermost-webapp/pulls/696"},"html":{"href":"https://github.com/mattermost/mattermost-webapp/pull/696"},"issue":{"href":"https://api.github.com/repos/mattermost/mattermost-webapp/issues/696"},"comments":{"href":"https://api.github.com/repos/mattermost/mattermost-webapp/issues/696/comments"},"review_comments":{"href":"https://api.github.com/repos/mattermost/mattermost-webapp/pulls/696/comments"},"review_comment":{"href":"https://api.github.com/repos/mattermost/mattermost-webapp/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mattermost/mattermost-webapp/pulls/696/commits"},"statuses":{"href":"https://api.github.com/repos/mattermost/mattermost-webapp/statuses/592c7a278ae315c4fce2f26445f64f8c4668143d"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"hmhealey"}}