Skip to content

Jyotibrat/Git-Pulse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Git Pulse

Project Logo

A comprehensive Node.js automation suite that goes beyond simple commit generation. While most GitHub automation tools only handle commits, Git Pulse provides a complete development workflow automation including commits, issues, pull requests, merges, and post-merge code reviews.

πŸš€Overview

This repository contains automation scripts designed to provide end-to-end GitHub workflow automation. Unlike traditional GitHub automation tools that focus solely on commit generation, Git Pulse offers a comprehensive solution that mimics real development workflows.

What Makes Git Pulse Different

Traditional GitHub Automation: Only generates commits

  • βœ… Creates commits
  • ❌ No issue tracking
  • ❌ No pull request workflow
  • ❌ No code review process

Git Pulse: Complete development lifecycle automation

  • βœ… Auto Code Commits: Intelligent commit generation with realistic patterns
  • βœ… Issue Management: Create, assign, and manage GitHub issues
  • βœ… Pull Request Workflow: Create PRs with proper branching strategies
  • βœ… Automated Merges: Handle PR merges with configurable approval workflows
  • βœ… Post-Merge Reviews: Generate realistic code review comments and discussions

This creates a natural, authentic development workflow that mirrors real team collaboration patterns.

πŸ“ Project Structure

Git-Pulse/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ package.json
β”‚   β”œβ”€β”€ package-lock.json
β”‚   └── index.js
β”‚
β”œβ”€β”€ Credits/
β”‚   └── Credit.md
β”‚ 
β”œβ”€β”€ Archive/
β”‚   β”œβ”€β”€ Readme.md
β”‚   └── index.js
β”‚
β”œβ”€β”€ .github/
β”‚   β”œβ”€β”€ ISSUE_TEMPLATE/
β”‚   β”‚   β”œβ”€β”€ bug_report.md
β”‚   β”‚   └── feature_request.md
β”‚   β”œβ”€β”€ Assets/
β”‚   β”‚   └── logo.png
β”‚   β”œβ”€β”€ CODE_OF_CONDUCT.md
β”‚   └── README.md/
β”‚
└── LICENSE

✨ Features

Core Workflow Automation

  • Smart Commit Generation: Create realistic commits with varied content and timing patterns
  • Issue Lifecycle Management: Automatically create, label, assign, and close GitHub issues
  • Pull Request Automation: Generate PRs with proper branching, descriptions, and linking to issues
  • Automated Code Reviews: Post meaningful review comments and suggestions
  • Merge Management: Handle PR approvals and merges with configurable strategies

Advanced Capabilities

  • Multi-Repository Management: Operate on multiple Git repositories simultaneously
  • Automated Discovery: Automatically find and process Git repositories in specified directories
  • Workflow Templates: Pre-configured workflows for different development patterns
  • Integration APIs: Connect with GitHub API for complete platform integration
  • Realistic Timing: Simulate natural development patterns and team collaboration rhythms

Technical Features

  • Flexible Configuration: Customizable settings for different automation scenarios
  • Error Handling: Robust error handling for reliable batch operations
  • Comprehensive Logging: Detailed logging for monitoring and debugging

πŸ› οΈ Installation

Prerequisites

  • Node.js (v14.0.0 or higher)
  • Git installed and configured
  • A GitHub account with access to the repositories to be automated
  • Access to target repositories (using GitHub Fine-Grained Token)

Setup

  1. Clone the repository

    git clone https://github.com/Jyotibrat/Git-Pulse.git
    cd Git-Pulse
  2. Install dependencies

    cd src
    npm install
  3. Configure your settings

    Edit your details of GitHub Username, GitHub Fine-Grained Token and Repositories Names.

πŸ“– Usage

Basic Example

const GitPulse = require('./src/git-pulse');

const pulse = new GitPulse({
    repositories: ['../repo1', '../repo2'],
    autoDiscoverRepos: true,
    parentDirectory: '../projects',
    
    // Workflow configuration
    workflows: {
        commits: true,
        issues: true,
        pullRequests: true,
        codeReviews: true,
        autoMerge: true
    }
});

await pulse.execute();

Complete Workflow Example

// Configure a full development cycle
const fullWorkflow = new GitPulse({
    repositories: ['../my-project'],
    workflows: {
        // Create realistic commits
        commits: {
            frequency: 'daily',
            types: ['feat', 'fix', 'docs', 'refactor'],
            realistic: true
        },
        
        // Generate and manage issues
        issues: {
            createRate: 0.3,
            types: ['bug', 'feature', 'enhancement'],
            autoAssign: true
        },
        
        // Handle pull requests
        pullRequests: {
            branchStrategy: 'feature-branch',
            linkToIssues: true,
            reviewRequired: true
        },
        
        // Post-merge activities
        postMerge: {
            codeReview: true,
            documentation: true,
            cleanup: true
        }
    }
});

await fullWorkflow.start();

Configuration Options

const config = {
    // Repository settings
    repositories: [],           // Array of repository paths
    autoDiscoverRepos: true,   // Auto-discover repositories
    parentDirectory: '../',     // Parent directory to search
    
    // GitHub Integration
    github: {
        token: process.env.GITHUB_TOKEN,  // GitHub personal access token
        owner: 'username',                // Repository owner
        defaultBranch: 'main'            // Default branch name
    },
    
    // Workflow Configuration
    workflows: {
        commits: {
            enabled: true,
            frequency: 'daily',           // daily, weekly, random
            pattern: 'realistic'          // realistic, burst, steady
        },
        issues: {
            enabled: true,
            createRate: 0.3,             // Issues per day ratio
            autoClose: true,             // Auto-close resolved issues
            labels: ['bug', 'feature']   // Default labels
        },
        pullRequests: {
            enabled: true,
            branchStrategy: 'feature',    // feature, hotfix, release
            reviewers: 2,                // Number of reviewers
            autoMerge: true              // Auto-merge when approved
        },
        codeReview: {
            enabled: true,
            depth: 'comprehensive',      // light, moderate, comprehensive
            tone: 'constructive'         // constructive, strict, casual
        }
    },
    
    // Operation settings
    batchSize: 10,             // Number of repos to process simultaneously
    delay: 100,                // Delay between operations (ms)
    
    // Logging
    verbose: true,             // Enable detailed logging
    logFile: 'git-pulse.log'   // Log file path
};

πŸ“š Documentation

πŸ§ͺ Testing

Run the test (would suggest first do it in a freshly made GitHub Account):

# Run all tests
cd "Git-Pulse/src"
node index.js

🀝 Contributing

We welcome contributions! Please see our CODE_OF_CONDUCT for details.

Development Setup

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make your changes and perform tests.
  4. Commit your changes: git commit -m 'Add feature'
  5. Push to your fork: git push origin feature-name
  6. Submit a pull request

⚠️ Important Notes

Ethical Usage

This tool is designed for legitimate automation needs such as:

  • Repository maintenance and cleanup
  • Consistent workflow enforcement
  • Development process automation
  • CI/CD pipeline integration

Please use responsibly and avoid any practices that might artificially inflate contribution statistics or mislead about development activity.

Safety Features

  • Dry-run mode for testing operations
  • Backup recommendations before bulk operations
  • Confirmation prompts for destructive actions
  • Comprehensive logging for audit trails

πŸ”— Dependencies

Core Dependencies

  • simple-git: Git operations interface
  • fs-extra: Enhanced file system operations
  • lodash: Utility functions
  • moment: Date manipulation

πŸ† Credits

All credits and acknowledgments to the YouTube creators, developers, and educational content that inspired this project are documented in the Credit.md file. Please visit the main directory to see full credits and attributions.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


Note: The /Archive directory contains deprecated experimental code that is preserved for educational purposes but should not be used in production environments.

Disclaimer: This tool should only be used for educational purposes. Do not use it to artificially inflate contribution statistics or mislead about development activity.

About

Now you can just automate GitHub Contributions (for educational purposes only)

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Contributors