{"action":"created","comment":{"url":"https://api.github.com/repos/jitsi/jitsi-meet/pulls/comments/136629474","pull_request_review_id":60198152,"id":136629474,"diff_hunk":"@@ -0,0 +1,220 @@\n+import React, { Component } from 'react';\n+import { connect } from 'react-redux';\n+import Button from '@atlaskit/button';\n+import DropdownMenu from '@atlaskit/dropdown-menu';\n+\n+import { translate } from '../../base/i18n';\n+import { getLocalParticipant, PARTICIPANT_ROLE } from '../../base/participants';\n+\n+import { openDialog } from '../../base/dialog';\n+import { AddPeopleDialog, InviteDialog } from '.';\n+import { DialOutDialog } from '../../dial-out';\n+\n+declare var interfaceConfig: Object;\n+\n+const DIAL_OUT_NAME = 'dialout';\n+\n+/**\n+ * The button that provides different invite options.\n+ */\n+class InviteButton extends Component {\n+\n+    /**\n+     * {@code InviteButton}'s property types.\n+     *\n+     * @static\n+     */\n+    static propTypes = {\n+        /**\n+         * Indicates if the \"Add to call\" feature is available.\n+         */\n+        _isAddToCallAvailable: React.PropTypes.bool,\n+\n+        /**\n+         * Indicates if the \"Dial out\" feature is available.\n+         */\n+        _isDialOutAvailable: React.PropTypes.bool,\n+\n+        /**\n+         * The function closing the dialog.\n+         */\n+        openDialog: React.PropTypes.func,\n+\n+        /**\n+         * Invoked to obtain translated strings.\n+         */\n+        t: React.PropTypes.func\n+    };\n+\n+    /**\n+     * Initializes a new {@code InviteButton} instance.\n+     *\n+     * @param {Object} props - The read-only properties with which the new\n+     * instance is to be initialized.\n+     */\n+    constructor(props) {\n+        super(props);\n+\n+        this._onInviteClick = this._onInviteClick.bind(this);\n+        this._onInviteOptionSelected = this._onInviteOptionSelected.bind(this);\n+        this._updateInviteItems = this._updateInviteItems.bind(this);\n+\n+        this._updateInviteItems(this.props);\n+    }\n+\n+    /**\n+     * Implements React's {@link Component#componentWillReceiveProps()}.\n+     *\n+     * @inheritdoc\n+     * @param {Object} nextProps - The read-only props which this Component will\n+     * receive.\n+     * @returns {void}\n+     */\n+    componentWillReceiveProps(nextProps) {\n+        if (this.props._isDialOutAvailable !== nextProps._isDialOutAvailable\n+            || this.props._isAddToCallAvailable\n+                !== nextProps._isAddToCallAvailable) {\n+            this._updateInviteItems(nextProps);\n+        }\n+    }\n+\n+    /**\n+     * Renders the content of this component.\n+     *\n+     * @returns {ReactElement}\n+     */\n+    render() {\n+        const { t } = this.props;\n+\n+        const { VERTICAL_FILMSTRIP } = interfaceConfig;\n+\n+        return (\n+            <div className = 'filmstrip__invite'>\n+                <div className = 'invite-button-group'>\n+                    <Button\n+                        onClick = { this._onInviteClick }\n+                        shouldFitContainer = { true }>\n+                        { t('invite.invitePeople') }\n+                    </Button>\n+                    <DropdownMenu\n+                        items = { this.state.inviteOptions }\n+                        onItemActivated = { this._onInviteOptionSelected }\n+                        position = { VERTICAL_FILMSTRIP\n+                            ? 'bottom right'\n+                            : 'top right' }\n+                        shouldFlip = { true }\n+                        triggerType = 'button' />\n+                </div>\n+            </div>\n+        );\n+    }\n+\n+    /**\n+     * Handles the click of the invite button.\n+     *\n+     * @private\n+     * @returns {void}\n+     */\n+    _onInviteClick() {\n+        this.props.openDialog(InviteDialog);\n+    }\n+\n+    /**\n+     * Handles selection of the invite options.\n+     *\n+     * @param { Object } option - The invite option that has been selected from\n+     * the dropdown menu.\n+     * @private\n+     * @returns {void}\n+     */\n+    _onInviteOptionSelected(option) {\n+        this.state.inviteOptions[0].items.map(item => {\n+            if (item.content === option.item.content) {\n+                item.action();\n+\n+                return true;\n+            }\n+\n+            return false;\n+        });\n+    }\n+\n+    /**\n+     * Updates the invite items list depending on the availability of the\n+     * features.\n+     *\n+     * @param {Object} props - The read-only properties of the component.\n+     * @private\n+     * @returns {void}\n+     */\n+    _updateInviteItems(props) {\n+        const { t } = this.props;\n+\n+        const inviteItems = [\n+            {\n+                content: t('invite.shareTheLink'),\n+                action: () => this.props.openDialog(InviteDialog)\n+            }\n+        ];\n+\n+        if (props._isDialOutAvailable) {\n+            inviteItems.splice(0, 0, {\n+                content: t('dialOut.dialOut'),\n+                action: () => this.props.openDialog(DialOutDialog)\n+            });\n+        }\n+\n+        if (props._isAddToCallAvailable) {\n+            inviteItems.splice(0, 0, {\n+                content: interfaceConfig.APP_PEOPLE_APP_NAME,\n+                action: () => this.props.openDialog(AddPeopleDialog)\n+            });\n+        }\n+\n+        this.state = {\n+            /**\n+             * The list of invite options.\n+             */\n+            inviteOptions: [\n+                {\n+                    items: inviteItems\n+                }\n+            ]\n+        };\n+    }\n+}\n+\n+/**\n+ * Maps (parts of) the Redux state to the associated {@code InviteButton}'s\n+ * props.\n+ *\n+ * @param {Object} state - The Redux state.\n+ * @private\n+ * @returns {{\n+ *     _isAddToCallAvailable: boolean,\n+ *     _isDialOutAvailable: boolean\n+ * }}\n+ */\n+function _mapStateToProps(state) {\n+    const { enableUserRolesBasedOnToken } = state['features/base/config'];\n+\n+    const { conference } = state['features/base/conference'];\n+\n+    const isDialOutButtonEnabled\n+        = interfaceConfig.TOOLBAR_BUTTONS.indexOf(DIAL_OUT_NAME) !== -1\n+        || interfaceConfig.MAIN_TOOLBAR_BUTTONS.indexOf(DIAL_OUT_NAME) !== -1;","path":"react/features/invite/components/InviteButton.web.js","position":205,"original_position":205,"commit_id":"dd5c4a606bb86e9beb0130c3a53085f13537e816","original_commit_id":"dd5c4a606bb86e9beb0130c3a53085f13537e816","user":{"login":"virtuacoplenny","id":1243084,"avatar_url":"https://avatars0.githubusercontent.com/u/1243084?v=4","gravatar_id":"","url":"https://api.github.com/users/virtuacoplenny","html_url":"https://github.com/virtuacoplenny","followers_url":"https://api.github.com/users/virtuacoplenny/followers","following_url":"https://api.github.com/users/virtuacoplenny/following{/other_user}","gists_url":"https://api.github.com/users/virtuacoplenny/gists{/gist_id}","starred_url":"https://api.github.com/users/virtuacoplenny/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/virtuacoplenny/subscriptions","organizations_url":"https://api.github.com/users/virtuacoplenny/orgs","repos_url":"https://api.github.com/users/virtuacoplenny/repos","events_url":"https://api.github.com/users/virtuacoplenny/events{/privacy}","received_events_url":"https://api.github.com/users/virtuacoplenny/received_events","type":"User","site_admin":false},"body":"There is an isButtonEnabled helper for this check.","created_at":"2017-09-01T17:43:27Z","updated_at":"2017-09-01T17:43:47Z","html_url":"https://github.com/jitsi/jitsi-meet/pull/1950#discussion_r136629474","pull_request_url":"https://api.github.com/repos/jitsi/jitsi-meet/pulls/1950","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/jitsi/jitsi-meet/pulls/comments/136629474"},"html":{"href":"https://github.com/jitsi/jitsi-meet/pull/1950#discussion_r136629474"},"pull_request":{"href":"https://api.github.com/repos/jitsi/jitsi-meet/pulls/1950"}}},"pull_request":{"url":"https://api.github.com/repos/jitsi/jitsi-meet/pulls/1950","id":138475146,"html_url":"https://github.com/jitsi/jitsi-meet/pull/1950","diff_url":"https://github.com/jitsi/jitsi-meet/pull/1950.diff","patch_url":"https://github.com/jitsi/jitsi-meet/pull/1950.patch","issue_url":"https://api.github.com/repos/jitsi/jitsi-meet/issues/1950","number":1950,"state":"open","locked":false,"title":"WiP(invite-ui): Initial move of invite UI to invite button","user":{"login":"yanas","id":3264676,"avatar_url":"https://avatars1.githubusercontent.com/u/3264676?v=4","gravatar_id":"","url":"https://api.github.com/users/yanas","html_url":"https://github.com/yanas","followers_url":"https://api.github.com/users/yanas/followers","following_url":"https://api.github.com/users/yanas/following{/other_user}","gists_url":"https://api.github.com/users/yanas/gists{/gist_id}","starred_url":"https://api.github.com/users/yanas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yanas/subscriptions","organizations_url":"https://api.github.com/users/yanas/orgs","repos_url":"https://api.github.com/users/yanas/repos","events_url":"https://api.github.com/users/yanas/events{/privacy}","received_events_url":"https://api.github.com/users/yanas/received_events","type":"User","site_admin":false},"body":"This is still WiP and still needs some CSS love before we'll be able to merge it.","created_at":"2017-08-30T16:43:51Z","updated_at":"2017-09-01T17:43:47Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8e1829cbed064b0f072b4670cae473ca3c91db7e","assignee":{"login":"virtuacoplenny","id":1243084,"avatar_url":"https://avatars0.githubusercontent.com/u/1243084?v=4","gravatar_id":"","url":"https://api.github.com/users/virtuacoplenny","html_url":"https://github.com/virtuacoplenny","followers_url":"https://api.github.com/users/virtuacoplenny/followers","following_url":"https://api.github.com/users/virtuacoplenny/following{/other_user}","gists_url":"https://api.github.com/users/virtuacoplenny/gists{/gist_id}","starred_url":"https://api.github.com/users/virtuacoplenny/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/virtuacoplenny/subscriptions","organizations_url":"https://api.github.com/users/virtuacoplenny/orgs","repos_url":"https://api.github.com/users/virtuacoplenny/repos","events_url":"https://api.github.com/users/virtuacoplenny/events{/privacy}","received_events_url":"https://api.github.com/users/virtuacoplenny/received_events","type":"User","site_admin":false},"assignees":[{"login":"virtuacoplenny","id":1243084,"avatar_url":"https://avatars0.githubusercontent.com/u/1243084?v=4","gravatar_id":"","url":"https://api.github.com/users/virtuacoplenny","html_url":"https://github.com/virtuacoplenny","followers_url":"https://api.github.com/users/virtuacoplenny/followers","following_url":"https://api.github.com/users/virtuacoplenny/following{/other_user}","gists_url":"https://api.github.com/users/virtuacoplenny/gists{/gist_id}","starred_url":"https://api.github.com/users/virtuacoplenny/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/virtuacoplenny/subscriptions","organizations_url":"https://api.github.com/users/virtuacoplenny/orgs","repos_url":"https://api.github.com/users/virtuacoplenny/repos","events_url":"https://api.github.com/users/virtuacoplenny/events{/privacy}","received_events_url":"https://api.github.com/users/virtuacoplenny/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/jitsi/jitsi-meet/pulls/1950/commits","review_comments_url":"https://api.github.com/repos/jitsi/jitsi-meet/pulls/1950/comments","review_comment_url":"https://api.github.com/repos/jitsi/jitsi-meet/pulls/comments{/number}","comments_url":"https://api.github.com/repos/jitsi/jitsi-meet/issues/1950/comments","statuses_url":"https://api.github.com/repos/jitsi/jitsi-meet/statuses/dd5c4a606bb86e9beb0130c3a53085f13537e816","head":{"label":"jitsi:invite-ui-wip","ref":"invite-ui-wip","sha":"dd5c4a606bb86e9beb0130c3a53085f13537e816","user":{"login":"jitsi","id":3671647,"avatar_url":"https://avatars2.githubusercontent.com/u/3671647?v=4","gravatar_id":"","url":"https://api.github.com/users/jitsi","html_url":"https://github.com/jitsi","followers_url":"https://api.github.com/users/jitsi/followers","following_url":"https://api.github.com/users/jitsi/following{/other_user}","gists_url":"https://api.github.com/users/jitsi/gists{/gist_id}","starred_url":"https://api.github.com/users/jitsi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jitsi/subscriptions","organizations_url":"https://api.github.com/users/jitsi/orgs","repos_url":"https://api.github.com/users/jitsi/repos","events_url":"https://api.github.com/users/jitsi/events{/privacy}","received_events_url":"https://api.github.com/users/jitsi/received_events","type":"Organization","site_admin":false},"repo":{"id":15225670,"name":"jitsi-meet","full_name":"jitsi/jitsi-meet","owner":{"login":"jitsi","id":3671647,"avatar_url":"https://avatars2.githubusercontent.com/u/3671647?v=4","gravatar_id":"","url":"https://api.github.com/users/jitsi","html_url":"https://github.com/jitsi","followers_url":"https://api.github.com/users/jitsi/followers","following_url":"https://api.github.com/users/jitsi/following{/other_user}","gists_url":"https://api.github.com/users/jitsi/gists{/gist_id}","starred_url":"https://api.github.com/users/jitsi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jitsi/subscriptions","organizations_url":"https://api.github.com/users/jitsi/orgs","repos_url":"https://api.github.com/users/jitsi/repos","events_url":"https://api.github.com/users/jitsi/events{/privacy}","received_events_url":"https://api.github.com/users/jitsi/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/jitsi/jitsi-meet","description":"Jitsi Meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application.","fork":false,"url":"https://api.github.com/repos/jitsi/jitsi-meet","forks_url":"https://api.github.com/repos/jitsi/jitsi-meet/forks","keys_url":"https://api.github.com/repos/jitsi/jitsi-meet/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jitsi/jitsi-meet/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jitsi/jitsi-meet/teams","hooks_url":"https://api.github.com/repos/jitsi/jitsi-meet/hooks","issue_events_url":"https://api.github.com/repos/jitsi/jitsi-meet/issues/events{/number}","events_url":"https://api.github.com/repos/jitsi/jitsi-meet/events","assignees_url":"https://api.github.com/repos/jitsi/jitsi-meet/assignees{/user}","branches_url":"https://api.github.com/repos/jitsi/jitsi-meet/branches{/branch}","tags_url":"https://api.github.com/repos/jitsi/jitsi-meet/tags","blobs_url":"https://api.github.com/repos/jitsi/jitsi-meet/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jitsi/jitsi-meet/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jitsi/jitsi-meet/git/refs{/sha}","trees_url":"https://api.github.com/repos/jitsi/jitsi-meet/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jitsi/jitsi-meet/statuses/{sha}","languages_url":"https://api.github.com/repos/jitsi/jitsi-meet/languages","stargazers_url":"https://api.github.com/repos/jitsi/jitsi-meet/stargazers","contributors_url":"https://api.github.com/repos/jitsi/jitsi-meet/contributors","subscribers_url":"https://api.github.com/repos/jitsi/jitsi-meet/subscribers","subscription_url":"https://api.github.com/repos/jitsi/jitsi-meet/subscription","commits_url":"https://api.github.com/repos/jitsi/jitsi-meet/commits{/sha}","git_commits_url":"https://api.github.com/repos/jitsi/jitsi-meet/git/commits{/sha}","comments_url":"https://api.github.com/repos/jitsi/jitsi-meet/comments{/number}","issue_comment_url":"https://api.github.com/repos/jitsi/jitsi-meet/issues/comments{/number}","contents_url":"https://api.github.com/repos/jitsi/jitsi-meet/contents/{+path}","compare_url":"https://api.github.com/repos/jitsi/jitsi-meet/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jitsi/jitsi-meet/merges","archive_url":"https://api.github.com/repos/jitsi/jitsi-meet/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jitsi/jitsi-meet/downloads","issues_url":"https://api.github.com/repos/jitsi/jitsi-meet/issues{/number}","pulls_url":"https://api.github.com/repos/jitsi/jitsi-meet/pulls{/number}","milestones_url":"https://api.github.com/repos/jitsi/jitsi-meet/milestones{/number}","notifications_url":"https://api.github.com/repos/jitsi/jitsi-meet/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jitsi/jitsi-meet/labels{/name}","releases_url":"https://api.github.com/repos/jitsi/jitsi-meet/releases{/id}","deployments_url":"https://api.github.com/repos/jitsi/jitsi-meet/deployments","created_at":"2013-12-16T12:51:09Z","updated_at":"2017-09-01T14:46:27Z","pushed_at":"2017-09-01T17:43:15Z","git_url":"git://github.com/jitsi/jitsi-meet.git","ssh_url":"git@github.com:jitsi/jitsi-meet.git","clone_url":"https://github.com/jitsi/jitsi-meet.git","svn_url":"https://github.com/jitsi/jitsi-meet","homepage":"https://jitsi.org/meet","size":21437,"stargazers_count":1370,"watchers_count":1370,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":560,"mirror_url":null,"open_issues_count":314,"forks":560,"open_issues":314,"watchers":1370,"default_branch":"master"}},"base":{"label":"jitsi:master","ref":"master","sha":"328da08b3aa3032050762edc6691e5dcfe9c7901","user":{"login":"jitsi","id":3671647,"avatar_url":"https://avatars2.githubusercontent.com/u/3671647?v=4","gravatar_id":"","url":"https://api.github.com/users/jitsi","html_url":"https://github.com/jitsi","followers_url":"https://api.github.com/users/jitsi/followers","following_url":"https://api.github.com/users/jitsi/following{/other_user}","gists_url":"https://api.github.com/users/jitsi/gists{/gist_id}","starred_url":"https://api.github.com/users/jitsi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jitsi/subscriptions","organizations_url":"https://api.github.com/users/jitsi/orgs","repos_url":"https://api.github.com/users/jitsi/repos","events_url":"https://api.github.com/users/jitsi/events{/privacy}","received_events_url":"https://api.github.com/users/jitsi/received_events","type":"Organization","site_admin":false},"repo":{"id":15225670,"name":"jitsi-meet","full_name":"jitsi/jitsi-meet","owner":{"login":"jitsi","id":3671647,"avatar_url":"https://avatars2.githubusercontent.com/u/3671647?v=4","gravatar_id":"","url":"https://api.github.com/users/jitsi","html_url":"https://github.com/jitsi","followers_url":"https://api.github.com/users/jitsi/followers","following_url":"https://api.github.com/users/jitsi/following{/other_user}","gists_url":"https://api.github.com/users/jitsi/gists{/gist_id}","starred_url":"https://api.github.com/users/jitsi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jitsi/subscriptions","organizations_url":"https://api.github.com/users/jitsi/orgs","repos_url":"https://api.github.com/users/jitsi/repos","events_url":"https://api.github.com/users/jitsi/events{/privacy}","received_events_url":"https://api.github.com/users/jitsi/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/jitsi/jitsi-meet","description":"Jitsi Meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application.","fork":false,"url":"https://api.github.com/repos/jitsi/jitsi-meet","forks_url":"https://api.github.com/repos/jitsi/jitsi-meet/forks","keys_url":"https://api.github.com/repos/jitsi/jitsi-meet/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jitsi/jitsi-meet/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jitsi/jitsi-meet/teams","hooks_url":"https://api.github.com/repos/jitsi/jitsi-meet/hooks","issue_events_url":"https://api.github.com/repos/jitsi/jitsi-meet/issues/events{/number}","events_url":"https://api.github.com/repos/jitsi/jitsi-meet/events","assignees_url":"https://api.github.com/repos/jitsi/jitsi-meet/assignees{/user}","branches_url":"https://api.github.com/repos/jitsi/jitsi-meet/branches{/branch}","tags_url":"https://api.github.com/repos/jitsi/jitsi-meet/tags","blobs_url":"https://api.github.com/repos/jitsi/jitsi-meet/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jitsi/jitsi-meet/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jitsi/jitsi-meet/git/refs{/sha}","trees_url":"https://api.github.com/repos/jitsi/jitsi-meet/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jitsi/jitsi-meet/statuses/{sha}","languages_url":"https://api.github.com/repos/jitsi/jitsi-meet/languages","stargazers_url":"https://api.github.com/repos/jitsi/jitsi-meet/stargazers","contributors_url":"https://api.github.com/repos/jitsi/jitsi-meet/contributors","subscribers_url":"https://api.github.com/repos/jitsi/jitsi-meet/subscribers","subscription_url":"https://api.github.com/repos/jitsi/jitsi-meet/subscription","commits_url":"https://api.github.com/repos/jitsi/jitsi-meet/commits{/sha}","git_commits_url":"https://api.github.com/repos/jitsi/jitsi-meet/git/commits{/sha}","comments_url":"https://api.github.com/repos/jitsi/jitsi-meet/comments{/number}","issue_comment_url":"https://api.github.com/repos/jitsi/jitsi-meet/issues/comments{/number}","contents_url":"https://api.github.com/repos/jitsi/jitsi-meet/contents/{+path}","compare_url":"https://api.github.com/repos/jitsi/jitsi-meet/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jitsi/jitsi-meet/merges","archive_url":"https://api.github.com/repos/jitsi/jitsi-meet/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jitsi/jitsi-meet/downloads","issues_url":"https://api.github.com/repos/jitsi/jitsi-meet/issues{/number}","pulls_url":"https://api.github.com/repos/jitsi/jitsi-meet/pulls{/number}","milestones_url":"https://api.github.com/repos/jitsi/jitsi-meet/milestones{/number}","notifications_url":"https://api.github.com/repos/jitsi/jitsi-meet/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jitsi/jitsi-meet/labels{/name}","releases_url":"https://api.github.com/repos/jitsi/jitsi-meet/releases{/id}","deployments_url":"https://api.github.com/repos/jitsi/jitsi-meet/deployments","created_at":"2013-12-16T12:51:09Z","updated_at":"2017-09-01T14:46:27Z","pushed_at":"2017-09-01T17:43:15Z","git_url":"git://github.com/jitsi/jitsi-meet.git","ssh_url":"git@github.com:jitsi/jitsi-meet.git","clone_url":"https://github.com/jitsi/jitsi-meet.git","svn_url":"https://github.com/jitsi/jitsi-meet","homepage":"https://jitsi.org/meet","size":21437,"stargazers_count":1370,"watchers_count":1370,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":560,"mirror_url":null,"open_issues_count":314,"forks":560,"open_issues":314,"watchers":1370,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/jitsi/jitsi-meet/pulls/1950"},"html":{"href":"https://github.com/jitsi/jitsi-meet/pull/1950"},"issue":{"href":"https://api.github.com/repos/jitsi/jitsi-meet/issues/1950"},"comments":{"href":"https://api.github.com/repos/jitsi/jitsi-meet/issues/1950/comments"},"review_comments":{"href":"https://api.github.com/repos/jitsi/jitsi-meet/pulls/1950/comments"},"review_comment":{"href":"https://api.github.com/repos/jitsi/jitsi-meet/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/jitsi/jitsi-meet/pulls/1950/commits"},"statuses":{"href":"https://api.github.com/repos/jitsi/jitsi-meet/statuses/dd5c4a606bb86e9beb0130c3a53085f13537e816"}},"author_association":"OWNER"}}
{"actor":{"display_login":"virtuacoplenny"}}