Giter VIP home page Giter VIP logo

gitlab-teams's Introduction

gitlab-teams

Build Status Netlify Status

This project was initially created to build our own groups of users (team) without relying on GitLab groups and see live activity (Merge Requests) in these teams. It has evolved since then and may need to be renamed to better fit all the features it now provides...

Note: This project is only a frontend app built with Vue and some RxJS magic. This is still a WIP: No error handling, no tests, etc, but it works pretty well for now.

At startup, you will be asked to fill a form with your Personal Access Token and a GitLab URL in the settings page:

  • Personal Access Token is the one you can get from your Gitlab instance under /profile/personal_access_tokens. Create a new one with at least api and read_user scopes.
  • Gitlab URL is... your Gitlab instance URL. It is used to build the API endpoints to call.

These two settings are stored in your browser local storage and are never sent anywhere. They are just used to call GitLab API on your behalf.

Once set, you will be able to create and navigate in your teams like a boss 💪. Merge requests will update automatically, and also pipelines, issues, todos, etc

dashboard

Project setup

npm install

Compiles and hot-reloads for development

npm run serve

Compiles and minifies for production

npm run build

Lints and fixes files

npm run lint

Docker

Docker image is built on commit and available on Docker Hub.

docker run -it -p 8888:80 --rm --name gitlab-teams chamerling/gitlab-teams

Then open http://localhost:8888 and enjoy.

License

MIT

gitlab-teams's People

Contributors

aduprat avatar cdterry87 avatar chamerling avatar franciscoemanuel avatar lindgr3n avatar madhupolu avatar martijnvadrichem avatar nimitbhargava avatar npa-old-deleted avatar rainerkent avatar rocksheep avatar saifabusaleh avatar sibinthomas007 avatar tuananhp-1844 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

gitlab-teams's Issues

Be able to edit a team

For now to add/remove members of a team, we have to delete the team and create it again. Current issue is about adding the team edition feature:

  1. Add the option in the team dropdown in the left sidebar
  2. Implement the edit component which reuse the create component

Display pipeline jobs

https://ci.linagora.com/api/v4/projects/376/pipelines/28379/jobs

[
  {
    "id":73546,
    "status":"success",
    "stage":"prepare",
    "name":"prepare",
    "ref":"2594",
    "tag":false,
    "coverage":null,
    "created_at":"2019-01-29T17:01:51.161Z",
    "started_at":"2019-01-29T17:01:53.060Z",
    "finished_at":"2019-01-29T17:03:34.979Z",
    "duration":101.919005,
    "user":{
      "id":13,
      "name":"Christophe HAMERLING",
      "username":"chamerling",
      "state":"active",
      "avatar_url":"https://secure.gravatar.com/avatar/04ce8cafc663d2979741f514eb3a9542?s=80\u0026d=identicon",
      "web_url":"https://ci.linagora.com/chamerling",
      "created_at":"2016-10-20T14:26:11.477Z",
      "bio":"☀️",
      "location":"Montpellier - FR",
      "skype":"",
      "linkedin":"",
      "twitter":"@chamerling",
      "website_url":"",
      "organization":"Linagora"
    },
    "commit":{
      "id":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "short_id":"ae7ead82",
      "title":"#2594 Add the people module in core",
      "created_at":"2019-01-29T17:00:00.000Z",
      "parent_ids":[
        "167d034788cd84550638a785e9af4d74f0444b22"
      ],
      "message":"#2594 Add the people module in core\n",
      "author_name":"Christophe HAMERLING",
      "author_email":"[email protected]",
      "authored_date":"2019-01-29T17:00:00.000Z",
      "committer_name":"Christophe HAMERLING",
      "committer_email":"[email protected]",
      "committed_date":"2019-01-29T17:00:00.000Z"
    },
    "pipeline":{
      "id":28379,
      "sha":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "ref":"2594",
      "status":"failed"
    },
    "runner":{
      "id":46,
      "description":"gitlab-runner-001 / autoscale / SBG3",
      "ip_address":"54.36.8.1",
      "active":true,
      "is_shared":true,
      "name":"gitlab-runner",
      "online":true,
      "status":"online"
    },
    "artifacts_expire_at":null
  },
  {
    "id":73547,
    "status":"success",
    "stage":"linters",
    "name":"linters",
    "ref":"2594",
    "tag":false,
    "coverage":null,
    "created_at":"2019-01-29T17:01:51.177Z",
    "started_at":"2019-01-29T17:03:38.065Z",
    "finished_at":"2019-01-29T17:05:25.393Z",
    "duration":107.328885,
    "user":{
      "id":13,
      "name":"Christophe HAMERLING",
      "username":"chamerling",
      "state":"active",
      "avatar_url":"https://secure.gravatar.com/avatar/04ce8cafc663d2979741f514eb3a9542?s=80\u0026d=identicon",
      "web_url":"https://ci.linagora.com/chamerling",
      "created_at":"2016-10-20T14:26:11.477Z",
      "bio":"☀️",
      "location":"Montpellier - FR",
      "skype":"",
      "linkedin":"",
      "twitter":"@chamerling",
      "website_url":"",
      "organization":"Linagora"
    },
    "commit":{
      "id":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "short_id":"ae7ead82",
      "title":"#2594 Add the people module in core",
      "created_at":"2019-01-29T17:00:00.000Z",
      "parent_ids":[
        "167d034788cd84550638a785e9af4d74f0444b22"
      ],
      "message":"#2594 Add the people module in core\n",
      "author_name":"Christophe HAMERLING",
      "author_email":"[email protected]",
      "authored_date":"2019-01-29T17:00:00.000Z",
      "committer_name":"Christophe HAMERLING",
      "committer_email":"[email protected]",
      "committed_date":"2019-01-29T17:00:00.000Z"
    },
    "pipeline":{
      "id":28379,
      "sha":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "ref":"2594",
      "status":"failed"
    },
    "runner":{
      "id":46,
      "description":"gitlab-runner-001 / autoscale / SBG3",
      "ip_address":"54.36.8.1",
      "active":true,
      "is_shared":true,
      "name":"gitlab-runner",
      "online":true,
      "status":"online"
    },
    "artifacts_expire_at":null
  },
  {
    "id":73548,
    "status":"success",
    "stage":"linters",
    "name":"check_author",
    "ref":"2594",
    "tag":false,
    "coverage":null,
    "created_at":"2019-01-29T17:01:51.190Z",
    "started_at":"2019-01-29T17:03:37.540Z",
    "finished_at":"2019-01-29T17:03:54.465Z",
    "duration":16.924887,
    "user":{
      "id":13,
      "name":"Christophe HAMERLING",
      "username":"chamerling",
      "state":"active",
      "avatar_url":"https://secure.gravatar.com/avatar/04ce8cafc663d2979741f514eb3a9542?s=80\u0026d=identicon",
      "web_url":"https://ci.linagora.com/chamerling",
      "created_at":"2016-10-20T14:26:11.477Z",
      "bio":"☀️",
      "location":"Montpellier - FR",
      "skype":"",
      "linkedin":"",
      "twitter":"@chamerling",
      "website_url":"",
      "organization":"Linagora"
    },
    "commit":{
      "id":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "short_id":"ae7ead82",
      "title":"#2594 Add the people module in core",
      "created_at":"2019-01-29T17:00:00.000Z",
      "parent_ids":[
        "167d034788cd84550638a785e9af4d74f0444b22"
      ],
      "message":"#2594 Add the people module in core\n",
      "author_name":"Christophe HAMERLING",
      "author_email":"[email protected]",
      "authored_date":"2019-01-29T17:00:00.000Z",
      "committer_name":"Christophe HAMERLING",
      "committer_email":"[email protected]",
      "committed_date":"2019-01-29T17:00:00.000Z"
    },
    "pipeline":{
      "id":28379,
      "sha":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "ref":"2594",
      "status":"failed"
    },
    "runner":{
      "id":48,
      "description":"Curl Runner",
      "ip_address":"217.182.84.185",
      "active":true,
      "is_shared":true,
      "name":"gitlab-runner",
      "online":true,
      "status":"online"
    },
    "artifacts_expire_at":null
  },
  {
    "id":73549,
    "status":"success",
    "stage":"test",
    "name":"frontend-test",
    "ref":"2594",
    "tag":false,
    "coverage":null,
    "created_at":"2019-01-29T17:01:51.205Z",
    "started_at":"2019-01-29T17:05:26.074Z",
    "finished_at":"2019-01-29T17:06:41.169Z",
    "duration":75.095253,
    "user":{
      "id":13,
      "name":"Christophe HAMERLING",
      "username":"chamerling",
      "state":"active",
      "avatar_url":"https://secure.gravatar.com/avatar/04ce8cafc663d2979741f514eb3a9542?s=80\u0026d=identicon",
      "web_url":"https://ci.linagora.com/chamerling",
      "created_at":"2016-10-20T14:26:11.477Z",
      "bio":"☀️",
      "location":"Montpellier - FR",
      "skype":"",
      "linkedin":"",
      "twitter":"@chamerling",
      "website_url":"",
      "organization":"Linagora"
    },
    "commit":{
      "id":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "short_id":"ae7ead82",
      "title":"#2594 Add the people module in core",
      "created_at":"2019-01-29T17:00:00.000Z",
      "parent_ids":[
        "167d034788cd84550638a785e9af4d74f0444b22"
      ],
      "message":"#2594 Add the people module in core\n",
      "author_name":"Christophe HAMERLING",
      "author_email":"[email protected]",
      "authored_date":"2019-01-29T17:00:00.000Z",
      "committer_name":"Christophe HAMERLING",
      "committer_email":"[email protected]",
      "committed_date":"2019-01-29T17:00:00.000Z"
    },
    "pipeline":{
      "id":28379,
      "sha":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "ref":"2594",
      "status":"failed"
    },
    "runner":{
      "id":46,
      "description":"gitlab-runner-001 / autoscale / SBG3",
      "ip_address":"54.36.8.1",
      "active":true,
      "is_shared":true,
      "name":"gitlab-runner",
      "online":true,
      "status":"online"
    },
    "artifacts_expire_at":null
  },
  {
    "id":73550,
    "status":"success",
    "stage":"test",
    "name":"modules-frontend-test",
    "ref":"2594",
    "tag":false,
    "coverage":null,
    "created_at":"2019-01-29T17:01:51.238Z",
    "started_at":"2019-01-29T17:05:26.173Z",
    "finished_at":"2019-01-29T17:08:35.229Z",
    "duration":189.056154,
    "user":{
      "id":13,
      "name":"Christophe HAMERLING",
      "username":"chamerling",
      "state":"active",
      "avatar_url":"https://secure.gravatar.com/avatar/04ce8cafc663d2979741f514eb3a9542?s=80\u0026d=identicon",
      "web_url":"https://ci.linagora.com/chamerling",
      "created_at":"2016-10-20T14:26:11.477Z",
      "bio":"☀️",
      "location":"Montpellier - FR",
      "skype":"",
      "linkedin":"",
      "twitter":"@chamerling",
      "website_url":"",
      "organization":"Linagora"
    },
    "commit":{
      "id":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "short_id":"ae7ead82",
      "title":"#2594 Add the people module in core",
      "created_at":"2019-01-29T17:00:00.000Z",
      "parent_ids":[
        "167d034788cd84550638a785e9af4d74f0444b22"
      ],
      "message":"#2594 Add the people module in core\n",
      "author_name":"Christophe HAMERLING",
      "author_email":"[email protected]",
      "authored_date":"2019-01-29T17:00:00.000Z",
      "committer_name":"Christophe HAMERLING",
      "committer_email":"[email protected]",
      "committed_date":"2019-01-29T17:00:00.000Z"
    },
    "pipeline":{
      "id":28379,
      "sha":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "ref":"2594",
      "status":"failed"
    },
    "runner":{
      "id":46,
      "description":"gitlab-runner-001 / autoscale / SBG3",
      "ip_address":"54.36.8.1",
      "active":true,
      "is_shared":true,
      "name":"gitlab-runner",
      "online":true,
      "status":"online"
    },
    "artifacts_expire_at":null
  },
  {
    "id":73551,
    "status":"success",
    "stage":"test",
    "name":"unit-backend-test",
    "ref":"2594",
    "tag":false,
    "coverage":null,
    "created_at":"2019-01-29T17:01:51.252Z",
    "started_at":"2019-01-29T17:05:26.926Z",
    "finished_at":"2019-01-29T17:10:27.311Z",
    "duration":300.385415,
    "user":{
      "id":13,
      "name":"Christophe HAMERLING",
      "username":"chamerling",
      "state":"active",
      "avatar_url":"https://secure.gravatar.com/avatar/04ce8cafc663d2979741f514eb3a9542?s=80\u0026d=identicon",
      "web_url":"https://ci.linagora.com/chamerling",
      "created_at":"2016-10-20T14:26:11.477Z",
      "bio":"☀️",
      "location":"Montpellier - FR",
      "skype":"",
      "linkedin":"",
      "twitter":"@chamerling",
      "website_url":"",
      "organization":"Linagora"
    },
    "commit":{
      "id":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "short_id":"ae7ead82",
      "title":"#2594 Add the people module in core",
      "created_at":"2019-01-29T17:00:00.000Z",
      "parent_ids":[
        "167d034788cd84550638a785e9af4d74f0444b22"
      ],
      "message":"#2594 Add the people module in core\n",
      "author_name":"Christophe HAMERLING",
      "author_email":"[email protected]",
      "authored_date":"2019-01-29T17:00:00.000Z",
      "committer_name":"Christophe HAMERLING",
      "committer_email":"[email protected]",
      "committed_date":"2019-01-29T17:00:00.000Z"
    },
    "pipeline":{
      "id":28379,
      "sha":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "ref":"2594",
      "status":"failed"
    },
    "runner":{
      "id":46,
      "description":"gitlab-runner-001 / autoscale / SBG3",
      "ip_address":"54.36.8.1",
      "active":true,
      "is_shared":true,
      "name":"gitlab-runner",
      "online":true,
      "status":"online"
    },
    "artifacts_expire_at":null
  },
  {
    "id":73552,
    "status":"success",
    "stage":"test",
    "name":"modules-unit-backend-test",
    "ref":"2594",
    "tag":false,
    "coverage":null,
    "created_at":"2019-01-29T17:01:51.266Z",
    "started_at":"2019-01-29T17:05:27.003Z",
    "finished_at":"2019-01-29T17:07:02.746Z",
    "duration":95.742143,
    "user":{
      "id":13,
      "name":"Christophe HAMERLING",
      "username":"chamerling",
      "state":"active",
      "avatar_url":"https://secure.gravatar.com/avatar/04ce8cafc663d2979741f514eb3a9542?s=80\u0026d=identicon",
      "web_url":"https://ci.linagora.com/chamerling",
      "created_at":"2016-10-20T14:26:11.477Z",
      "bio":"☀️",
      "location":"Montpellier - FR",
      "skype":"",
      "linkedin":"",
      "twitter":"@chamerling",
      "website_url":"",
      "organization":"Linagora"
    },
    "commit":{
      "id":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "short_id":"ae7ead82",
      "title":"#2594 Add the people module in core",
      "created_at":"2019-01-29T17:00:00.000Z",
      "parent_ids":[
        "167d034788cd84550638a785e9af4d74f0444b22"
      ],
      "message":"#2594 Add the people module in core\n",
      "author_name":"Christophe HAMERLING",
      "author_email":"[email protected]",
      "authored_date":"2019-01-29T17:00:00.000Z",
      "committer_name":"Christophe HAMERLING",
      "committer_email":"[email protected]",
      "committed_date":"2019-01-29T17:00:00.000Z"
    },
    "pipeline":{
      "id":28379,
      "sha":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "ref":"2594",
      "status":"failed"
    },
    "runner":{
      "id":46,
      "description":"gitlab-runner-001 / autoscale / SBG3",
      "ip_address":"54.36.8.1",
      "active":true,
      "is_shared":true,
      "name":"gitlab-runner",
      "online":true,
      "status":"online"
    },
    "artifacts_expire_at":null
  },
  {
    "id":73553,
    "status":"success",
    "stage":"test",
    "name":"unit-storage-test",
    "ref":"2594",
    "tag":false,
    "coverage":null,
    "created_at":"2019-01-29T17:01:51.284Z",
    "started_at":"2019-01-29T17:05:27.084Z",
    "finished_at":"2019-01-29T17:09:32.170Z",
    "duration":245.086198,
    "user":{
      "id":13,
      "name":"Christophe HAMERLING",
      "username":"chamerling",
      "state":"active",
      "avatar_url":"https://secure.gravatar.com/avatar/04ce8cafc663d2979741f514eb3a9542?s=80\u0026d=identicon",
      "web_url":"https://ci.linagora.com/chamerling",
      "created_at":"2016-10-20T14:26:11.477Z",
      "bio":"☀️",
      "location":"Montpellier - FR",
      "skype":"",
      "linkedin":"",
      "twitter":"@chamerling",
      "website_url":"",
      "organization":"Linagora"
    },
    "commit":{
      "id":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "short_id":"ae7ead82",
      "title":"#2594 Add the people module in core",
      "created_at":"2019-01-29T17:00:00.000Z",
      "parent_ids":[
        "167d034788cd84550638a785e9af4d74f0444b22"
      ],
      "message":"#2594 Add the people module in core\n",
      "author_name":"Christophe HAMERLING",
      "author_email":"[email protected]",
      "authored_date":"2019-01-29T17:00:00.000Z",
      "committer_name":"Christophe HAMERLING",
      "committer_email":"[email protected]",
      "committed_date":"2019-01-29T17:00:00.000Z"
    },
    "pipeline":{
      "id":28379,
      "sha":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "ref":"2594",
      "status":"failed"
    },
    "runner":{
      "id":46,
      "description":"gitlab-runner-001 / autoscale / SBG3",
      "ip_address":"54.36.8.1",
      "active":true,
      "is_shared":true,
      "name":"gitlab-runner",
      "online":true,
      "status":"online"
    },
    "artifacts_expire_at":null
  },
  {
    "id":73554,
    "status":"failed",
    "stage":"test",
    "name":"modules-midway-test",
    "ref":"2594",
    "tag":false,
    "coverage":null,
    "created_at":"2019-01-29T17:01:51.306Z",
    "started_at":"2019-01-29T17:05:27.164Z",
    "finished_at":"2019-01-29T17:21:18.654Z",
    "duration":951.490203,
    "user":{
      "id":13,
      "name":"Christophe HAMERLING",
      "username":"chamerling",
      "state":"active",
      "avatar_url":"https://secure.gravatar.com/avatar/04ce8cafc663d2979741f514eb3a9542?s=80\u0026d=identicon",
      "web_url":"https://ci.linagora.com/chamerling",
      "created_at":"2016-10-20T14:26:11.477Z",
      "bio":"☀️",
      "location":"Montpellier - FR",
      "skype":"",
      "linkedin":"",
      "twitter":"@chamerling",
      "website_url":"",
      "organization":"Linagora"
    },
    "commit":{
      "id":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "short_id":"ae7ead82",
      "title":"#2594 Add the people module in core",
      "created_at":"2019-01-29T17:00:00.000Z",
      "parent_ids":[
        "167d034788cd84550638a785e9af4d74f0444b22"
      ],
      "message":"#2594 Add the people module in core\n",
      "author_name":"Christophe HAMERLING",
      "author_email":"[email protected]",
      "authored_date":"2019-01-29T17:00:00.000Z",
      "committer_name":"Christophe HAMERLING",
      "committer_email":"[email protected]",
      "committed_date":"2019-01-29T17:00:00.000Z"
    },
    "pipeline":{
      "id":28379,
      "sha":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "ref":"2594",
      "status":"failed"
    },
    "runner":{
      "id":46,
      "description":"gitlab-runner-001 / autoscale / SBG3",
      "ip_address":"54.36.8.1",
      "active":true,
      "is_shared":true,
      "name":"gitlab-runner",
      "online":true,
      "status":"online"
    },
    "artifacts_expire_at":null
  },
  {
    "id":73555,
    "status":"success",
    "stage":"test",
    "name":"midway-backend-test",
    "ref":"2594",
    "tag":false,
    "coverage":null,
    "created_at":"2019-01-29T17:01:51.334Z",
    "started_at":"2019-01-29T17:05:27.253Z",
    "finished_at":"2019-01-29T17:32:09.648Z",
    "duration":1602.39509,
    "user":{
      "id":13,
      "name":"Christophe HAMERLING",
      "username":"chamerling",
      "state":"active",
      "avatar_url":"https://secure.gravatar.com/avatar/04ce8cafc663d2979741f514eb3a9542?s=80\u0026d=identicon",
      "web_url":"https://ci.linagora.com/chamerling",
      "created_at":"2016-10-20T14:26:11.477Z",
      "bio":"☀️",
      "location":"Montpellier - FR",
      "skype":"",
      "linkedin":"",
      "twitter":"@chamerling",
      "website_url":"",
      "organization":"Linagora"
    },
    "commit":{
      "id":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "short_id":"ae7ead82",
      "title":"#2594 Add the people module in core",
      "created_at":"2019-01-29T17:00:00.000Z",
      "parent_ids":[
        "167d034788cd84550638a785e9af4d74f0444b22"
      ],
      "message":"#2594 Add the people module in core\n",
      "author_name":"Christophe HAMERLING",
      "author_email":"[email protected]",
      "authored_date":"2019-01-29T17:00:00.000Z",
      "committer_name":"Christophe HAMERLING",
      "committer_email":"[email protected]",
      "committed_date":"2019-01-29T17:00:00.000Z"
    },
    "pipeline":{
      "id":28379,
      "sha":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "ref":"2594",
      "status":"failed"
    },
    "runner":{
      "id":46,
      "description":"gitlab-runner-001 / autoscale / SBG3",
      "ip_address":"54.36.8.1",
      "active":true,
      "is_shared":true,
      "name":"gitlab-runner",
      "online":true,
      "status":"online"
    },
    "artifacts_expire_at":null
  },
  {
    "id":73556,
    "status":"skipped",
    "stage":"swagger",
    "name":"swagger",
    "ref":"2594",
    "tag":false,
    "coverage":null,
    "created_at":"2019-01-29T17:01:51.375Z",
    "started_at":null,
    "finished_at":null,
    "duration":null,
    "user":{
      "id":13,
      "name":"Christophe HAMERLING",
      "username":"chamerling",
      "state":"active",
      "avatar_url":"https://secure.gravatar.com/avatar/04ce8cafc663d2979741f514eb3a9542?s=80\u0026d=identicon",
      "web_url":"https://ci.linagora.com/chamerling",
      "created_at":"2016-10-20T14:26:11.477Z",
      "bio":"☀️",
      "location":"Montpellier - FR",
      "skype":"",
      "linkedin":"",
      "twitter":"@chamerling",
      "website_url":"",
      "organization":"Linagora"
    },
    "commit":{
      "id":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "short_id":"ae7ead82",
      "title":"#2594 Add the people module in core",
      "created_at":"2019-01-29T17:00:00.000Z",
      "parent_ids":[
        "167d034788cd84550638a785e9af4d74f0444b22"
      ],
      "message":"#2594 Add the people module in core\n",
      "author_name":"Christophe HAMERLING",
      "author_email":"[email protected]",
      "authored_date":"2019-01-29T17:00:00.000Z",
      "committer_name":"Christophe HAMERLING",
      "committer_email":"[email protected]",
      "committed_date":"2019-01-29T17:00:00.000Z"
    },
    "pipeline":{
      "id":28379,
      "sha":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "ref":"2594",
      "status":"failed"
    },
    "runner":null,
    "artifacts_expire_at":null
  },
  {
    "id":73638,
    "status":"failed",
    "stage":"test",
    "name":"modules-midway-test",
    "ref":"2594",
    "tag":false,
    "coverage":null,
    "created_at":"2019-01-30T08:21:10.716Z",
    "started_at":"2019-01-30T08:21:12.190Z",
    "finished_at":"2019-01-30T08:37:05.965Z",
    "duration":953.774894,
    "user":{
      "id":13,
      "name":"Christophe HAMERLING",
      "username":"chamerling",
      "state":"active",
      "avatar_url":"https://secure.gravatar.com/avatar/04ce8cafc663d2979741f514eb3a9542?s=80\u0026d=identicon",
      "web_url":"https://ci.linagora.com/chamerling",
      "created_at":"2016-10-20T14:26:11.477Z",
      "bio":"☀️",
      "location":"Montpellier - FR",
      "skype":"",
      "linkedin":"",
      "twitter":"@chamerling",
      "website_url":"",
      "organization":"Linagora"
    },
    "commit":{
      "id":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "short_id":"ae7ead82",
      "title":"#2594 Add the people module in core",
      "created_at":"2019-01-29T17:00:00.000Z",
      "parent_ids":[
        "167d034788cd84550638a785e9af4d74f0444b22"
      ],
      "message":"#2594 Add the people module in core\n",
      "author_name":"Christophe HAMERLING",
      "author_email":"[email protected]",
      "authored_date":"2019-01-29T17:00:00.000Z",
      "committer_name":"Christophe HAMERLING",
      "committer_email":"[email protected]",
      "committed_date":"2019-01-29T17:00:00.000Z"
    },
    "pipeline":{
      "id":28379,
      "sha":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "ref":"2594",
      "status":"failed"
    },
    "runner":{
      "id":46,
      "description":"gitlab-runner-001 / autoscale / SBG3",
      "ip_address":"54.36.8.1",
      "active":true,
      "is_shared":true,
      "name":"gitlab-runner",
      "online":true,
      "status":"online"
    },
    "artifacts_expire_at":null
  },
  {
    "id":73644,
    "status":"failed",
    "stage":"test",
    "name":"modules-midway-test",
    "ref":"2594",
    "tag":false,
    "coverage":null,
    "created_at":"2019-01-30T08:44:49.240Z",
    "started_at":"2019-01-30T08:44:51.286Z",
    "finished_at":"2019-01-30T08:59:14.997Z",
    "duration":863.71093,
    "user":{
      "id":13,
      "name":"Christophe HAMERLING",
      "username":"chamerling",
      "state":"active",
      "avatar_url":"https://secure.gravatar.com/avatar/04ce8cafc663d2979741f514eb3a9542?s=80\u0026d=identicon",
      "web_url":"https://ci.linagora.com/chamerling",
      "created_at":"2016-10-20T14:26:11.477Z",
      "bio":"☀️",
      "location":"Montpellier - FR",
      "skype":"",
      "linkedin":"",
      "twitter":"@chamerling",
      "website_url":"",
      "organization":"Linagora"
    },
    "commit":{
      "id":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "short_id":"ae7ead82",
      "title":"#2594 Add the people module in core",
      "created_at":"2019-01-29T17:00:00.000Z",
      "parent_ids":[
        "167d034788cd84550638a785e9af4d74f0444b22"
      ],
      "message":"#2594 Add the people module in core\n",
      "author_name":"Christophe HAMERLING",
      "author_email":"[email protected]",
      "authored_date":"2019-01-29T17:00:00.000Z",
      "committer_name":"Christophe HAMERLING",
      "committer_email":"[email protected]",
      "committed_date":"2019-01-29T17:00:00.000Z"
    },
    "pipeline":{
      "id":28379,
      "sha":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "ref":"2594",
      "status":"failed"
    },
    "runner":{
      "id":46,
      "description":"gitlab-runner-001 / autoscale / SBG3",
      "ip_address":"54.36.8.1",
      "active":true,
      "is_shared":true,
      "name":"gitlab-runner",
      "online":true,
      "status":"online"
    },
    "artifacts_expire_at":null
  },
  {
    "id":73731,
    "status":"failed",
    "stage":"test",
    "name":"modules-midway-test",
    "ref":"2594",
    "tag":false,
    "coverage":null,
    "created_at":"2019-01-30T12:53:30.763Z",
    "started_at":"2019-01-30T12:53:31.430Z",
    "finished_at":"2019-01-30T13:06:41.862Z",
    "duration":790.431259,
    "user":{
      "id":13,
      "name":"Christophe HAMERLING",
      "username":"chamerling",
      "state":"active",
      "avatar_url":"https://secure.gravatar.com/avatar/04ce8cafc663d2979741f514eb3a9542?s=80\u0026d=identicon",
      "web_url":"https://ci.linagora.com/chamerling",
      "created_at":"2016-10-20T14:26:11.477Z",
      "bio":"☀️",
      "location":"Montpellier - FR",
      "skype":"",
      "linkedin":"",
      "twitter":"@chamerling",
      "website_url":"",
      "organization":"Linagora"
    },
    "commit":{
      "id":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "short_id":"ae7ead82",
      "title":"#2594 Add the people module in core",
      "created_at":"2019-01-29T17:00:00.000Z",
      "parent_ids":[
        "167d034788cd84550638a785e9af4d74f0444b22"
      ],
      "message":"#2594 Add the people module in core\n",
      "author_name":"Christophe HAMERLING",
      "author_email":"[email protected]",
      "authored_date":"2019-01-29T17:00:00.000Z",
      "committer_name":"Christophe HAMERLING",
      "committer_email":"[email protected]",
      "committed_date":"2019-01-29T17:00:00.000Z"
    },
    "pipeline":{
      "id":28379,
      "sha":"ae7ead82917191bbdf480cda560db5ad28b47a2c",
      "ref":"2594",
      "status":"failed"
    },
    "runner":{
      "id":46,
      "description":"gitlab-runner-001 / autoscale / SBG3",
      "ip_address":"54.36.8.1",
      "active":true,
      "is_shared":true,
      "name":"gitlab-runner",
      "online":true,
      "status":"online"
    },
    "artifacts_expire_at":null
  }
]

List all GitLab runners

Such feature is already available in Gitlab CE, but it's a necessary endpoint for the following tasks on this epic.

DoD:

  • an administrator of Gitlab should have a list of runners while entering the Runners section in the left sidebar (item must be added in the left sidebar)
  • a common user should have a message telling that he doesn't have enough rights for this section while entering the Runners section. Or, the Runners item should not be displayed in such case

White Mode / Dark mode support

Add a toggle button to switch white/dark mode (topbar remains orange in all modes). Vuetify support this.

As a result, the current mode is stored in the localstorage, then it is loaded on application startup.

Runner metrics

Depends on #41

While displaying the list of runners, the administrator should be able to extra graphs on the runner metrics:

  • time duration by projects
  • failed ratio by projecty

Notification when assign or re-assigne a merge request.

Hello,

In my team we have been looking for a way to have desktop notifications when we are assigned a Merge Request. Your tool is interesting to us, and I think it would be a good idea to add this mechanism.

Thank you

Open user profile on click

Add @click handler on user avatar in the popover card. Click on the avatar must open the user profile page #/user/:username

Capture d’écran 2019-09-27 à 15 14 22

Add link to runners

Depends on #41

While displaying the list of runners, the administrator should be able to access to the runner in Gitlab by clicking the runner component

Do not show runners if user is not admin

/user endpoint is called and returns user profile with is_admin: true/false property which is stored in state.connectedUser. This must be checked to not check for runners and not display them since nothing will never happen in runners if the user is not an admin.

cc @aduprat

Clean all warning

When npm run serve or when building, there are errors coming from linters. The goal of this issue is to clean the code to not have errors anymore

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.