Code Monkey home page Code Monkey logo

commitsense's Introduction

CommitSense

CommitSense is a command-line tool that simplifies Git version control by providing an interactive and standardized way to create commit messages following the Conventional Commits specification.

Features

  • Conventional Commits-based commit message generation.
  • Improved commit message consistency.
  • Streamlined Git workflow.

Here's the cool part: CommitSense plays well with native Git commands under the hood. So, while you're using Git commands like a console wizard, CommitSense is right there, ensuring compatibility and helping you create those commits with style when you're ready!

Install

Homebrew

Check out the homebrew formula repository for installation guide.

Other

You can always clone the repository, build the application and use the binary for running the application.

Usage

Creating Commits

commitsense commit

This command guides you through creating a commit message according to the Conventional Commits format.

Development

golangci-lint

golangci-lint is a fast and customizable Go linter. It provides a wide range of checks for various aspects of your Go code.

To install golangci-lint, run the following command:

go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest

Running golangci-lint

To run golangci-lint on your project, navigate to your project's root directory and execute:

golangci-lint run

This command will analyze your Go code, check for issues, and display the results.

To run and fix autofixable problems, run the following command:

golangci-lint run --fix

gofumpt

gofumpt is a stricter Go code formatter that follows the gofumpt style.

To install gofumpt, run:

go install mvdan.cc/gofumpt@latest

Running gofumpt

To format and organize your import statements, run:

gofumpt -l -w .

Contributing

We welcome contributions to CommitSense! To contribute, follow these steps:

  • Fork this repository.
  • Create a new branch for your feature or bug fix: git checkout -b my-feature.
  • Commit your changes following the Conventional Commits format.
  • Push your branch to your fork: git push origin my-feature.
  • Open a pull request to the main repository.
  • Please ensure your code follows best practices and includes appropriate tests.

License

CommitSense is released under the MIT License. See LICENSE for details.

Acknowledgments

This project is inspired by the Conventional Commits specification. Learn more at Conventional Commits.

commitsense's People

Contributors

hremonen avatar

Stargazers

 avatar  avatar

Watchers

 avatar

commitsense's Issues

Automatically add [skip ci] to commit message

When making changes to docs, I don't want CI to run.

Maybe somehow detect when commit only changes docs and then add the [skip ci] magic word

This is slightly risky if it misdetects some commit as doc-only, so maybe make it configurable

Configuration file

Some aspects should be globally configurable by the user.

  • Allow users to configure the commit types (add / delete). Remember not to violate the conventional commits requirements however.
  • Allow users to configure the commit types that include automatically the [skip ci]

Co-author addition

Adding co-authors to git commits is a pain

Add a feature that allows to quickly select and add co-authors when creating the commit message

Maybe autosuggest the co-authors from git log contributors? Or from GH api?

[skip ci] problem when multiple commits pushed at once

image

If the latest commit has [skip ci], then actions not run even though previous to it should trigger actions. This is fakd, no idea how to fix. Probably should just put [skip ci] thing behind config and have it off by default

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.