init() {
    var _this8 = this;

    return (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function* () {
      _this8.gitUrl = yield Git.secureGitUrl(_this8.gitUrl, _this8.hash, _this8.reporter);

      yield _this8.setRefRemote();

      // check capabilities
      if (_this8.ref !== '' && (yield Git.hasArchiveCapability(_this8.gitUrl))) {
        _this8.supportsArchive = true;
      } else {
        yield _this8.fetch();
      }

      return _this8.hash;
    })();
  }
Initialize the repo, find a secure url to use and
set the ref to match an input `target`.