code: function verify(pattern, opts, callback) {
    if (typeof opts === 'function') {
      callback = opts;
      opts = {};
    }
    if (typeof callback !== 'function') {
      errs.type('expect `callback` to be function');
    }
    if (typeof pattern !== 'string') {
      errs.type('expect `pattern` to be string');
    }
    if (!regex.test(pattern)) {
      errs.error('expect `pattern` to be `user/repo#branch`');
    }
    if (!isObject(opts)) {
      errs.type('expect `opts` to be object');
    }
  
    opts = typeof opts.token === 'string' ? {
      headers: {
        Authorization: 'token ' + opts.token
      }
    } : undefined;
  
    memo(regex.exec(pattern));
  
    if (!cache.branch) {
      errs.error('should give a branch or tag in `pattern`');
    }
  
    return {
      opts: opts,
      callback: callback
    }
  }
docs: Verify the given arguments.
  
  @param  {String}   `pattern`
  @param  {Object}   `opts`
  @param  {Function} `callback`
  @return {Object}
  @api private