Skip to content

NodeSecure/gitlab

Repository files navigation

Gitlab

version Maintenance OpenSSF Scorecard MIT build

Download and (optionaly) extract gitlab repository archive.

Requirements

Getting Started

This package is available in the Node Package Repository and can be easily installed with npm or yarn.

$ npm i @nodesecure/gitlab
# or
$ yarn add @nodesecure/gitlab

Usage example

import * as gitlab from "@nodesecure/gitlab";

// Note: repository can be either namespace path or repository ID
const result = await gitlab.download(
  "NodeSecure.utils"
);
console.log(result);

API

Both download and downloadAndExtract functions use the same set of options.

interface DownloadOptions {
  /**
   * The destination (location) to extract the tar.gz
   *
   * @default process.cwd()
   */
  dest?: string;
  /**
   * The default gitlab branch name (master, main ...).
   * By default it fetch the "default" gitlab branch.
   *
   * @default null
   */
  branch?: string | null;
  /**
   * Authentication token for private repositories
   *
   * @default process.env.GITLAB_TOKEN
   */
  token?: string;
  /**
   * @default https://gitlab.com/api/v4/projects/
   */
  gitlab?: string;
}

download(repository: string, options?: DownloadOptions): Promise< DownloadResult >

Download the tar.gz archive of the GIT repository.

interface DownloadResult {
  /** Archive or repository location on disk */
  location: string;
  /** Gitlab repository name */
  repository: string;
  /** Gitlab organization name */
  organization: string;
  /** Gitlab branch name */
  branch: string;
}

downloadAndExtract(repository: string, options?: DownloadExtractOptions): Promise< DownloadResult >

Use download but extract the tar.gz archive.

interface DownloadExtractOptions extends DownloadOptions {
  /**
   * Remove the tar.gz archive after a succesfull extraction
   *
   * @default true
   */
  removeArchive?: boolean;
}

Contributors ✨

All Contributors

Thanks goes to these wonderful people (emoji key):

Gentilhomme
Gentilhomme

💻 📖 👀 🛡️ 🐛
Haze
Haze

💻
Alexandre Malaj
Alexandre Malaj

💻 📖
Kouadio Fabrice Nguessan
Kouadio Fabrice Nguessan

🚧
FredGuiou
FredGuiou

🚧

License

MIT