deploy: function (phaseContext, done) {
        var toolbelt = new Toolbelt(config, job, jobContext, phaseContext);

        var err = toolbelt.connectToDocker();
        if (hadError(err, done)) return;

        var opts = {
          contentServiceURL: config.contentServiceURL,
          contentServiceAPIKey: config.contentServiceAPIKey
        };

        entry.recursivelyPrepare(toolbelt, opts, function (err, results) {
          hadError(err);
          done(err, results.didSomething);
        })
      }
      test: function (phaseContext, done) {
        var toolbelt = new Toolbelt(config, job, jobContext, phaseContext);
        if (toolbelt.isPullRequest) {
          toolbelt.debug('Testing pull request %s.', toolbelt.pullRequestURL);

          var dockerErr = toolbelt.connectToDocker();
          if (hadError(dockerErr, done)) return;

          optionalConnection(toolbelt.connectToStagingPresenter());
          optionalConnection(toolbelt.connectToStagingContentService(true));
          optionalConnection(toolbelt.connectToGitHub());

          entry.preparePullRequest(toolbelt, function (err, results) {
            hadError(err);
            done(err, results.didSomething);
          })
        } else {
          done(null, true);
        }
      },