{"id":50273187,"url":"https://github.com/shenxianpeng/gitstats-action","last_synced_at":"2026-05-27T18:30:36.810Z","repository":{"id":360368169,"uuid":"1249569468","full_name":"shenxianpeng/gitstats-action","owner":"shenxianpeng","description":"GitHub Action that generates insightful visual reports from Git repositories using GitStats","archived":false,"fork":false,"pushed_at":"2026-05-26T05:54:40.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-26T06:32:45.827Z","etag":null,"topics":["composite-action","git","git-stats","github-actions","report","statistics"],"latest_commit_sha":null,"homepage":"https://github.com/shenxianpeng/gitstats","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shenxianpeng.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"shenxianpeng"}},"created_at":"2026-05-25T20:55:54.000Z","updated_at":"2026-05-26T05:54:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/shenxianpeng/gitstats-action","commit_stats":null,"previous_names":["shenxianpeng/gitstats-action"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/shenxianpeng/gitstats-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shenxianpeng%2Fgitstats-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shenxianpeng%2Fgitstats-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shenxianpeng%2Fgitstats-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shenxianpeng%2Fgitstats-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shenxianpeng","download_url":"https://codeload.github.com/shenxianpeng/gitstats-action/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shenxianpeng%2Fgitstats-action/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33579665,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["composite-action","git","git-stats","github-actions","report","statistics"],"created_at":"2026-05-27T18:30:35.851Z","updated_at":"2026-05-27T18:30:36.804Z","avatar_url":"https://github.com/shenxianpeng.png","language":null,"funding_links":["https://github.com/sponsors/shenxianpeng"],"categories":[],"sub_categories":[],"readme":"# GitStats Action\n\n[![Test](https://github.com/shenxianpeng/gitstats-action/actions/workflows/test.yml/badge.svg)](https://github.com/shenxianpeng/gitstats-action/actions/workflows/test.yml) [![GitHub Marketplace](https://img.shields.io/badge/GitHub_Marketplace-gitstats--action-blue.svg)](https://github.com/marketplace/actions/gitstats-action)\n\nA GitHub Action that generates insightful visual reports from Git repositories using [gitstats](https://github.com/shenxianpeng/gitstats).\n\n## Quick Start\n\n```yaml\nname: Generate gitstats report\n\non:\n  push:\n    branches: [main]\n  schedule:\n    - cron: '0 0 * * 0'  # Every Sunday at midnight\n\njobs:\n  gitstats:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v6\n        with:\n          fetch-depth: 0  # Fetch all history for accurate stats\n\n      - name: Generate gitstats report\n        uses: shenxianpeng/gitstats-action@v1\n        with:\n          output: gitstats-report\n\n      - name: Upload Report as Artifact\n        uses: actions/upload-pages-artifact@v5\n        with:\n          path: gitstats-report\n```\n\n## Inputs\n\n| Input | Description | Required | Default |\n|-------|-------------|----------|---------|\n| `path` | Path to the git repository | No | `.` |\n| `output` | Output directory for the report | No | `gitstats-report` |\n| `project_name` | Project name shown in the report | No | (repo dir name) |\n| `commit_begin` | Start of commit range (e.g. `10` for last 10 commits) | No | (all commits) |\n| `commit_end` | End of commit range | No | `HEAD` |\n| `start_date` | Starting date for commits (`YYYY-MM-DD`) | No | (no limit) |\n| `end_date` | Ending date for commits (`YYYY-MM-DD`) | No | (no limit) |\n| `config` | Additional config overrides (pipe-separated `key=value`) | No | |\n| `ai_enabled` | Enable AI-powered summaries | No | `false` |\n| `ai_provider` | AI provider: `openai`, `claude`, `gemini`, `ollama` | No | |\n| `ai_model` | AI model (e.g. `gpt-4o`, `claude-sonnet-4-20250514`) | No | |\n\n## Outputs\n\n| Output | Description |\n|--------|-------------|\n| `report_path` | Path to the generated report directory |\n\n## Examples\n\n### Basic Usage\n\n```yaml\n- uses: shenxianpeng/gitstats-action@v1\n  with:\n    output: report\n```\n\n### Filter by Date Range\n\n```yaml\n- uses: shenxianpeng/gitstats-action@v1\n  with:\n    output: report\n    start_date: '2024-01-01'\n    end_date: '2024-12-31'\n```\n\n### Custom Config Overrides\n\n```yaml\n- uses: shenxianpeng/gitstats-action@v1\n  with:\n    output: report\n    project_name: My Project\n    config: max_authors=15|exclude_exts=png,jpg,svg\n```\n\n### AI-Powered Report\n\n```yaml\n- uses: shenxianpeng/gitstats-action@v1\n  with:\n    output: report\n    ai_enabled: 'true'\n    ai_provider: openai\n    ai_model: gpt-4o\n  env:\n    OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}\n```\n\n### Deploy to GitHub Pages\n\n```yaml\nname: Deploy gitstats to pages\n\non:\n  push:\n    branches: [main]\n\npermissions:\n  contents: read\n  pages: write\n  id-token: write\n\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    environment:\n      name: github-pages\n      url: ${{ steps.deployment.outputs.page_url }}\n    steps:\n      - uses: actions/checkout@v6\n        with:\n          fetch-depth: 0\n\n      - uses: shenxianpeng/gitstats-action@v1\n        with:\n          output: gitstats-report\n\n      - uses: actions/configure-pages@v6\n      - uses: actions/upload-pages-artifact@v5\n        with:\n          path: gitstats-report\n      - uses: actions/deploy-pages@v5\n        id: deployment\n```\n\n## What's Included\n\n- **General**: total files, lines, commits, authors, age\n- **Activity**: commits by hour of day, day of week, month of year, year\n- **Authors**: list of authors (commits, first/last commit date, age), author of month/year\n- **Files**: file count by date, extensions, file churn\n- **Lines**: line of code by date\n- **Tags**: tags by date and author\n- **AI Insights** (optional): natural language summaries powered by OpenAI / Claude / Gemini\n\n## License\n\nMIT — see [LICENSE](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshenxianpeng%2Fgitstats-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshenxianpeng%2Fgitstats-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshenxianpeng%2Fgitstats-action/lists"}