code: async function getRev(rev, currentRev, client, config) {
    var revHash = rev.substr(config.indexKey.indexOf('%s'));
    if (revHash === 'current') return;
  
    var str = revHash === currentRev ? rev + ' (current)' : rev;
    try {
      const commitData = await gitlog({
        repo: path.resolve(process.cwd(), '.git'),
        number: 1,
        fields: [
          'abbrevHash',
          'subject',
          'committerDate',
          'committerDateRel',
          'authorName',
          'hash',
        ],
        branch: revHash,
      });
      if (!commitData.length) {
        return;
      }
  
      const firstCommitData = commitData[0];
  
      const metadata = await client.get(util.format(config.metaKey, revHash));
      if (!metadata) {
        gutil.log(gutil.colors.red('Cannot retrieve metadata'));
        return;
      }
  
      return [
        new Date(firstCommitData.committerDate),
        gutil.colors.yellow(str),
        firstCommitData.subject,
        gutil.colors.white(firstCommitData.committerDateRel),
        gutil.colors.white.blue('<' + firstCommitData.authorName + '>'),
        (metadata && gutil.colors.white.blue(metadata)) || '',
      ];
    } catch (e) {
      if (e.toString().indexOf('unknown revision') > 0) {
        return [
          0,
          gutil.colors.yellow(str),
          gutil.colors.red('Unknown revision'),
        ];
      }
      gutil.log(gutil.colors.yellow(str));
      gutil.log(gutil.colors.red('Error:'), e);
    }
  }
docs: Deployment process tasks