Socket
Socket
Sign inDemoInstall

git-tags

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

git-tags

Get and parse semver Git tags using Node.js


Version published
Maintainers
1
Created
Source

Node Git Tags

Gets and parses semver tags using Git and Node.js

Usage

Assuming you have the following git tags:

  • v1.0.1
  • v1.0.0
  • v0.1.0-beta
  • NonSemverTag

Get all semver tags

gittags.get([repo], callback(err, tags))
ArgumentTypeDescription
repo (optional)stringOptional repo path. Defaults to process.cwd()
callbackfunctionRequired callback fn
callback(err)null | ErrorError, if there is one
callback(tags)Array.<string>Array of semver tags found (e.g. ['1.0.1', '1.0.0'])
var gittags = require('git-tags');

gittags.get(function(err, tags) {
  if (err) throw err;

  console.log(tags);
  // ['1.0.1', '1.0.0', '0.1.0-beta']
});

// Also takes a repo location:
gittags.get('/foorepo', function(err, tags) {});

Latest

gittags.latest([repo], callback(err, latest))
NameTypeDescription
repo (optional)stringOptional repo path. Defaults to process.cwd()
callbackfunctionRequired callback
errnull | ErrorError if, there is one
lateststringLatest semver tag found (e.g. '1.0.1')
gittags.latest(function(err, latest) {
  console.log(latest);
  // '1.0.1'
});

Oldest

gittags.oldest([repo], callback(err, oldest))

Same as latest but opposite.

gittags.oldest(function(err, oldest) {
  console.log(oldest);
  // '0.1.0-beta'
});

Semver Parse

Two functions relating to semver exist for convenience. parse is just semver.parse, and mmp which stands for "Major, Minor, Patch". If you need more semver stuff, you should use the node-semver module directly.

gittags.parse(tag) -> SemVer
NameTypeDescription
tagstringVersion string to parse (e.g. 'v1.0.2-beta'). See node-semver for more info.
gittags.mmp(tag) -> formattedTag
NameTypeDescription
tagstringTag to format (e.g. 'v1.0.2-beta')
formattedTagstringMajor.Minor.Patch formatted tag (e.g. '1.0.2')
gittags.mmp('v1.3.10-beta.12');
// => '1.3.10'

var version = gittags.parse('v1.3.10-beta.12');
// <SemVer "1.3.10-beta.12">
version.prerelease;
// ['beta', 12]
version.compare('v1.3.10');
// -1
version.compare('v1.3.9');
// 1
// etc...

Note Stating the obvious, this module uses the callback fashion of async handling. This makes them easy to integrate w/ promises.

Bluebird, for example

var Q = require('bluebird');
var gittags = Q.promisifyAll(require('gittags'));

gittags.latestAsync().then(console.log);
// 1.0.1

I originally intended this to use child_process.spawn and return a stream, but I then realized these are blocking in Linux/Unix, limiting the usefulness of that. And it's Git tags so who cares?

If you want streams, you can use something like highland.js which is awesome, BTW.

License

MIT

Keywords

FAQs

Package last updated on 31 Oct 2014

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc