code: function(repo, version, hash, meta, outDir) {
  
      var url, tempRepoDir, packageJSONData, self = this;
  
      if (meta.vPrefix) {
        version = 'v' + version;
      }
  
      // Automatically track and cleanup files at exit
      temp.track();
  
      url = createGitUrl(self.options.baseurl, repo, self.options.reposuffix, self.auth);
  
      return createTempDir().then(function(tempDir) {
        tempRepoDir = tempDir;
        return exportGitRepo(tempRepoDir, version, url, self.execOpt, self.options.shallowclone);
      }).then(function() {
        return readPackageJSON(tempRepoDir);
      }).then(function(data) {
        packageJSONData = data;
        return moveRepoToOutDir(tempRepoDir, outDir);
      }).then(function() {
        return packageJSONData;
      });
    }
docs: always an exact version assumed that this is run after getVersions so the repo exists