Library for getting basic information about a Git repository for versioning purposes.
This library is available via npm:
npm i --save repoinf
Two functions are available: getRepoInfo()
, which returns information about a repository, and getPlatformInfo()
, which returns some basic information about the system. Both return a Promise
that resolves to an object.
To use getRepoInfo()
, the git
command line utility needs to be available.
Function:
getRepoInfo(repoRoot[, isContainer, gitCmd])
Parameters:
repoRoot
String
Path to the repository to return information for.isContainer
Boolean: true
Whether therepoRoot
path contains the .git directory (as opposed to being the .git directory).gitCmd
String: "git"
Name of or path to the Git executable, if it's not"git"
.
Returns:
isRepo
Boolean
Whether the given path is a valid repository. If not, onlyisRepo
andhasCommits
will be returned, both false.hasCommits
Boolean
Whether the repository has any commits. Without commits, only the branch name can be determined and all other data is empty.branch
String
Name of the currently active branch.hash
String
Short 7-character hash.hashFull
String
Full 40-character hash.lastCommit
Date
Date of the last commit.commits
Number
Number of commits on this branch.version
String
Formatted string representing the repository's state, e.g."main-423 [97a65b1]"
.versionDashed
String
Formatted string separated only by dashes, e.g."main-423-97a65b1"
.
Example:
const data = await getRepoInfo(`/path/to/project`) // path containing a .git directory
console.log(data)
// {
// isRepo: true,
// hasCommits: true,
// branch: 'main',
// hash: '97a65b1',
// hashFull: '97a65b155b21b334975736d70d5eb20e58003cb1',
// commits: 423,
// lastCommit: 2021-11-14T14:11:53.000Z,
// versionDashed: 'main-423-97a65b1',
// version: 'main-423 [97a65b1]'
// }
Function:
getPlatformInfo()
Parameters:
- (None.)
Returns:
version
String
Full string identifying the kernel version.uptime
Number
Number of seconds that the system has been up.platform
String
OS platform name (aix
,darwin
,freebsd
,linux
,openbsd
,sunos
, orwin32
).type
String
OS name (Linux
,Darwin
orWindows_NT
).release
String
OS version.hostname
String
System hostname.arch
String
CPU architecture for which Node was compiled.bootTime
Date
Date object based on the current time anduptime
.
Example:
const data = await getPlatformInfo()
console.log(data)
// {
// version: 'Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT 2019; root:xnu-4903.271.2~2/RELEASE_X86_64',
// uptime: 23457,
// platform: 'darwin',
// type: 'Darwin',
// release: '18.7.0',
// hostname: 'Vesuvius.local',
// arch: 'x64',
// bootTime: 2021-12-10T10:52:15.000Z
// }
© MIT license.