repoinf
Library for getting basic information about a Git repository for versioning purposes.
Usage
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.
Reference
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
// }
License
© MIT license.