code: function Strategy(options, verify) {
    options = options || {};
    this._baseURL = options.baseURL || 'https://gitlab.com';
    options.authorizationURL = options.authorizationURL || url.resolve(this._baseURL, 'oauth/authorize');
    options.tokenURL = options.tokenURL || url.resolve(this._baseURL, 'oauth/token');
    options.scope = options.scope || 'read_user';
    options.scopeSeparator = options.scopeSeparator || ',';
  
    OAuth2Strategy.call(this, options, verify);
    this.name = 'gitlab';
    this._profileURL = options.profileURL || url.resolve(this._baseURL, 'api/v4/user');
    this._oauth2.useAuthorizationHeaderforGET(true);
  }
docs: Strategy constructor
  
  The GitLab authentication strategy authenticates requests by delegating to
  GitLab using the OAuth 2.0 protocol.
  
  Applications must supply a `verify` callback which accepts an `accessToken`,
  `refreshToken` and service-specific `profile`, and then calls the `cb`
  callback supplying a `user`, which should be set to `false` if the
  credentials are not valid.  If an exception occured, `err` should be set.
  
  Options:
  - `clientID`      your GitLab application's App ID
  - `clientSecret`  your GitLab application's App Secret
  - `callbackURL`   URL to which GitLab will redirect the user after granting authorization
  
  Examples:
  
  passport.use(new GitLabStrategy({
  clientID: '123-456-789',
  clientSecret: 'shhh-its-a-secret'
  callbackURL: 'https://www.example.net/auth/gitlab/callback'
  },
  function(accessToken, refreshToken, profile, cb) {
  User.findOrCreate(..., function (err, user) {
  cb(err, user);
  });
  }
  ));
  
  @constructor
  @param {object} options
  @param {function} verify
  @access public