https://github.com/someimportantcompany/git-variables
Git variables for NodeJS processes
https://github.com/someimportantcompany/git-variables
git nodejs variables
Last synced: about 2 months ago
JSON representation
Git variables for NodeJS processes
- Host: GitHub
- URL: https://github.com/someimportantcompany/git-variables
- Owner: someimportantcompany
- Created: 2021-11-07T22:18:01.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-04-22T20:40:15.000Z (about 3 years ago)
- Last Synced: 2024-04-14T12:53:44.663Z (about 2 years ago)
- Topics: git, nodejs, variables
- Language: JavaScript
- Homepage: https://npm.im/git-variables
- Size: 167 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://npm.im/git-variables)
[](https://github.com/someimportantcompany/git-variables/actions?query=branch%3Amaster)
[](https://coveralls.io/github/someimportantcompany/git-variables)
Static constants fetched from `git` for your Node processes.
```js
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
Variable | Command | Example
---- | ---- | ----
`GIT_DESCRIBE` | `git describe --always` | `1089e4f`
`GIT_DESCRIBE_LIGHT` | `git describe --always --tags` | `1089e4f`
`GIT_COMMIT` | `git rev-parse --short HEAD` | `1089e4f`
`GIT_SHA1` | `git rev-parse HEAD` | `1089e4fc62e43d7fc4a7323aaa3d09cd6cccc468`
`GIT_BRANCH` | `git rev-parse --abbrev-ref HEAD` | `master`
`GIT_MESSAGE` | `git log -1 --pretty=%B` | `Initial commit!\nThis project will change the world!`
`GIT_MESSAGE_SUBJECT` | `git log -1 --pretty=%s` | `Initial commit!`
`GIT_MESSAGE_BODY` | `git log -1 --pretty=%b` | `This project will change the world!`
`GIT_USER` | `git config user.name` | `jdrydn`
`GIT_EMAIL` | `git config user.email` | `jdrydn@github.io`
`GIT_IS_DIRTY` | `git diff --stat` | `false`
`GIT_REPOSITORY` | `git rev-parse --show-toplevel` | `git-variables`
### Examples
#### AWS-CDK
Reference git variables in your CDK stack definition:
```js
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:
```yml
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:
```js
// 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](https://github.com/someimportantcompany/git-variables/issues).