Skip to content

Chrome extension to track time on GitHub issues through automatic comments

License

Notifications You must be signed in to change notification settings

Gopenux/CronoHub

Repository files navigation

CronoHub Logo

CronoHub

Professional Time Tracking for GitHub Issues

Track time effortlessly. Generate reports instantly. Your data stays yours.

Version License Chrome Extension Manifest V3 Tests

Sponsor Made in Colombia

πŸš€ Get Started β€’ ✨ Features β€’ πŸ“– How to Use β€’ πŸ’ Support Us


🎯 Why CronoHub?

CronoHub was born from a real need at Gopenux, a Colombian software development company with years of experience building enterprise solutions.

The Challenge

Our development teams needed a way to track time on GitHub issues without:

  • ❌ Leaving their workflow to use external tools
  • ❌ Manually updating spreadsheets (tedious and error-prone)
  • ❌ Sharing sensitive data with third-party services
  • ❌ Spending hours compiling team reports

Our Solution

We built CronoHub – a Chrome extension that integrates seamlessly into GitHub:

  • βœ… Log time directly on issues with one click
  • βœ… Automatic formatting as professional GitHub comments
  • βœ… Generate multi-user reports instantly
  • βœ… 100% local – your data never leaves GitHub
  • βœ… Zero data collection – your privacy guaranteed

We found it so useful, we're sharing it with everyone under the MIT License.


✨ Highlights

⚑ Lightning Fast Setup

  • Install in under 2 minutes
  • Add your GitHub token
  • Proactive permission validation
  • Start tracking immediately
  • No account creation required

πŸ”’ Privacy Guaranteed

  • Zero data collection
  • Token stored locally in your browser
  • All API calls direct to GitHub
  • Open source – audit the code yourself

πŸ“Š Powerful Reports

  • Multi-user time aggregation
  • Date range filtering (up to 90 days)
  • Smart collaborator selector
  • 99.6% API optimization

πŸ› οΈ Enterprise Quality

  • 336 automated tests (100% coverage)
  • Manifest V3 compliant
  • XSS protection
  • Daily compatibility testing

πŸ“Έ See It In Action

Step 1: Initial Setup Instructions

When you first install CronoHub, you'll see helpful setup instructions:

Initial Setup Instructions

Quick guide to get started: pin the extension and configure your token.

Step 2: Configure Your Token (One Time)

Token Configuration Screen

Simple, secure token configuration. Your token never leaves your browser.

Step 3: Verify Connection

Connected Status

Extension automatically identifies you using your GitHub account.

Step 4: Permission Validation (Automatic)

When you open the panel, CronoHub automatically validates your token's permissions:

Access Denied State

If your token lacks write access, you'll see clear guidance on how to fix it.

What's validated:

  • βœ… Repository exists and you have read access
  • βœ… Your token has write permission (required to post comments)
  • βœ… No rate limiting or network issues

If validation fails, you'll see:

  • πŸ”΄ Access Denied - Clear error message explaining the issue
  • πŸ’‘ Possible Solutions - Step-by-step guidance to fix the problem
  • πŸ”— Quick Links - Direct links to GitHub settings to regenerate token

This proactive validation prevents you from filling out the form only to receive an error on submit.

Step 5: Log Time on Any Issue

Time Logging Panel

Floating panel appears on every GitHub issue. Enter hours, add description, done.

πŸ“Œ Important Note: The floating button (⏱️) only appears on GitHub issue pages. This includes:

  • Classic issue view: github.com/:owner/:repo/issues/:number
  • GitHub Projects side panel when viewing an issue

The button will not appear on repository home pages, pull requests, or other GitHub pages.

Step 6: Generate Team Reports

Reports Interface

Select team members, choose date range, and generate instant reports.

Step 7: Analyze Results

Generated Report

Detailed breakdown with totals, dates, and smart clickable links to time entries.

Smart Navigation Features:

The report includes intelligent navigation with dual clickable links:

  • Issue Number (e.g., #33): Click to navigate to the issue

    • Opens the issue at the top (beginning of the page)
    • Opens in a new tab if different from current issue
    • Scrolls to top if you're already viewing that issue
  • Description (e.g., "Created categories data model"): Click to navigate to the specific comment

    • Opens the issue and scrolls directly to the time tracking comment
    • Opens in a new tab if different from current issue
    • Scrolls to comment if you're already viewing that issue

This dual-link approach gives you flexibility: quick issue overview or direct comment access.


πŸš€ Installation

Prerequisites

  • Google Chrome (Stable or Beta)
  • GitHub Personal Access Token (create one here)
    • Required scope: repo (Full control of private repositories)
      • This includes: read user info, read/write issues, read comments, search repositories
    • Recommended: Grant access to all repositories to use CronoHub across all your projects
    • Alternative: Grant access to specific repositories if you only need it for certain projects
    • See Token Permissions below for detailed explanation

Install Steps

# 1. Clone the repository
git clone https://github.com/Gopenux/CronoHub.git
cd CronoHub
2. Open Chrome and navigate to chrome://extensions/
3. Enable "Developer mode" (toggle in top-right corner)
4. Click "Load unpacked" button
5. Select the CronoHub folder
6. Click the CronoHub extension icon in your toolbar
7. Paste your GitHub token
8. Click "Save configuration"

βœ… Installation complete! Navigate to any GitHub issue to start tracking time.

πŸ”‘ About Token Permissions

Required Permissions

For CronoHub to work correctly, your GitHub Personal Access Token must have the following scope:

repo (Full control of private repositories)

This scope grants access to:

  • βœ… repo:status - Read commit status (required for API access)
  • βœ… repo_deployment - Read deployment status
  • βœ… public_repo - Read and write to public repositories
  • βœ… repo:invite - Access to repository invitations
  • βœ… Write access to issues - Required to post time tracking comments

⚠️ Important: The repo scope is necessary because CronoHub needs to:

  1. Read your user information and organization members
  2. Read issue comments to generate reports
  3. Write time tracking comments to issues
  4. Search across repositories for time entries

Repository Access Options

When creating your token, choose how broadly it should work:

Option 1: All Repositories (Recommended)

  • Grant the token access to all repositories
  • βœ… Use CronoHub on any repository you have access to
  • βœ… No need to regenerate tokens for new projects
  • βœ… Seamless experience across your entire GitHub account

Option 2: Specific Repositories

  • Grant the token access to selected repositories only
  • βœ… More granular security control
  • βœ… Useful if you only track time on specific projects
  • ⚠️ Will need to update token permissions to add new repositories later

πŸ’‘ Tip: Most users prefer "All Repositories" for convenience. Your token is stored locally and never shared with external services, so the broader access is safe.


πŸ“– How to Use

Logging Time

⚠️ Important: The CronoHub floating button only appears on GitHub issue pages. Make sure you're viewing an issue (either in classic view or GitHub Projects side panel) to see the time tracking button.

1. Navigate to Issue

Open any GitHub issue (works in classic view and GitHub Projects)

2. Click Button

Look for the green floating button (⏱️) in the bottom-right corner

3. Enter Time

Input hours (e.g., 2.5) and optional description, then click "Log Time"

Your time entry is posted as a formatted comment:

⏱️ **Time Tracked:** 2.5 Hours

Implemented user authentication and session management

---
Logged with CronoHub by Gopenux AI Team

Viewing Reports

1. Open Panel

Click the CronoHub button

2. Switch Mode

Select "Reports" tab

3. Select Team

Choose collaborators (you're pre-selected)

4. Generate

Pick date range and click "Generate Report"

Report Features:

  • Total hours per user and grand total
  • Breakdown by date (collapsible sections)
  • Smart dual clickable links:
    • Issue number β†’ navigates to issue top
    • Description β†’ navigates to specific comment
  • Context-aware navigation (new tab vs. scroll)
  • Support for up to 90-day ranges

πŸ›‘οΈ Privacy & Security

Our Commitment

We don't collect ANY data. Ever.

This is not marketing speak – it's architecturally guaranteed:

Aspect How We Protect You
Token Storage Stored locally in chrome.storage.local – never sent to external servers
API Calls Direct to api.github.com – no intermediary services
Data Collection Zero telemetry, zero analytics, zero tracking
Open Source MIT License – audit every line of code yourself
Manifest V3 Modern security standards enforced by Chrome

Why Trust Us?

  1. Open Source: Every line of code is public on GitHub
  2. Local-First: All processing happens in your browser
  3. No Backend: We don't operate any servers that could collect data
  4. Reputable Team: Built by Gopenux, a Colombian company with years of enterprise experience

πŸ—οΈ Technical Excellence

Built with Quality Standards

Modern Architecture

  • βœ… Manifest V3 compliant
  • βœ… Adaptive UI rendering (DOM/iframe)
  • βœ… Centralized state management
  • βœ… SPA navigation detection

Optimized Performance

  • βœ… 99.6% API efficiency (500KB β†’ 10KB)
  • βœ… Single-pass data processing
  • βœ… Memory-efficient algorithms
  • βœ… Smart GitHub API queries

Comprehensive Testing

  • βœ… 336 automated tests
  • βœ… 100% functional coverage
  • βœ… Daily Chrome compatibility tests
  • βœ… Mocked API testing (no token needed)

Security First

  • βœ… XSS prevention with HTML escaping
  • βœ… Secure token storage
  • βœ… Input validation
  • βœ… OWASP best practices

Test Status

Daily Tests PR Tests

  • Daily Runs: Automated tests every day at 2:00 AM UTC
  • PR Validation: All pull requests tested before merge
  • Auto Issue Creation: Failed tests create GitHub issues automatically
  • Multi-Version: Tests run on Chrome Stable and Beta

🌟 About Gopenux

Made in Colombia

Gopenux is a Colombian software development company with years of experience delivering high-quality enterprise solutions. We specialize in building tools that solve real problems for development teams.

Why We Built CronoHub

Time tracking was a pain point in our projects. We needed:

  • Seamless GitHub integration
  • Multi-user reporting
  • Zero data leakage
  • Professional-grade quality

When we couldn't find a solution that met all requirements, we built it ourselves.

Our Values

Value What It Means
πŸ”“ Open Source MIT License – free to use, modify, and distribute
πŸ” Privacy First Your data stays yours – we never collect anything
πŸ”„ Community Driven We fix bugs and add features based on user feedback
πŸ‡¨πŸ‡΄ Made in Colombia Proud to contribute to the global open source community

Learn more about our work: gopenux.com


πŸ’ Support Our Work

If CronoHub saves you time and improves your workflow, please consider supporting our development:

Sponsor on GitHub

Every Contribution Helps Us:

πŸ›

Fix Bugs Faster

Dedicate more time to addressing issues

✨

Add Features

Develop requested functionality

πŸ“–

Improve Docs

Create tutorials and guides

πŸš€

Keep It Free

Maintain the project for everyone

Sponsors get:

  • πŸŽ–οΈ Recognition in our README
  • πŸ”” Priority support for issues
  • πŸ“£ Early access to new features
  • πŸ’¬ Direct line to the dev team

Become a Sponsor β†’


πŸ“ Comment Format Reference

Time entries follow this standardized GitHub markdown format:

⏱️ **Time Tracked:** {hours} Hour(s)

{optional description of work performed}

---
<sub>Logged with CronoHub by Gopenux AI Team</sub>

Why this format?

  • ⏱️ Visual identification: Easy to spot in issue timelines
  • πŸ“Š Report parsing: Consistent pattern for automatic aggregation
  • πŸ’Ό Professional appearance: Clean, readable format
  • πŸ” Transparency: Clear attribution to the tool

🀝 Contributing

We welcome contributions from the community! Here's how you can help:

Ways to Contribute

πŸ›

Report Bugs

Open an issue

πŸ’‘

Request Features

Suggest ideas

πŸ“–

Improve Docs

Submit documentation updates

πŸ”§

Submit Code

Create pull requests

Contribution Guidelines

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Write tests for new functionality
  4. Ensure all tests pass (npm test)
  5. Commit your changes with clear, descriptive messages
  6. Push to your branch
  7. Open a Pull Request

Note: All PRs are automatically tested before merge.


πŸ§ͺ Development & Testing

For Developers

# Clone repository
git clone https://github.com/Gopenux/CronoHub.git
cd CronoHub

# Install dependencies
npm install

# Run all tests
npm test

# Run specific test suites
npm run test:unit          # Unit tests only (287 tests)
npm run test:e2e           # End-to-end tests (49 tests)
npm run test:coverage      # Generate coverage report
npm run test:watch         # Watch mode for development

# Linting
npm run lint
npm run lint:fix

# Validate manifest
npm run validate:manifest

Project Structure

CronoHub/
β”œβ”€β”€ manifest.json              # Extension config (Manifest V3)
β”œβ”€β”€ background.js              # Service worker
β”œβ”€β”€ content.js                 # Main UI & time logging
β”œβ”€β”€ reports.js                 # Reports module & API calls
β”œβ”€β”€ popup.html / popup.js      # Extension popup & auth
β”œβ”€β”€ styles/
β”‚   β”œβ”€β”€ content.css            # Panel & button styles
β”‚   └── popup.css              # Popup window styles
β”œβ”€β”€ icons/                     # Extension icons (16, 48, 128)
β”œβ”€β”€ docs/
β”‚   └── screenshots/           # README images
β”œβ”€β”€ tests/
β”‚   β”œβ”€β”€ unit/                  # Unit tests (287 tests)
β”‚   β”œβ”€β”€ e2e/                   # E2E tests (49 tests)
β”‚   └── mocks/                 # Reusable API mocks
└── .github/workflows/         # CI/CD with GitHub Actions

πŸ“„ License

MIT License – Copyright Β© 2026 Gopenux AI Team

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.

Read Full License β†’


πŸ”— Quick Links

Resource Link
🌐 Company Website gopenux.com
πŸ“¦ GitHub Repository github.com/Gopenux/CronoHub
πŸ› Report Issues GitHub Issues
πŸ’‘ Feature Requests Request a Feature
πŸ’ Sponsor Project GitHub Sponsors
πŸ§ͺ Test Documentation tests/README.md

πŸ† Acknowledgments

Built with love by the Gopenux AI Team

Special thanks to:

  • The GitHub team for the excellent API
  • The Chrome Extensions team for Manifest V3
  • The open source community for inspiration
  • Our users for feedback and support

πŸ“Š Project Stats

GitHub Stars GitHub Forks GitHub Issues GitHub Pull Requests


⭐ If CronoHub helps you, give us a star!

Made with ❀️ in Colombia πŸ‡¨πŸ‡΄

Empowering developers with better tools, one extension at a time.


Daily Tests PR Tests License: MIT

Β© 2026 Gopenux AI Team β€’ MIT License

About

Chrome extension to track time on GitHub issues through automatic comments

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Languages