Miss any of our Open RFC calls?Watch the recordings here! »

gitly

1.1.10 • Public • Published

gitly

An API to download and/or extract git repositories.

Node CI Version codecov Downloads/week License

This project is the spiritual successor of gittar written in TypeScript.

Usage

import { fetch, extract } = from 'gitly'
 
console.log(await fetch('iwatakeshi/gitly'))
// -> ~/.gitly/github/iwatakeshi/gitly/master.tar.gz
 
console.log(await fetch('iwatakeshi/gitly#v1.0.0'))
// -> ~/.gitly/github/iwatakeshi/gitly/v1.0.0.tar.gz
 
console.log(await fetch('https://github.com/iwatakeshi/gitly'))
// -> ~/.gitly/github/iwatakeshi/gitly/master.tar.gz
 
console.log(await fetch('gitlab:Rich-Harris/buble#v0.15.2'))
// -> ~/.gitly/gitlab/Rich-Harris/buble/v0.15.2.tar.gz
 
console.log(await fetch('Rich-Harris/buble', { host: 'gitlab' }))
// -> ~/.gitly/gitlab/Rich-Harris/buble/master.tar.gz
 
const source = 'path to downloaded zip file (can be obtained by fetch())'
const destination = '/path/to/foobar'
 
await extract(source, destination)
// -> /path/to/foobar

Options

interface GitlyOptions {
  /**
   * Use cache only (default: undefined)
   */
  cache?: boolean
  /**
   * Use both cache and local (default: undefined)
   */
  force?: boolean
  /**
   * Throw an error when fetching (default: undefined)
   */
  throw?: boolean
  /**
   * Set cache directory (default: '~/.gitly')
   */
  temp?: string
  /**
   * Set the host name (default: undefined)
   */
  host?: string
  url?: {
    /**
     * Extend the url filtering method
     * @param info The URLInfo object
     */
    filter?(info: URLInfo): string
  }
  extract?: {
    /**
     * Extend the extract filtering method for the 'tar' library
     */
    filter?(path: string, stat: FileStat): boolean
  }
}

Interfaces

interface URLInfo {
  protocol: string
  host: string
  hostname: string
  hash: string
  href: string
  path: string
  repository: string
  owner: string
  type: string
}

Install

npm i gitly

DownloadsWeekly Downloads

12

Version

1.1.10

License

MIT

Unpacked Size

39.1 kB

Total Files

46

Last publish

Collaborators

  • avatar