https://github.com/theelegantcoding/gitlys
📦️ A lightweight, zero-dependency release automation toolkit for Node.js and Bun. Handles semantic versioning, categorized changelogs, and automated GitHub releases
https://github.com/theelegantcoding/gitlys
bash changelog changelog-generator clean-code commit-conventions commitlint design-pattern git git-hook git-hooks github lint-staged performance release release-automation release-notes semantic-release typescript version-control versioning
Last synced: 4 days ago
JSON representation
📦️ A lightweight, zero-dependency release automation toolkit for Node.js and Bun. Handles semantic versioning, categorized changelogs, and automated GitHub releases
- Host: GitHub
- URL: https://github.com/theelegantcoding/gitlys
- Owner: TheElegantCoding
- Created: 2023-08-14T22:53:05.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2026-04-24T20:20:07.000Z (7 days ago)
- Last Synced: 2026-04-24T21:36:34.404Z (6 days ago)
- Topics: bash, changelog, changelog-generator, clean-code, commit-conventions, commitlint, design-pattern, git, git-hook, git-hooks, github, lint-staged, performance, release, release-automation, release-notes, semantic-release, typescript, version-control, versioning
- Language: TypeScript
- Homepage:
- Size: 1.34 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README

Gitlys

📦 SETUP • ⚙️ CONFIGURATION • ⚡ FEATURES



About
The ultimate Git workflow toolkit for Node and Bun. Orchestrate your entire release cycle: from linting staged files and enforcing commit standards to automated semantic versioning and GitHub releases.

Table of content
- [
About](#about)
- [
Requirements](#requirements)
- [
Installation](#installation)
- [
Usage](#usage)
- [
Configuration](#configuration)

Requirements
-
node >= **22.17.0**
-
bun >= **1.1.0**
-
github cli >= **2.89.0**

Installation
Bun
```bash
bun i -D gitlys
```
Npm
```bash
npm i -D gitlys
```
Pnpm
```bash
pnpm i -D gitlys
```
Yarn
```bash
yarn i -D gitlys
```

Features
-
`Commitlint` - Enforce commit message standards
-
`Lint-staged` - Lint staged files before commit
-
`Changelog` - Generate and maintain a changelog
-
`Semantic Release` - Automated semantic versioning and changelog generation
-
`GitHub Release` - Automatically create releases on GitHub with the generated changelog
-
`Customizable` - Highly customizable to fit your workflow

Usage
To initialize gitlys in your project, just run the following command in your terminal, you can use the package manager you want:
```bash
bunx gitlys init
```
In order to release a version of your project, just run the following command in your terminal:
```bash
bunx gitlys release
```
I recommend you to add this command in your `package.json` for more comfortable use:
```json
{
"scripts": {
"postinstall": "bunx gitlys init",
"release": "bunx gitlys release",
"prepublishOnly": "bun run build",
}
}
```

Configuration
The configuration of gitlys is really simple, create a file named `.gitlys.json` in the root of your project and export an object with the configuration you want, for example:
```json
{
"commitlint": {
"allowedTypes": ["feat", "fix", "docs", "style", "refactor", "perf", "test", "chore"],
"maxLength": 120
},
"lintStaged": {
"*.{ts,tsx,js,jsx}": "eslint --fix",
"*.{css,scss}": "stylelint --fix"
},
"release": {
"releaseToGithub": false
},
"changelog": {
"changelogPath": "CHANGELOG.md",
"generateChangelog": false
},
"packageManager": "npm"
}
```
- `commitlint.allowedTypes` - Allowed types for commit messages, by default it uses the conventional commits types
- `commitlint.maxLength` - Maximum length for commit messages
- `lintStaged` - Configuration for lint-staged, files and commands to run when those files are staged
- `release.releaseToGithub` - Configuration for release, whether to release to GitHub or not
- `changelog.changelogPath` - Path to the changelog file
- `changelog.generateChangelog` - Whether to generate a changelog or not
- `packageManager` - Package manager to use for install gitlys and run scripts
Additionally, if you are using Gitlens and also Copilot you can add the following configuration to your `settings.json` to have a better experience with gitlys:
```json
{
"gitlens.codeLens.recentChange.enabled": false,
"gitlens.ai.generateCommitMessage.customInstructions": "Use conventional commits, format: : , The description should be concise and describe the change in a few words and always in lowercase, max length of 120 characters, allowed types: feat, fix, doc, style, refactor, perf, test, build, ci, config, update, release, breaking, typo, asset, package, language, security, revert, the message must be in English",
}
```

BACK TO TOP

Copyright © All rights reserved,
developed by LuisdaByte and
