1.1.0 • Published 1 year ago

git-variables v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

NPM CI Coverage

Static constants fetched from git for your Node processes.

const { GIT_BRANCH, GIT_COMMIT } = require('git-variables');

Executes synchronously on startup to reduce impact & be ready to go immediately. Use in internal build tools or user-facing applications.

Installation

$ npm install git-variables
  • Requires git to be installed.
  • Must be run within a repository - suitable for monorepos too.

API

VariableCommandExample
GIT_DESCRIBEgit describe --always1089e4f
GIT_DESCRIBE_LIGHTgit describe --always --tags1089e4f
GIT_COMMITgit rev-parse --short HEAD1089e4f
GIT_SHA1git rev-parse HEAD1089e4fc62e43d7fc4a7323aaa3d09cd6cccc468
GIT_BRANCHgit rev-parse --abbrev-ref HEADmaster
GIT_MESSAGEgit log -1 --pretty=%BInitial commit!\nThis project will change the world!
GIT_MESSAGE_SUBJECTgit log -1 --pretty=%sInitial commit!
GIT_MESSAGE_BODYgit log -1 --pretty=%bThis project will change the world!
GIT_USERgit config user.namejdrydn
GIT_EMAILgit config user.emailjdrydn@github.io
GIT_IS_DIRTYgit diff --statfalse
GIT_REPOSITORYgit rev-parse --show-toplevelgit-variables

Examples

AWS-CDK

Reference git variables in your CDK stack definition:

const lambdaNode = require('@aws-cdk/aws-lambda-nodejs');
const { GIT_SHA1 } = require('git-variables');

new lambdaNode.NodejsFunction(this, 'LambdaFunction', {
  entry: './script.js',
  handler: 'handler',
  runtime: lambdaNode.Runtime.NODEJS_12_X,
  memorySize: 1024,
  timeout: cdk.Duration.seconds(300),
  environment: {
    COMMIT_SHA1: GIT_SHA1,
    NODE_ENV: process.env.NODE_ENV || 'development',
  },
});

Serverless Framework

Reference git variables in your serverless.yml file:

service: example-service
provider: aws

functions:
  example-function:
    handler: script.handler
    environment:
      COMMIT_SHA1: ${file(./node_modules/git-variables):GIT_SHA1}

Your Application

Typically, variables from git would be part of a build process & passed to your application as build arguments or environment variables. But there's nothing stopping you directly using this in your application:

// server.js
const express = require('express');
const { GIT_COMMIT } = require('git-variables');

const app = express();

app.get('/status', (req, res) => {
  res.status(200).send(GIT_COMMIT);
});

app.listen(3000);

When deploying, you must remember to keep your .git/ folder:

$ cd /var/app
$ git clone github.com/jdrydn/example
$ cd example/ && npm ci
$ node ./server.js

Notes

Any questions or suggestions please open an issue.

1.1.0

1 year ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

3 years ago