From 51495252d0c1b686dd9f03e09a1b471a4d459083 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Sep 2025 01:18:08 +0000 Subject: [PATCH 1/4] Initial plan From 2596bc4bc97eca85d32fb0a5bd5288884a086343 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Sep 2025 01:25:26 +0000 Subject: [PATCH 2/4] feat: Add unified Jekyll documentation site with commit-check and commit-check-action docs Co-authored-by: shenxianpeng <3353385+shenxianpeng@users.noreply.github.com> --- .github/workflows/deploy.yml | 54 +++++++ .gitignore | 22 +++ Gemfile | 14 ++ README.md | 14 +- _config.yml | 27 ++++ _includes/navigation.html | 6 + _layouts/default.html | 62 ++++++++ commit-check-action/index.md | 264 +++++++++++++++++++++++++++++++++++ commit-check/cli-args.md | 116 +++++++++++++++ commit-check/index.md | 225 +++++++++++++++++++++++++++++ index.md | 71 ++++++++++ 11 files changed, 873 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/deploy.yml create mode 100644 .gitignore create mode 100644 Gemfile create mode 100644 _config.yml create mode 100644 _includes/navigation.html create mode 100644 _layouts/default.html create mode 100644 commit-check-action/index.md create mode 100644 commit-check/cli-args.md create mode 100644 commit-check/index.md create mode 100644 index.md diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..e739e50 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,54 @@ +name: Deploy Jekyll Site to GitHub Pages + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v5 + + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.1' + bundler-cache: true + cache-version: 0 + + - name: Setup Pages + id: pages + uses: actions/configure-pages@v4 + + - name: Build with Jekyll + run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" + env: + JEKYLL_ENV: production + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + + deploy: + if: github.ref == 'refs/heads/main' + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..02754c8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,22 @@ +# Jekyll +_site/ +.sass-cache/ +.jekyll-cache/ +.jekyll-metadata + +# Ruby +vendor/ +.bundle/ +Gemfile.lock + +# macOS +.DS_Store + +# Windows +Thumbs.db + +# Logs +*.log + +# Temporary files +*~ \ No newline at end of file diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..3a4c746 --- /dev/null +++ b/Gemfile @@ -0,0 +1,14 @@ +source "https://rubygems.org" + +gem "github-pages", group: :jekyll_plugins +gem "jekyll-feed", "~> 0.12" + +# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem +# and associated library. +platforms :mingw, :x64_mingw, :mswin, :jruby do + gem "tzinfo", ">= 1", "< 3" + gem "tzinfo-data" +end + +# Performance-booster for watching directories on Windows +gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] \ No newline at end of file diff --git a/README.md b/README.md index 40f4e69..f78fcf2 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,12 @@ -# commit-check.github.io -Commit Check main website, blog, and more +# Commit Check Documentation Site + +This repository contains the unified documentation site for the Commit Check organization, hosted at [commit-check.github.io](https://commit-check.github.io). + +## Structure + +- **commit-check/**: Documentation for the main commit-check tool +- **commit-check-action/**: Documentation for the GitHub Action + +## Development + +This site is built with Jekyll and automatically deployed via GitHub Pages. diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..8366d7d --- /dev/null +++ b/_config.yml @@ -0,0 +1,27 @@ +# Site settings +title: Commit Check Documentation +description: A powerful tool for enforcing commit metadata standards +url: "https://commit-check.github.io" +baseurl: "" + +# Build settings +markdown: kramdown +highlighter: rouge + +# Plugins +plugins: + - jekyll-feed + - jekyll-sitemap + +# Social links +github_username: commit-check + +# Exclude files +exclude: + - node_modules/ + - .sass-cache/ + - .jekyll-cache/ + - gemfile + - gemfile.lock + - vendor/ + - README.md \ No newline at end of file diff --git a/_includes/navigation.html b/_includes/navigation.html new file mode 100644 index 0000000..a0e4bdb --- /dev/null +++ b/_includes/navigation.html @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..ce3e016 --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,62 @@ + + + + + + + + {% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape }}{% endif %} + + + + + + + + + + {% include navigation.html %} + +
+
+ {{ content }} +
+
+ + + + \ No newline at end of file diff --git a/commit-check-action/index.md b/commit-check-action/index.md new file mode 100644 index 0000000..04791fc --- /dev/null +++ b/commit-check-action/index.md @@ -0,0 +1,264 @@ +--- +layout: default +title: Commit Check GitHub Action +permalink: /commit-check-action/ +--- + +# Commit Check GitHub Action + +[![Commit Check](https://img.shields.io/github/actions/workflow/status/commit-check/commit-check-action/commit-check.yml?branch=main&label=Commit%20Check&color=blue&logo=github)](https://github.com/commit-check/commit-check-action/actions/workflows/commit-check.yml) +![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/commit-check/commit-check-action?color=blue) +[![Used by](https://img.shields.io/static/v1?label=Used%20by&message=72&color=informational&logo=slickpic)](https://github.com/commit-check/commit-check-action/network/dependents) +[![GitHub marketplace](https://img.shields.io/badge/Marketplace-commit--check--action-blue)](https://github.com/marketplace/actions/commit-check-action) +[![SLSA](https://slsa.dev/images/gh-badge-level3.svg?color=blue)](https://github.com/commit-check/commit-check-action/blob/a2873ca0482dd505c93fb51861c953e82fd0a186/action.yml#L59-L69) + +A GitHub Action for checking commit message formatting, branch naming, committer name, email, commit signoff, and more. + +## Table of Contents + +* [Usage](#usage) +* [Optional Inputs](#optional-inputs) +* [GitHub Action Job Summary](#github-action-job-summary) +* [GitHub Pull Request Comments](#github-pull-request-comments) +* [Badging Your Repository](#badging-your-repository) +* [Versioning](#versioning) + +## Usage + +Create a new GitHub Actions workflow in your project, e.g. at `.github/workflows/commit-check.yml` + +```yaml +name: Commit Check + +on: + push: + pull_request: + branches: 'main' + +jobs: + commit-check: + runs-on: ubuntu-latest + permissions: # use permissions because use of pr-comments + contents: read + pull-requests: write + steps: + - uses: actions/checkout@v5 + with: + ref: ${{ github.event.pull_request.head.sha }} # checkout PR HEAD commit + fetch-depth: 0 # required for merge-base check + - uses: commit-check/commit-check-action@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # use GITHUB_TOKEN because use of pr-comments + with: + message: true + branch: true + author-name: true + author-email: true + commit-signoff: true + merge-base: false + imperative: false + job-summary: true + pr-comments: ${{ github.event_name == 'pull_request' }} +``` + +## Used By + +

+ Apache + Apache   + discovery-unicamp + discovery-unicamp   + Texas Instruments + Texas Instruments   + OpenCADC + OpenCADC   + Extrawest + Extrawest + Chainlift + Chainlift   + Mila + Mila   + RLinf + RLinf   + and many more. +

+ +## Optional Inputs + +### `message` + +- **Description**: check commit message formatting convention. + - By default, the rule follows [Conventional Commits](https://www.conventionalcommits.org/). +- **Default**: `true` + +### `branch` + +- **Description**: check git branch naming convention. + - By default, the rule follows [Conventional Branch](https://conventional-branch.github.io/). +- **Default**: `true` + +### `author-name` + +- **Description**: check committer author name. +- **Default**: `true` + +### `author-email` + +- **Description**: check committer author email. +- **Default**: `true` + +### `commit-signoff` + +- **Description**: check committer commit signature. +- **Default**: `true` + +### `merge-base` + +- **Description**: check current branch is rebased onto the target branch. +- **Default**: `false` + +> **Important:** `merge-base` is an experimental feature. By default, it's disabled. +> +> To use this feature, you need to fetch all history for all branches by setting `fetch-depth: 0` in `actions/checkout`. + +### `imperative` + +- **Description**: check commit message is imperative mood. +- **Default**: `false` + +### `dry-run` + +- **Description**: run checks without failing. exit code is 0; otherwise is 1. +- **Default**: `false` + +### `job-summary` + +- **Description**: display job summary to the workflow run. +- **Default**: `true` + +### `pr-comments` + +- **Description**: post results to the pull request comments. +- **Default**: `false` + +> **Important:** `pr-comments` is an experimental feature. By default, it's disabled. To use it, you need to set `GITHUB_TOKEN` in the GitHub Action. +> +> This feature currently doesn't work with forked repositories. For more details, refer to issue [#77](https://github.com/commit-check/commit-check-action/issues/77). + +**Note:** The default rule of above inputs follows [this configuration](https://github.com/commit-check/commit-check/blob/main/.commit-check.yml). If you want to customize, just add your `.commit-check.yml` config file under your repository root directory. + +## GitHub Action Job Summary + +By default, commit-check-action results are shown on the job summary page of the workflow. + +### Success Job Summary + +![Success job summary](https://github.com/commit-check/.github/blob/main/screenshot/success-job-summary.png) + +### Failure Job Summary + +![Failure job summary](https://github.com/commit-check/.github/blob/main/screenshot/failure-job-summary.png) + +## GitHub Pull Request Comments + +### Success Pull Request Comment + +![Success pull request comment](https://github.com/commit-check/.github/blob/main/screenshot/success-pr-comments.png) + +### Failure Pull Request Comment + +![Failure pull request comment](https://github.com/commit-check/.github/blob/main/screenshot/failure-pr-comments.png) + +## Badging Your Repository + +You can add a badge to your repository to show your contributors/users that you use commit-check! + +[![Commit Check](https://github.com/commit-check/commit-check-action/actions/workflows/commit-check.yml/badge.svg)](https://github.com/commit-check/commit-check-action/actions/workflows/commit-check.yml) + +**Markdown** + +```markdown +[![Commit Check](https://github.com/commit-check/commit-check-action/actions/workflows/commit-check.yml/badge.svg)](https://github.com/commit-check/commit-check-action/actions/workflows/commit-check.yml) +``` + +**reStructuredText** + +```rst +.. image:: https://github.com/commit-check/commit-check-action/actions/workflows/commit-check.yml/badge.svg + :target: https://github.com/commit-check/commit-check-action/actions/workflows/commit-check.yml + :alt: Commit Check +``` + +## Advanced Examples + +### Minimal Setup +```yaml +- uses: commit-check/commit-check-action@v1 +``` + +### Full Configuration +```yaml +- uses: commit-check/commit-check-action@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + message: true + branch: true + author-name: true + author-email: true + commit-signoff: true + merge-base: true + imperative: true + job-summary: true + pr-comments: true + dry-run: false +``` + +### Custom Workflow Example +```yaml +name: Enhanced Commit Check + +on: + push: + branches: [ main, develop ] + pull_request: + branches: [ main ] + +jobs: + commit-check: + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write + steps: + - name: Checkout code + uses: actions/checkout@v5 + with: + fetch-depth: 0 + ref: ${{ github.event.pull_request.head.sha }} + + - name: Run commit check + uses: commit-check/commit-check-action@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + message: true + branch: true + author-name: true + author-email: true + commit-signoff: false + merge-base: ${{ github.event_name == 'pull_request' }} + imperative: true + job-summary: true + pr-comments: ${{ github.event_name == 'pull_request' }} +``` + +## Versioning + +Versioning follows [Semantic Versioning](https://semver.org/). + +## Have questions or feedback? + +To provide feedback (requesting a feature or reporting a bug), please post to [issues](https://github.com/commit-check/commit-check/issues). + +[← Back to Main Documentation](../) \ No newline at end of file diff --git a/commit-check/cli-args.md b/commit-check/cli-args.md new file mode 100644 index 0000000..36249a8 --- /dev/null +++ b/commit-check/cli-args.md @@ -0,0 +1,116 @@ +--- +layout: default +title: CLI Arguments - Commit Check Tool +permalink: /commit-check/cli-args/ +--- + +# CLI Arguments + +## commit-check --help + +``` +usage: commit-check [-h] [-m] [-b] [-a] [-e] [-s] [-i] [-n] [-d] + [--message-skip-on MESSAGE_SKIP_ON] [--commit-skip-on COMMIT_SKIP_ON] + [--config CONFIG] + +Checks commit message formatting, branch naming, commit author name, commit author email, commit signoff, +and the commit is a merge base. + +options: + -h, --help show this help message and exit + -m, --message check commit message formatting + -b, --branch check branch name + -a, --author-name check commit author name + -e, --author-email check commit author email + -s, --commit-signoff check commit signoff + -i, --imperative check commit message is imperative mood + -n, --merge-base check current branch is rebased onto the target branch + -d, --dry-run dry run without fail + --message-skip-on MESSAGE_SKIP_ON + skip checking message on given text + --commit-skip-on COMMIT_SKIP_ON + skip checking commit on given text + --config CONFIG path to config file, default is .commit-check.yml +``` + +## Options Details + +### `-m, --message` +Check commit message formatting against the configured rules. By default, this follows [Conventional Commits](https://www.conventionalcommits.org/) specification. + +### `-b, --branch` +Check branch naming conventions. By default, this follows [Conventional Branch](https://conventional-branch.github.io/) naming patterns. + +### `-a, --author-name` +Validate the commit author name against configured patterns. + +### `-e, --author-email` +Validate the commit author email against configured patterns. + +### `-s, --commit-signoff` +Check that commits include a valid "Signed-off-by" line. + +### `-i, --imperative` +Check that commit messages use imperative mood (e.g., "Add feature" not "Added feature"). + +### `-n, --merge-base` +Check that the current branch is properly rebased onto the target branch. This is useful for ensuring clean merge history. + +### `-d, --dry-run` +Run all checks without failing. The exit code will be 0 regardless of check results, but violations will still be reported. + +### `--message-skip-on TEXT` +Skip message checking when the commit message contains the specified text. + +### `--commit-skip-on TEXT` +Skip all commit checking when the commit SHA or message contains the specified text. + +### `--config PATH` +Specify a custom path to the configuration file. Defaults to `.commit-check.yml` in the repository root. + +## Examples + +### Basic Usage +```bash +# Check all common validations +commit-check --message --branch --author-name --author-email + +# Check specific validations +commit-check -m -b # Short form + +# Include signoff and imperative checking +commit-check --message --branch --commit-signoff --imperative +``` + +### Advanced Usage +```bash +# Dry run to see what would fail without actually failing +commit-check --message --branch --dry-run + +# Skip certain commits +commit-check --message --commit-skip-on "WIP" + +# Use custom config file +commit-check --config /path/to/custom-config.yml --message --branch +``` + +### Integration Examples + +**Git Hook** +```bash +#!/bin/sh +# .git/hooks/pre-push +commit-check --message --branch --author-name --author-email --commit-signoff +``` + +**CI/CD** +```bash +# Run in CI pipeline +commit-check --message --branch --author-name --author-email --merge-base +``` + +## Configuration + +All CLI options can be customized via the `.commit-check.yml` configuration file. See the [main documentation](../) for configuration details. + +[← Back to Commit Check Documentation](../) \ No newline at end of file diff --git a/commit-check/index.md b/commit-check/index.md new file mode 100644 index 0000000..908e15b --- /dev/null +++ b/commit-check/index.md @@ -0,0 +1,225 @@ +--- +layout: default +title: Commit Check Tool +permalink: /commit-check/ +--- + +# Commit Check Tool + +[![PyPI](https://img.shields.io/pypi/v/commit-check?logo=python&logoColor=white)](https://pypi.org/project/commit-check/) +[![CI](https://github.com/commit-check/commit-check/actions/workflows/main.yml/badge.svg)](https://github.com/commit-check/commit-check/actions/workflows/main.yml) +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=commit-check_commit-check&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=commit-check_commit-check) +[![CodeCov](https://codecov.io/gh/commit-check/commit-check/branch/main/graph/badge.svg?token=GC2U5V5ZRT)](https://codecov.io/gh/commit-check/commit-check) +[![commit-check](https://img.shields.io/badge/commit--check-enabled-brightgreen?logo=Git&logoColor=white)](https://github.com/commit-check/commit-check) +[![SLSA](https://slsa.dev/images/gh-badge-level3.svg)](https://slsa.dev) + +## Overview + +**Commit Check** is a free, powerful tool that enforces commit metadata standards, including commit message, branch naming, committer name/email, commit signoff and more. + +Fully customizable with error messages and suggested commands, it ensures compliance across teams. + +As an alternative to GitHub Enterprise [Metadata restrictions](https://docs.github.com/en/enterprise-server@3.11/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets#metadata-restrictions) and Bitbucket's paid plugin [Yet Another Commit Checker](https://marketplace.atlassian.com/apps/1211854/yet-another-commit-checker?tab=overview&hosting=datacenter), Commit Check stands out by integrating DevOps principles and Infrastructure as Code (IaC). + +## Configuration + +### Use Default Configuration + +- **Commit Check** uses a [default configuration](https://github.com/commit-check/commit-check/blob/main/commit_check/__init__.py) if you do not provide a `.commit-check.yml` file. + +- The default configuration enforces commit message rules based on the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary) specification and branch naming rules based on the [Conventional Branch](https://conventional-branch.github.io/#summary) convention. + +### Use Custom Configuration + +To customize the behavior, create a config file `.commit-check.yml` under your repository's root directory, e.g., [.commit-check.yml](https://github.com/commit-check/commit-check/blob/main/.commit-check.yml) + +## Usage + +### Running as GitHub Action + +Please see [commit-check/commit-check-action](../commit-check-action/) + +### Running as pre-commit hook + +> **Tip:** Make sure `pre-commit` is [installed](https://pre-commit.com/#install). + +```yaml +- repo: https://github.com/commit-check/commit-check + rev: the tag or revision + hooks: # support hooks + - id: check-message # requires commit-msg hook + - id: check-branch + - id: check-author-name + - id: check-author-email + - id: check-commit-signoff + - id: check-merge-base # requires download all git history + - id: check-imperative +``` + +### Running as CLI + +**Install globally** + +```bash +sudo pip3 install -U commit-check +``` + +**Install locally** + +```bash +pip install -U commit-check +``` + +**Install from source code** + +```bash +pip install git+https://github.com/commit-check/commit-check.git@main +``` + +Then, run `commit-check --help` or `cchk --help` (alias for `commit-check`) from the command line. + +For more information, see the [CLI arguments documentation](cli-args.html). + +### Running as Git Hooks + +To configure the hook, create a script file in the `.git/hooks/` directory. + +```bash +#!/bin/sh +commit-check --message --branch --author-name --author-email --commit-signoff --merge-base --imperative +``` + +Save the script file as `pre-push` and make it executable: + +```bash +chmod +x .git/hooks/pre-push +``` + +Now, `git push` will trigger this hook automatically. + +## Examples + +### Check Commit Message Failed + +```text +Commit rejected by Commit-Check. + + (c).-.(c) (c).-.(c) (c).-.(c) (c).-.(c) (c).-.(c) + / ._. \ / ._. \ / ._. \ / ._. \ / ._. \ + __\( C )/__ __\( H )/__ __\( E )/__ __\( C )/__ __\( K )/__ +(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._) + || E || || R || || R || || O || || R || + _.' '-' '._ _.' '-' '._ _.' '-' '._ _.' '-' '._ _.' '-' '._ +(.-./`-´\.-.)(.-./`-´\.-.)(.-./`-´\.-.)(.-./`-´\.-.)(.-./`-´\.-.) + `-´ `-´ `-´ `-´ `-´ `-´ `-´ `-´ `-´ `-´ + +Type message check failed => my test commit message +It doesn't match regex: ^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test){1}(\([\w\-\.]+\))?(!)?: ([\w ])+([\s\S]*) + +The commit message should be structured as follows: + +[optional scope]: +[optional body] +[optional footer(s)] + +More details please refer to https://www.conventionalcommits.org +Suggest: please check your commit message whether matches above regex +``` + +### Check Branch Naming Failed + +```text +Commit rejected by Commit-Check. + + (c).-.(c) (c).-.(c) (c).-.(c) (c).-.(c) (c).-.(c) + / ._. \ / ._. \ / ._. \ / ._. \ / ._. \ + __\( C )/__ __\( H )/__ __\( E )/__ __\( C )/__ __\( K )/__ +(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._) + || E || || R || || R || || O || || R || + _.' '-' '._ _.' '-' '._ _.' '-' '._ _.' '-' '._ _.' '-' '._ +(.-./`-´\.-.)(.-./`-´\.-.)(.-./`-´\.-.)(.-./`-´\.-.)(.-./`-´\.-.) + `-´ `-´ `-´ `-´ `-´ `-´ `-´ `-´ `-´ `-´ + +Commit rejected. + +Type branch check failed => patch-1 +It doesn't match regex: ^(bugfix|feature|release|hotfix|task|chore)\/.+|(master)|(main)|(HEAD)|(PR-.+) +Branches must begin with these types: bugfix/ feature/ release/ hotfix/ task/ chore/ +Suggest: run command `git checkout -b type/branch_name` +``` + +### Check Commit Signature Failed + +```text +Commit rejected by Commit-Check. + + (c).-.(c) (c).-.(c) (c).-.(c) (c).-.(c) (c).-.(c) + / ._. \ / ._. \ / ._. \ / ._. \ / ._. \ + __\( C )/__ __\( H )/__ __\( E )/__ __\( C )/__ __\( K )/__ +(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._) + || E || || R || || R || || O || || R || + _.' '-' '._ _.' '-' '._ _.' '-' '._ _.' '-' '._ _.' '-' '._ +(.-./`-´\.-.)(.-./`-´\.-.)(.-./`-´\.-.)(.-./`-´\.-.)(.-./`-´\.-.) + `-´ `-´ `-´ `-´ `-´ `-´ `-´ `-´ `-´ `-´ + +Commit rejected. + +Type commit_signoff check failed => c92ce259ff041c91859c7fb61afdbb391e769d0f +It doesn't match regex: Signed-off-by:.*[A-Za-z0-9]\s+<.+@.+> +Signed-off-by not found in latest commit +Suggest: run command `git commit -m "conventional commit message" --signoff` +``` + +### Check Imperative Mood Failed + +```text +Commit rejected by Commit-Check. + + (c).-.(c) (c).-.(c) (c).-.(c) (c).-.(c) (c).-.(c) + / ._. \ / ._. \ / ._. \ / ._. \ / ._. \ + __\( C )/__ __\( H )/__ __\( E )/__ __\( C )/__ __\( K )/__ +(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._)(_.-/'-'\-._) + || E || || R || || R || || O || || R || + _.' '-' '._ _.' '-' '._ _.' '-' '._ _.' '-' '._ _.' '-' '._ +(.-./`-´\.-.)(.-./`-´\.-.)(.-./`-´\.-.)(.-./`-´\.-.)(.-./`-´\.-.) + `-´ `-´ `-´ `-´ `-´ `-´ `-´ `-´ `-´ `-´ + +Commit rejected. + +Type imperative check failed => Added file +It doesn't match regex: imperative mood pattern +Commit message should use imperative mood (e.g., "Add feature" not "Added feature") +Suggest: Use imperative mood in commit message like "Add", "Fix", "Update", "Remove" +``` + +## Badging your repository + +You can add a badge to your repository to show that you use commit-check! + +[![commit-check](https://img.shields.io/badge/commit--check-enabled-brightgreen?logo=Git&logoColor=white)](https://github.com/commit-check/commit-check) + +**Markdown** + +```markdown +[![commit-check](https://img.shields.io/badge/commit--check-enabled-brightgreen?logo=Git&logoColor=white)](https://github.com/commit-check/commit-check) +``` + +**reStructuredText** + +```rst +.. image:: https://img.shields.io/badge/commit--check-enabled-brightgreen?logo=Git&logoColor=white + :target: https://github.com/commit-check/commit-check + :alt: commit-check +``` + +## Versioning + +Versioning follows [Semantic Versioning](https://semver.org/). + +## Have question or feedback? + +Please post to [issues](https://github.com/commit-check/commit-check/issues) for feedback, feature requests, or bug reports. + +## License + +This project is released under the [MIT License](https://github.com/commit-check/commit-check/blob/main/LICENSE) \ No newline at end of file diff --git a/index.md b/index.md new file mode 100644 index 0000000..cd3e814 --- /dev/null +++ b/index.md @@ -0,0 +1,71 @@ +--- +layout: default +title: Commit Check Documentation +--- + +# Commit Check Documentation + +Welcome to the central documentation site for the Commit Check organization. Commit Check provides powerful tools for enforcing commit metadata standards across your development workflow. + +## Available Tools + +### [Commit Check Tool](commit-check/) +The main commit-check tool is a powerful command-line utility and pre-commit hook that enforces commit message formatting, branch naming, committer information, and more. + +**Features:** +- Commit message validation (Conventional Commits support) +- Branch naming conventions +- Author name and email validation +- Commit signature verification +- Multiple integration options (CLI, pre-commit, Git hooks) + +[View Documentation →](commit-check/) + +### [Commit Check GitHub Action](commit-check-action/) +A GitHub Action that brings commit-check validation directly to your CI/CD pipeline, with support for pull request comments and job summaries. + +**Features:** +- Seamless GitHub integration +- Pull request validation +- Workflow job summaries +- Custom configuration support +- Works with fork repositories + +[View Documentation →](commit-check-action/) + +## Quick Start + +### Using as GitHub Action +```yaml +- uses: commit-check/commit-check-action@v1 + with: + message: true + branch: true + author-name: true + author-email: true +``` + +### Using as CLI Tool +```bash +pip install commit-check +commit-check --message --branch --author-name --author-email +``` + +### Using as Pre-commit Hook +```yaml +- repo: https://github.com/commit-check/commit-check + rev: main + hooks: + - id: check-message + - id: check-branch +``` + +## Getting Help + +- **Issues & Feature Requests**: [GitHub Issues](https://github.com/commit-check/commit-check/issues) +- **Discussions**: [GitHub Discussions](https://github.com/commit-check/commit-check/discussions) +- **Source Code**: [GitHub Organization](https://github.com/commit-check) + +## License + +All Commit Check tools are released under the MIT License. \ No newline at end of file From 151287df03331bbfb55cf321032ccb64ac8df752 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 17 Sep 2025 01:28:55 +0000 Subject: [PATCH 3/4] docs: Add configuration guide, troubleshooting, quick start, and enhanced styling Co-authored-by: shenxianpeng <3353385+shenxianpeng@users.noreply.github.com> --- _config.yml | 4 + _includes/navigation.html | 1 + _layouts/default.html | 2 +- assets/css/main.scss | 116 ++++++++++++++ commit-check-action/index.md | 4 + commit-check-action/troubleshooting.md | 103 ++++++++++++ commit-check/configuration.md | 210 +++++++++++++++++++++++++ commit-check/index.md | 4 +- index.md | 4 + quick-start.md | 130 +++++++++++++++ 10 files changed, 576 insertions(+), 2 deletions(-) create mode 100644 assets/css/main.scss create mode 100644 commit-check-action/troubleshooting.md create mode 100644 commit-check/configuration.md create mode 100644 quick-start.md diff --git a/_config.yml b/_config.yml index 8366d7d..cf5bc7f 100644 --- a/_config.yml +++ b/_config.yml @@ -13,6 +13,10 @@ plugins: - jekyll-feed - jekyll-sitemap +# Sass configuration +sass: + style: compressed + # Social links github_username: commit-check diff --git a/_includes/navigation.html b/_includes/navigation.html index a0e4bdb..93b846b 100644 --- a/_includes/navigation.html +++ b/_includes/navigation.html @@ -1,5 +1,6 @@