docs: function execute(options, cb) {
  
    // Merge options with defaults and options file
    var rcOptions = getRCOptions();
    rcOptions = merge.recursive(defaultOptions, rcOptions);
    options = merge.recursive(rcOptions, options);
  
    // Inject plugins
    if (!injectPluginDependencies(options.ci, options.reporter, options.management)) {
      cb(new Error(), 0);
      return;
    }
  
    // Pass options to injected plugins
    reporter.options = options.reporterOptions;
    management.options = options.managementOptions;
    if (ci) {
      ci.options = options.cmdLineOptions;
    }
  
    // If enabled, get information from CI plugin
    if (ci) {
      var ciBranchName = ci.getBranchName();
      var ciBuildUrl = ci.getBuildUrl();
    }
  
    // If CI plugin enabled and flag set, extract test run name from current branch
    if (ci && options.extractTestRunFromBranchName) {
      management.testRunIdentifier = getTestRunFromBranch(ciBranchName, options.branchPattern);
      if (!management.testRunIdentifier) {
        logger.info('Current branch \'%s\' did not trigger a test repository update.', ciBranchName);
        cb(null, 0);
        return;
      } else {
        logger.info('Current branch \'%s\' triggered a test repository update for test run \'%s\'',
          ciBranchName, management.testRunIdentifier);
      }
    } else {
      if (!options.testRunIdentifier) {
        logger.error('If branch name extraction is not enabled, and/or no CI plugin enabled, you must specify the ' +
          'remote test run to be updated by name.');
        cb(new Error(), 0);
        return;
      }
      management.testRunIdentifier = options.testRunIdentifier;
  
      if(!ci && options.extractTestRunFromBranchName) {
        logger.warn('Option \'--extractTestRunFromBranchName\' has no effect without a CI plugin loaded. ' +
          'Using \'--testRun\' instead.');
      }
    }
  
    // Get local test case runs
    var localTestRuns = reporter.getTestRuns();
  
    // Update local test results in remote test management tool
    if (localTestRuns.length > 0) {
      management.updateTestCaseRuns(localTestRuns, cb);
    } else {
      logger.info('No local test results contained linked test cases.');
      cb(null, 0);
      return;
    }
  }