https://github.com/nodesecure/gitlab
Download and extract gitlab repository
https://github.com/nodesecure/gitlab
archive download extract extractor git gitlab targz targz-extractor
Last synced: 11 months ago
JSON representation
Download and extract gitlab repository
- Host: GitHub
- URL: https://github.com/nodesecure/gitlab
- Owner: NodeSecure
- License: mit
- Created: 2020-01-31T22:47:48.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-10-01T07:04:54.000Z (over 1 year ago)
- Last Synced: 2024-10-09T10:05:27.898Z (over 1 year ago)
- Topics: archive, download, extract, extractor, git, gitlab, targz, targz-extractor
- Language: TypeScript
- Homepage:
- Size: 319 KB
- Stars: 3
- Watchers: 5
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# Gitlab

[](https://github.com/NodeSecure/gitlab/graphs/commit-activity)
[](https://api.securityscorecards.dev/projects/github.com/NodeSecure/gitlab)


Download and (optionaly) extract gitlab repository archive.
## Requirements
- [Node.js](https://nodejs.org/en/) v20 or higher
## Getting Started
This package is available in the Node Package Repository and can be easily installed with [npm](https://docs.npmjs.com/getting-started/what-is-npm) or [yarn](https://yarnpkg.com).
```bash
$ npm i @nodesecure/gitlab
# or
$ yarn add @nodesecure/gitlab
```
## Usage example
```js
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.
```ts
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.
```ts
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.
```ts
interface DownloadExtractOptions extends DownloadOptions {
/**
* Remove the tar.gz archive after a succesfull extraction
*
* @default true
*/
removeArchive?: boolean;
}
```
## Contributors ✨
[](#contributors-)
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

Gentilhomme
💻 📖 👀 🛡️ 🐛

Haze
💻

Alexandre Malaj
💻 📖

Kouadio Fabrice Nguessan
🚧

FredGuiou
🚧
## License
MIT