{"action":"created","issue":{"url":"https://api.github.com/repos/composer/composer/issues/3765","labels_url":"https://api.github.com/repos/composer/composer/issues/3765/labels{/name}","comments_url":"https://api.github.com/repos/composer/composer/issues/3765/comments","events_url":"https://api.github.com/repos/composer/composer/issues/3765/events","html_url":"https://github.com/composer/composer/pull/3765","id":58428283,"number":3765,"title":"Introduce GitLab Driver","user":{"login":"GromNaN","id":400034,"avatar_url":"https://avatars.githubusercontent.com/u/400034?v=3","gravatar_id":"","url":"https://api.github.com/users/GromNaN","html_url":"https://github.com/GromNaN","followers_url":"https://api.github.com/users/GromNaN/followers","following_url":"https://api.github.com/users/GromNaN/following{/other_user}","gists_url":"https://api.github.com/users/GromNaN/gists{/gist_id}","starred_url":"https://api.github.com/users/GromNaN/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GromNaN/subscriptions","organizations_url":"https://api.github.com/users/GromNaN/orgs","repos_url":"https://api.github.com/users/GromNaN/repos","events_url":"https://api.github.com/users/GromNaN/events{/privacy}","received_events_url":"https://api.github.com/users/GromNaN/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":12,"created_at":"2015-02-21T00:09:14Z","updated_at":"2015-04-02T13:47:24Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/composer/composer/pulls/3765","html_url":"https://github.com/composer/composer/pull/3765","diff_url":"https://github.com/composer/composer/pull/3765.diff","patch_url":"https://github.com/composer/composer/pull/3765.patch"},"body":"Following the work of @henrikbjorn on https://github.com/composer/composer/pull/3369 to build a GitLab repository driver.\r\n\r\nI've tested with a simple project like the following, and on a Satis instance with 150 large repositories. The performance impact is rather huge! \r\n\r\n```json\r\n# composer.json\r\n{\r\n    \"repositories\": [\r\n        { \"type\": \"gitlab\", \"url\": \"http://gitlab.example.com/mirror/symfony_http_foundation\" }\r\n    ],\r\n    \"config\": {\r\n        \"gitlab-domains\": [\"gitlab.example.com\"]\r\n    },\r\n    \"require\": {\r\n        \"symfony/http-foundation\": \"2.6.*\"\r\n    }\r\n}\r\n```\r\n\r\n* The config `gitlab-domains` is required for custom GitLab servers. It is set to [**gitlab.com**](https://about.gitlab.com/gitlab-com/) by default for people using this host.\r\n* The repository type \"gitlab\" is optional here. If the the type is `vcs`, the repository is properly detected based on the gitlab domains configuration.\r\n* The authentication token is asked interactively and stored in `auth.json`. This token is required to scan the repository and to download archives.\r\n\r\n```\r\n# ~/.composer/auth.json\r\n{\r\n    \"gitlab-tokens\": {\r\n        \"gitlab.example.com\": \"abcdjefghijklmnopqrstuvwxyz\"\r\n    }\r\n}\r\n```\r\n\r\n* It makes a real boost in terms of repository scanning as it makes only 3 API calls when everything is already in the cache : one for the project infos, and 2 others to list branches and tags. All the `composer.json` files are stored in the cache.\r\n\r\n<del>**Side note:** I've used [Prophecy](https://github.com/phpspec/prophecy) for unit tests, [it comes out-of-the box with PHPUnit 4.5](http://thephp.cc/news/2015/02/phpunit-4-5-and-prophecy). But that imposes to upgrade the required version of `phpunit/phpunit`. https://github.com/composer/composer/pull/3766</dev>"},"comment":{"url":"https://api.github.com/repos/composer/composer/issues/comments/88908096","html_url":"https://github.com/composer/composer/pull/3765#issuecomment-88908096","issue_url":"https://api.github.com/repos/composer/composer/issues/3765","id":88908096,"user":{"login":"roshangautam","id":978347,"avatar_url":"https://avatars.githubusercontent.com/u/978347?v=3","gravatar_id":"","url":"https://api.github.com/users/roshangautam","html_url":"https://github.com/roshangautam","followers_url":"https://api.github.com/users/roshangautam/followers","following_url":"https://api.github.com/users/roshangautam/following{/other_user}","gists_url":"https://api.github.com/users/roshangautam/gists{/gist_id}","starred_url":"https://api.github.com/users/roshangautam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roshangautam/subscriptions","organizations_url":"https://api.github.com/users/roshangautam/orgs","repos_url":"https://api.github.com/users/roshangautam/repos","events_url":"https://api.github.com/users/roshangautam/events{/privacy}","received_events_url":"https://api.github.com/users/roshangautam/received_events","type":"User","site_admin":false},"created_at":"2015-04-02T13:47:24Z","updated_at":"2015-04-02T13:47:24Z","body":"@GromNaN I added the AllowEncodedSlashes NoDecode to my vhost configuration file but now am getting project not found error. Any idea ?"}}