diff --git a/packages/common/src/service.js b/packages/common/src/service.js index 1765f330fab..a61fb925c41 100644 --- a/packages/common/src/service.js +++ b/packages/common/src/service.js @@ -115,8 +115,10 @@ Service.prototype.request_ = function(reqOpts, callback) { delete reqOpts.interceptors_; + var pkg = this.packageJson; reqOpts.headers = extend({}, reqOpts.headers, { - 'User-Agent': util.getUserAgentFromPackageJson(this.packageJson) + 'User-Agent': util.getUserAgentFromPackageJson(pkg), + 'x-goog-api-client': `gl-node/${process.versions.node} gccl/${pkg.version}` }); return this.makeAuthenticatedRequest(reqOpts, callback); diff --git a/packages/common/test/service.js b/packages/common/test/service.js index f75ca5fb7eb..74d4bc10233 100644 --- a/packages/common/test/service.js +++ b/packages/common/test/service.js @@ -254,6 +254,19 @@ describe('Service', function() { service.request_(reqOpts, assert.ifError); }); + it('should add the api-client header', function(done) { + service.makeAuthenticatedRequest = function(reqOpts) { + var pkg = service.packageJson; + assert.strictEqual( + reqOpts.headers['x-goog-api-client'], + `gl-node/${process.versions.node} gccl/${pkg.version}` + ); + done(); + }; + + service.request_(reqOpts, assert.ifError); + }); + describe('projectIdRequired', function() { describe('false', function() { it('should include the projectId', function(done) {