Skip to content

Choose a tag to compare

@c-vigo c-vigo released this 19 Dec 07:09
· 312 commits to main since this release
Immutable release. Only release title and notes can be modified.
9d06bac

Commit Action v0.1.0 - Initial Release

Release Date: December 19, 2025


Overview

Initial release of Commit Action, a GitHub Action that enables automated commits via the GitHub API. This action creates automatically signed commits and can bypass repository rulesets and branch protection rules, making it perfect for CI/CD pipelines and automated workflows.

What's New

Core Features

  • Automatically Signed Commits - All commits created via GitHub API are automatically signed by GitHub, eliminating the need for GPG key setup
  • Ruleset Bypass - Uses GitHub API instead of traditional git push, allowing commits to bypass branch protection rules and repository rulesets
  • Modular Design - Use as a GitHub Action, CLI tool, or import as a TypeScript module
  • Type-Safe - Built with TypeScript for full type safety and excellent developer experience
  • Well Tested - Comprehensive unit test coverage with Jest

Key Capabilities

  • Flexible File Input - Support for individual files, directories, or automatic detection from git status
  • Directory Expansion - Automatically expands directory paths to individual files
  • File Permissions - Preserves executable permissions for scripts and binaries
  • Base64 Encoding - Binary-safe file content transfer
  • Environment Configuration - Simple setup via environment variables

Installation

As a GitHub Action

Add this to your workflow:

- name: Commit and push changes via API
  uses: vig-os/commit-action@v0.1.0
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    GITHUB_REPOSITORY: ${{ github.repository }}
    GITHUB_REF: refs/heads/main
    COMMIT_MESSAGE: "chore: update files"
    FILE_PATHS: "docs,README.md"

As a CLI Tool

npm install -g commit-action
npm run commit

As a Module

import { commitViaAPI } from 'commit-action';

const result = await commitViaAPI({
  token: 'your-token',
  owner: 'owner',
  repo: 'repo',
  branch: 'main',
  message: 'chore: update files',
  filePaths: ['file1.txt', 'file2.txt'],
});

Configuration

Required Environment Variables

  • GITHUB_TOKEN or GH_TOKEN - GitHub token (app token or personal access token)

Optional Environment Variables

  • GITHUB_REPOSITORY - Repository in format "owner/repo" (defaults to workflow context)
  • GITHUB_REF - Branch reference (e.g., "refs/heads/main", defaults to workflow context)
  • COMMIT_MESSAGE - Commit message (defaults to "chore: update files")
  • FILE_PATHS - Comma-separated list of file paths or directories (auto-detects from git status if not provided)
  • BASE_SHA - Optional base commit SHA (defaults to branch HEAD)

Use Cases

  • Automated Documentation Updates - Commit generated docs in CI/CD pipelines
  • Bot Commits - Allow bots to commit without bypassing branch protection
  • Synchronization Scripts - Keep repositories in sync automatically
  • Generated Content - Commit auto-generated reports, configs, or artifacts
  • Release Automation - Automate version bumps and changelog updates

Documentation

Links

Technical Details

  • Runtime: Node.js 20
  • Language: TypeScript 5.3+
  • License: MIT
  • Dependencies: @actions/core, @actions/github

Changelog

See CHANGELOG.md for detailed changes.

Contributing

Contributions are welcome! Please read our contributing guidelines and submit pull requests.

New Contributors

  • @c-vigo made their first contribution in #1

Full Changelog: initial...v0.1.0