async publishFolder()

in src/desktop/gitlab/clone/gitlab_remote_source.ts [171:200]


  async publishFolder(uri: vscode.Uri): Promise<void> {
    const existingRepository = this.#gitAPI.repositories.find(r => r.rootUri.fsPath === uri.fsPath);
    if (existingRepository) {
      await this.publishRepository(existingRepository);
      return;
    }

    const [anyFile] = await vscode.workspace.findFiles(
      new vscode.RelativePattern(uri, '*'),
      null,
      1,
    );
    if (!anyFile) {
      await vscode.window.showErrorMessage(
        'Workspace is empty. To push to GitLab, first add a file to the folder.',
      );
      return;
    }

    await this.#publishToNewProject(uri, async () => {
      const repository = await this.#gitAPI.init(uri);
      if (!repository) {
        throw new ModalError(
          'Could not create local Git repository. Check the logs for more information.',
        );
      }
      await repository.commit(DEFAULT_COMMIT_MESSAGE, { all: true });
      return repository;
    });
  }