Add support for yarn package registry
Problem to solve
Current yarn users can't use our NPM registry
Target audience
-
Delaney, Development Team Lead, https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas#delaney-development-team-lead
-
Sasha, Software Developer, https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas#sasha-software-developer
Further details
I've tried using the NPM registry on yarn:
verbose 1.176 Request "https://gitlab.example.com/api/v4/packages/npm/@haa%2fbar" finished with status code 200.
verbose 1.187 Error: Received malformed response from registry for "@haa%2fbar". The registry may be down.
at MessageError.ExtendableBuiltin (/usr/local/Cellar/yarn/1.13.0/libexec/lib/cli.js:727:66)
at new MessageError (/usr/local/Cellar/yarn/1.13.0/libexec/lib/cli.js:756:123)
at Function.<anonymous> (/usr/local/Cellar/yarn/1.13.0/libexec/lib/cli.js:49770:15)
at Generator.next (<anonymous>)
at step (/usr/local/Cellar/yarn/1.13.0/libexec/lib/cli.js:304:30)
at /usr/local/Cellar/yarn/1.13.0/libexec/lib/cli.js:322:14
at new Promise (<anonymous>)
at new F (/usr/local/Cellar/yarn/1.13.0/libexec/lib/cli.js:5228:28)
at Function.<anonymous> (/usr/local/Cellar/yarn/1.13.0/libexec/lib/cli.js:301:12)
at Function.findVersionInRegistryResponse (/usr/local/Cellar/yarn/1.13.0/libexec/lib/cli.js:49812:19)
error Received malformed response from registry for "@haa%2fbar". The registry may be down.
Since it says the response was 200, I compared the JSON of the GitLab NPM registry:
{"name":"@haa/bar","versions":{"2.0.0":{"name":"@haa/bar","version":"2.0.0","dist":{"shasum":"49d2d407e07aa38e0ec5796c4e4126d16791734b","tarball":"https://gitlab.example.com/api/v4/projects/4/packages/npm/@haa/bar/-/@haa/bar-2.0.0.tgz"}},"1.0.0":{"name":"@haa/bar","version":"1.0.0","dist":{"shasum":"6ed62b89e1fe7e51455afaae270e443bf7146822","tarball":"https://gitlab.example.com/api/v4/projects/4/packages/npm/@haa/bar/-/@haa/bar-1.0.0.tgz"}}}}%
And the JSON of yarnpkg.com:
{"_id":"curl","_rev":"21-0d22abecdab328e1ea0889868f446aa9","name":"curl","description":"client url library, high level request functions","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"curl","version":"0.1.0","description":"client url library, high level request functions","tags":["request","util","http"],"authors":"Ian Jørgensen <jorgensen.ian@gmail.com>","dependencies":{"request":">=0.1.0","router":">=0.3.0"},"_npmJsonOpts":{"file":"/Users/ian/.npm/curl/0.1.0/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"curl@0.1.0","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.15","_nodeVersion":"v0.4.9","_defaultsLoaded":true,"dist":{"shasum":"f569838ccbf4e28c71dc7302c00b9d81d735f9ff","tarball":"https://registry.npmjs.org/curl/-/curl-0.1.0.tgz"},"scripts":{},"directories":{}},"0.1.1":{"name":"curl","version":"0.1.1","description":"client url library, high level request functions","tags":["request","util","http"],"authors":"Ian Jørgensen <jorgensen.ian@gmail.com>","dependencies":{"request":">=0.1.0","router":">=0.3.0"},"_npmJsonOpts":{"file":"/Users/ian/.npm/curl/0.1.1/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"curl@0.1.1","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.15","_nodeVersion":"v0.4.9","_defaultsLoaded":true,"dist":{"shasum":"b2a3a380cbed64f5885fd2bcbab49def47ea17d2","tarball":"https://registry.npmjs.org/curl/-/curl-0.1.1.tgz"},"scripts":{},"directories":{}},"0.1.2":{"name":"curl","version":"0.1.2","description":"client url library, high level request functions","tags":["request","util","http"],"authors":"Ian Jørgensen <jorgensen.ian@gmail.com>","dependencies":{"request":">=0.1.0","router":">=0.3.0"},"_npmJsonOpts":{"file":"/Users/ian/.npm/curl/0.1.2/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"curl@0.1.2","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.15","_nodeVersion":"v0.4.9","_defaultsLoaded":true,"dist":{"shasum":"817eda930a3c57111c52d38ba7d82b61eef735f2","tarball":"https://registry.npmjs.org/curl/-/curl-0.1.2.tgz"},"scripts":{},"directories":{}},"0.1.3":{"name":"curl","version":"0.1.3","description":"client url library, high level request functions","tags":["request","util","http"],"authors":"Ian Jørgensen <jorgensen.ian@gmail.com>","dependencies":{"request":">=0.1.0","router":">=0.3.0"},"_npmJsonOpts":{"file":"/Users/ian/.npm/curl/0.1.3/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"curl@0.1.3","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.15","_nodeVersion":"v0.4.9","_defaultsLoaded":true,"dist":{"shasum":"2b343ba8b5f1309f529df0e2d7a3378302c2e9fe","tarball":"https://registry.npmjs.org/curl/-/curl-0.1.3.tgz"},"scripts":{},"directories":{}},"0.1.4":{"name":"curl","version":"0.1.4","description":"client url library, high level request functions","tags":["request","util","http"],"authors":"Ian Jørgensen <jorgensen.ian@gmail.com>","dependencies":{"request":">=0.1.0","router":">=0.3.0"},"_npmJsonOpts":{"file":"/Users/ian/.npm/curl/0.1.4/package/package.json","wscript":false,"contributors":false,"serverjs":false},"_id":"curl@0.1.4","devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.15","_nodeVersion":"v0.4.9","_defaultsLoaded":true,"dist":{"shasum":"c4f5fbe38b3039a6b555bcc2f884a3b033427e23","tarball":"https://registry.npmjs.org/curl/-/curl-0.1.4.tgz"},"scripts":{},"directories":{}}},"maintainers":[{"name":"eljefederodeodeljefe","email":"devraindance@gmail.com"}],"time":{"modified":"2018-03-19T07:59:52.543Z","created":"2011-07-17T09:45:35.380Z","0.1.0":"2011-07-17T09:45:36.188Z","0.1.1":"2011-07-17T11:41:55.563Z","0.1.2":"2011-07-17T11:47:08.340Z","0.1.3":"2011-07-17T11:54:27.345Z","0.1.4":"2011-07-17T12:11:29.457Z"},"users":{"codefoster":true,"ukuli":true,"apttrain":true,"801s":true,"sarnsdev":true,"tomitoivio":true,"cosmor":true,"yichan":true},"r
Links / references
ZD https://gitlab.zendesk.com/agent/tickets/115284 (internal)