Compact high-level JavaScript API for git


This is a compact high-level JavaScript API for git. No git installation is needed. It wraps the low-level js-git API to investigate working copies of repositories stored in the local filesystem, much like the git command line tool is often used.


The main high-level operations are:

  • Get info (hash, message, time and author) for any commit (getCommit).
  • Get logs with commit info working backwards from any commit (getLog).
    • Optionally filtered to only include commits with changes to a particular file (stopping at renames).
  • Check if a particular file in the working tree has changed since the latest commit (isDirty).

Docs generated using docts

Interface CommitInfo

Source code: <>


.tree string
.parents string[]
.author UserTimeInfo
.committer UserTimeInfo
.message string
.hash string

Interface FileInfo

Source code: <>


.mode number
.hash string

Interface GetLogOptions

Filtering options for retrieving logs.
Source code: <>


.path? string
Only match commits where file at path was changed.
.count? number
Only match up to given number of commits.

Class Git

Source code: <>


new( )Git <>
 ▪ basePath string
.getWorkingHead( )Bluebird<HeadInfo> <>
Get promise resolving to the hash of current working tree HEAD commit.
.getCommit( )Bluebird<CommitInfo> <>
Get info for commit based on its hash.
 ▪ commitHash string
.resolve( )string <>
Get absolute path to file inside working copy.
 ▪ pathName string
.relative( )string <>
Get path to file inside working copy relative to its root.
 ▪ pathName string
.findPath( )Bluebird<FileInfo> <>
Get info for file at pathName inside tree. Tree is a hash
pointing to the contents of a commit, defined in the commit's info.
 ▪ treeHash string
 ▪ pathName string
.isDirty( )Bluebird<boolean> <>
Get promise resolving to true if file inside working tree is dirty,
false otherwise.
 ▪ pathName string
.walkLog( )Bluebird<void> <>
Walk the commit log from given hash towards the initial commit,
calling handler for each commit matching options.
 ▪ commitHash string
 ▪ options GetLogOptions
 ▪ handler (entry: CommitInfo) => void
.getLog( )Bluebird<CommitInfo[]> <>
Get promise resolving to a list of commits matching options,
in reverse topological / chronological order
from given hash towards the initial commit.
 ▪ hash string
 ▫ options? GetLogOptions

Interface HeadInfo

Source code: <>


.branch? string
.hash? string

Interface UserTimeInfo

Source code: <>


.name string
.email string
.date { seconds: number; offset: number; }

Function getHash

Get promise resolving to desired type of hash (eg. sha1) for contents of stream.
Optionally prefix contents with an arbitrary header before hashing.
Source code: <>

getHash( )Bluebird<string> <>
 ▪ type string
 ▪ dataStream Readable
 ▫ prefix? string


The MIT License

Copyright (c) 2016 BusFaster Ltd