SkillAgentSearch skills...

GCommit

GCommit is a git-plugin that eases pair-programming commits

Install / Use

/learn @jooaodanieel/GCommit
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

GCommit

GitHub Workflow Status GitHub release (latest by date) GitHub all releases GitHub contributors

GCommit - Group Commit

GCommit is a git-plugin that eases how to commit when you need to sign for more than one person -- pair and mob programming reality.

Instead of having to set manually the other developers names, you can define once in a configuration file, and simply reference it at any commit-time.

Installation

There are three methods for installing GCommit

Windows users, help us! Check this issue :)

1) AUR

GCommit is available at the Arch User Repository, so you can easily install via yay

yay -S gcommit-git

2) GitHub Releases

First, ensure you have libcrypt.so.1 available in your system.

Then head to releases page, download the latest g-commit-<OS>-latest.kexe¹ and store into a directory within your $PATH.

Make sure these three things:

  1. it is called git-gcommit
  2. it is placed within your $PATH
  3. it is executable

¹ if you're a linux user, the ubuntu build should work just fine

3) Manual build

If you're interested in building it manually,

# build the GCommit executable
./gradlew build

# copy to a directory within your PATH and name it "git-commit"
sudo cp build/bin/native/releaseExecutable/g-commit.kexe /usr/local/bin/git-commit

How to use

GCommit relies on a configuration file gcommit.conf.json. In it, there are two settings you define:

  1. the team

Each member of the team is defined by:

  • the name to be displayed
  • the email to be displayed
  • a tag to act as a reference

So, for instance, a team member can be defined in gcommit.conf.json as follows:

{
  "team": [
    {
      "name": "John Doe",
      "email": "john.doe@example.com",
      "tag": "JOD"
    },
    {
      "name": "Jane Doe",
      "email": "jane.doe@example.com",
      "tag": "JAD"
    }
  ],
  
  // ... other aspects ...
  
}

GCommit makes it easier to sign commits by providing a quick reference to a stored team member. The tag is the "quick reference". So make sure to inform unique tags ;)

  1. the signature format

GCommit works for multiple Code Repository platforms, such as GitHub and GitLab -- so far, that's all GCommit supports.

Each platform has its own signature template to account activities for users, so you can configure which format to adopt.

Out-of-the-box, GCommit supports GitHub's Co-authored-by: Name <email> (default) and GitLab's Signed-off-by: Name <email>.

In the config file, you can choose which format to use:

{
  // ... other aspects ...

  "format": "GCommit/GitLab"
}

in case you wish to follow GitHub's format instead, use "GCommit/GitHub" or even don't define the format since it's the default

Place the gcommit.conf.json at the root of the project, and we recommend to add it to Git Ignore file.

Then, after adding changes to git staging area, simply run

git gcommit JOD JAD

in the case you want to sign with the entire team, you can simply run git gcommit with no arguments

In case there are no changes to commit the commit file won´t be opened and you will get the message:

gcommit: nothing to commit, working tree clean

check your directory and run again

Contributing

Please refer to CONTRIBUTING.md

Contributors

Many thanks to all contributors!

| | | | | | |-|-|-|-|-| |<p align="center"><img style="border-radius: 100px" width="100px" src="https://avatars3.githubusercontent.com/u/5549736?s=200&v=4" alt="Mairielli" /><br />Mairieli Wessel</p>|<p align="center"><img style="border-radius: 100px" width="100px" src="https://avatars2.githubusercontent.com/u/7605307?s=200&v=4" alt="Emmanuel Arias"/><br />Emmanuel Arias</p>|<p align="center"><img style="border-radius: 100px" width="100px" src="https://avatars2.githubusercontent.com/u/12171804?s=100&v=4" alt="Gurkirpal Singh" width="100px"/><br />Gurkirpal Singh </p>|<p align="center"><img style="border-radius: 100px" width="100px" src="https://avatars2.githubusercontent.com/u/3865119?s=200&v=4" alt="Eloy"/><br />Eloy</p>|<p align="center"><img style="border-radius: 100px" width="100px" src="https://avatars0.githubusercontent.com/u/3801092?s=200&v=4" alt="Thathiane"/><br />Thathiane Rosa</p>| |<p align="center"><img style="border-radius: 100px" width="100px" src="https://avatars3.githubusercontent.com/u/8609211?s=200&v=4" alt="Vinay Hedge"/><br />Vinay Hegde</p>|<p align="center"><img style="border-radius: 100px" width="100px" src="https://avatars3.githubusercontent.com/u/17693231?s=200&v=4" alt="Andre Moukarzel"/><br />Andre Moukarzel</p>|<p align="center"><img style="border-radius: 100px" width="100px" src="https://avatars3.githubusercontent.com/u/27254325?s=200&v=4" alt="Caio Andrade"/><br />Caio Andrade</p>|<p align="center"><img style="border-radius: 100px" width="100px" src="https://avatars2.githubusercontent.com/u/7110169?s=200&v=4" alt="Pedro Pereira"/><br />Pedro Pereira </p>|<p align="center"><img style="border-radius: 100px" width="100px" src="https://avatars1.githubusercontent.com/u/20888363?s=200&v=4" alt="Jay Welborn"/><br />Jay Welborn </p>| |<p align="center"><img style="border-radius: 100px" width="100px" src="https://avatars1.githubusercontent.com/u/39068024?s=460&v=4" alt="Leandro Rodrigues" width="100px"/><br />Leandro Rodrigues</p>|<p align="center"><img style="border-radius: 100px" width="100px" src="https://avatars1.githubusercontent.com/u/30770796?s=460&v=4" alt="ParthPratim" width="100px"/><br />Parth Pratim </p>|<p align="center"><img style="border-radius: 100px" width="100px" src="https://avatars1.githubusercontent.com/u/5351077?s=460&v=4" alt="JorossBarredo" width="100px"/><br />Joross Joross </p>| <p align="center"><img style="border-radius: 100px" width="100px" src="https://avatars.githubusercontent.com/u/18169492?v=4" alt="DorianD" width="100px"/><br />Dorian D. </p>| |

License

This project is licensed under the MIT License

View on GitHub
GitHub Stars21
CategoryDevelopment
Updated3y ago
Forks21

Languages

Kotlin

Security Score

80/100

Audited on Jan 3, 2023

No findings