This project is archived. Its data is read-only.
GitLab project based rooms
### Problem to solve As a GitLab user, Gitter doesn't allow me to create rooms linked to a GitLab project. If my account is linked to GitHub I can create a room that is linked to a GitHub project. Have the room linked to the correct project is important so that short links work (eg. `#44` links to issue 44). ### Proposal When signed in as a user linked to GitLab: - when **Creating a room**, suggest creating a room based on my GitLab projects - show a list of GitLab projects to choose from [A follow up issue](https://gitlab.com/gitlab-org/gitter/webapp/issues/2397) will be required to add support for personal projects which do not have a group (considered a [namespace in the GitLab API](https://docs.gitlab.com/ee/api/namespaces.html)) -> https://gitlab.com/gitlab-org/gitter/webapp/issues/2397 Current create room modal | Current `community-creation-github-projects-view.js` --- | --- ![](https://i.imgur.com/msiTAsp.png) | ![](https://i.imgur.com/Ha92Dt5.png) ### Tasks - [x] Backend prep - [x] Add equivalent `GL_PROJECT` wherever `GH_REPO` mentioned - [x] Create room modal - [x] Update room input to suggest GitLab projects that are part of the community selected - Create room docs: https://gitlab.com/gitlab-org/gitter/webapp/blob/develop/docs/rooms.md#room-creation - [x] Choose GitLab project in create community flow - [x] Add `my projects` heading and list GitLab projects to choose from - https://gitlab.com/gitlab-org/gitter/webapp/-/merge_requests/1800 - [ ] ~~Default project/repo issue/merge request decorations~~ - Not needed in this iteration, see https://gitlab.com/gitlab-org/gitter/webapp/issues/1445 #### Backend Prep `GH_REPO` references: - [ ] ~~[modules/collaborators/lib/collaborators-service.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/collaborators/lib/collaborators-service.js)~~ - Not necessary for this iteration -> https://gitlab.com/gitlab-org/gitter/webapp/issues/2410 - [ ] ~~[modules/collaborators/test/collaborators-service-test.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/collaborators/test/collaborators-service-test.js)~~ - [ ] ~~[modules/groups/lib/get-github-username-from-group.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/groups/lib/get-github-username-from-group.js)~~ - [ ] ~~[modules/groups/lib/group-uri-checker.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/groups/lib/group-uri-checker.js)~~ - [x] [modules/groups/test/group-service-test.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/groups/test/group-service-test.js) - https://gitlab.com/gitlab-org/gitter/webapp/-/merge_requests/1799 - [x] [modules/permissions/lib/add-invite-policy-factory.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/permissions/lib/add-invite-policy-factory.js) - [ ] ~~[modules/permissions/test/add-invite-policy-factory-test.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/permissions/test/add-invite-policy-factory-test.js)~~ - https://gitlab.com/gitlab-org/gitter/webapp/-/merge_requests/1786 - [x] [modules/permissions/lib/admin-discovery/index.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/permissions/lib/admin-discovery/index.js) - https://gitlab.com/gitlab-org/gitter/webapp/-/merge_requests/1789 - [x] [modules/permissions/lib/ensure-access-and-fetch-descriptor.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/permissions/lib/ensure-access-and-fetch-descriptor.js) - [x] [modules/permissions/test/ensure-access-and-fetch-descriptor-test.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/permissions/test/ensure-access-and-fetch-descriptor-test.js) - https://gitlab.com/gitlab-org/gitter/webapp/-/merge_requests/1789 - https://gitlab.com/gitlab-org/gitter/webapp/-/merge_requests/1799 - [x] [modules/permissions/lib/known-external-access/admin-filter.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/permissions/lib/known-external-access/admin-filter.js) - [x] [modules/permissions/test/known-external-access/admin-filter-test.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/permissions/test/known-external-access/admin-filter-test.js) - https://gitlab.com/gitlab-org/gitter/webapp/-/merge_requests/1796 - [x] [modules/permissions/lib/policies/gh-repo-policy-delegate.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/permissions/lib/policies/gh-repo-policy-delegate.js) - [ ] ~~[modules/permissions/test/policies/gh-repo-policy-delegate-test.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/permissions/test/policies/gh-repo-policy-delegate-test.js)~~ - https://gitlab.com/gitlab-org/gitter/webapp/-/merge_requests/1786 - [x] [modules/permissions/lib/policy-delegate-factory.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/permissions/lib/policy-delegate-factory.js) - https://gitlab.com/gitlab-org/gitter/webapp/-/merge_requests/1786 - [x] [modules/permissions/lib/policy-factory.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/permissions/lib/policy-factory.js) - https://gitlab.com/gitlab-org/gitter/webapp/-/merge_requests/1791 - [x] [modules/permissions/lib/security-descriptor-generator.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/permissions/lib/security-descriptor-generator.js) - https://gitlab.com/gitlab-org/gitter/webapp/-/merge_requests/1792 - [x] [modules/permissions/lib/security-descriptor-validator.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/permissions/lib/security-descriptor-validator.js) - [x] [modules/permissions/test/security-descriptor-write-validator-test.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/permissions/test/security-descriptor-write-validator-test.js) - https://gitlab.com/gitlab-org/gitter/webapp/-/merge_requests/1793 - [x] [modules/permissions/lib/security-descriptor/transform.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/permissions/lib/security-descriptor/transform.js) - [x] [modules/permissions/test/security-descriptor/transform-test.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/permissions/test/security-descriptor/transform-test.js) - https://gitlab.com/gitlab-org/gitter/webapp/-/merge_requests/1794 - [ ] ~~[modules/permissions/lib/security-descriptor/updater.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/permissions/lib/security-descriptor/updater.js)~~ - This is only used for updating the visibility of the group/room if we detect a change from GitHub - [ ] ~~[modules/permissions/test/known-external-access/admin-group-finder.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/permissions/test/known-external-access/admin-group-finder.js)~~ - [x] [modules/persistence/lib/schemas/security-descriptor-subdocument.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/persistence/lib/schemas/security-descriptor-subdocument.js) - https://gitlab.com/gitlab-org/gitter/webapp/-/merge_requests/1786 - https://gitlab.com/gitlab-org/gitter/webapp/-/merge_requests/1789 - [ ] ~~[modules/rooms/lib/room-repo-service.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/rooms/lib/room-repo-service.js)~~ - [ ] ~~[modules/rooms/test/room-repo-service-test.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/rooms/test/room-repo-service-test.js)~~ - Not necessary for this iteration -> https://gitlab.com/gitlab-org/gitter/webapp/issues/2413 - [x] [modules/rooms/lib/room-service.js](https://gitlab.com/gitlab-org/gitter/webapp/-/blob/cece04229f4fc3e9e933745becc30e7aaf615289/modules/rooms/lib/room-service.js) - https://gitlab.com/gitlab-org/gitter/webapp/-/merge_requests/1797
issue