β‘οΈ Stop dreading performance reviews. Start tracking your work effortlessly.
ContribSync is a CLI tool that automatically fetches your contributions from Jira, GitHub, and moreβthen generates a clean, AI-powered self-evaluation draft.
It's built for engineers who want to spend 2 minutes, not 2 days, preparing for performance reviews.
Every quarter, we scramble to remember what we actually shipped. Hunting through Jira tickets, pull requests, and Slack threads wastes time and leads to incomplete self-reviews.
ContribSync automates that painful process.
It connects to the tools you're already using and summarizes what youβve doneβso you can focus on impact, not busywork.
- Fetches assigned tickets from Jira (JQL-based)
- Summarizes tickets using GPT-3.5 / GPT-4
- Outputs clean Markdown for performance reviews
- Lists PRs created or merged in a timeframe
- Extracts commit messages and PR descriptions
- Generates activity summaries via AI
- Sends daily or weekly contribution reminder notifications
- Future: Slack-based input capture for non-CLI users
- Uses OpenAI to turn raw issue/PR data into concise summaries
- Fully configurable prompt structure
- Offline/manual mode available for auditability
- Go 1.22.4+ installed
- Jira API access (API token required)
- (Optional) OpenAI API key for AI-generated summaries
Clone the repo and navigate into the project directory:
git clone https://github.com/your-org/ContribSync.git
cd ContribSync/cmd/csync
go build -o csync main.go./csync --helpBefore running commands, ensure the required environment variables are set.
β Jira API Configuration
export JIRA_BASE_URL=https://your-org.atlassian.net
export JIRA_API_TOKEN=your-api-token
export JIRA_EMAIL="your-email@example.com"
# Optional: GitHub
GITHUB_TOKEN=ghp_...
# Optional: Slack
SLACK_WEBHOOK_URL=https://hooks.slack.com/...
β (Optional) OpenAI API Configuration
export OPENAI_ORG=your-org-idποΈ Example Commands
π Create a Jira Issue
./csync plugin exec jira create-issue "Optimize Sync Performance" "Improve background sync to reduce CPU usage."Sample Output:
Issue created successfully:
Key: CSYNC-101
Summary: Optimize Sync Performance
π List Issues in a Project
./csync plugin exec jira list-issues PROJECT_KEY //project key under JIRA project settingsSample Output:
Issues in PROJECT_KEY:
- CSYNC-101: Optimize Sync Performance (To Do)
- CSYNC-102: Implement API Rate Limiting (In Progress)
- CSYNC-103: Fix Sync Conflict Errors (Done)
π Find Issues Assigned to a User
./csync plugin exec jira assigned-issues your-email@example.comSample Output:
π Issues assigned to your-email@example.com:
- CSYNC-101: Optimize Sync Performance (To Do)
- CSYNC-102: Implement API Rate Limiting (In Progress)
- CSYNC-103: Fix Sync Conflict Errors (Done)
π Generate AI-Powered Summary for Self-Evaluation
./csync plugin exec jira summary your-email@example.comSample Output:
π AI-Generated Self-Evaluation Summary:
Over the past cycle, I worked on key improvements to our CloudSync platform:
- Resolved **file synchronization conflicts**, preventing duplicate file issues (CSYNC-103).
- Implemented **API rate limiting**, improving system stability under heavy load (CSYNC-102).
- Optimized **background sync performance**, reducing CPU usage and increasing efficiency (CSYNC-101).
These contributions enhanced platform reliability and performance, benefiting both end users and internal teams.
This requires the OpenAI API key to be set.
- Fetch pull requests from a repository.
- List commits associated with each PR.
- Track open, merged and closed PRs for contribution logging.
Requires a valid GITHUB_TOKEN to be set.
export GITHUB_TOKEN=your-personal-access-tokenπ Fetch Pull Requests & Commits from GitHub; filter by email
./csync plugin exec github summary owner/repo email@example.com
Sample Output:
π Pull Request Summary for owner/repo
πΉ PR #42: Fix database connection issue (closed)
π·οΈ Status: closed
π Merged: true
π Created: 2024-06-15 00:49:33 UTC
π Commits:
- [abc123] Fix DB connection timeout
- [def456] Improve error logging
This project is evolving, and weβre actively adding new integrations and improvements. Watch this space for updates! π
ContribSync is built to be extensible. Add your own integrations via plugins under pkg/plugins.
Available plugins:
β’ Jira
β’ GitHub
β’ Slack (WIP)
ContribSync uses the OpenAI API to generate human-readable summaries. You control the prompt format and engine (gpt-3.5-turbo or gpt-4).
This project is licensed under the MIT License.
We welcome contributions! See CONTRIBUTING.md for guidelines on how to contribute.
Weβre actively building this and looking for contributors!
Ways to contribute:
β’ Add a new platform plugin (Linear, GitLab, Trello)
β’ Improve AI summarization prompts
β’ Build a simple TUI/GUI wrapper
β’ Add caching / config improvements
β’ Write tests and docs
β’ Refactor cli command structure . E.g. "csync plugin exec jira..." to "csync jira..."
β’ Slack & Teams Notifications
β’ Export Summaries as JSON or Markdown
Have ideas or feedback? Open an issue or reach out!