π ContribSync (csync) - Track & Summarize Your Contributions
β οΈ This is an early-stage open-source project.
ContribSync (csync) is a CLI tool that helps individual contributors track their work across multiple platforms, generate AI-powered summaries, and streamline performance reviews.
π Features
β
Jira Integration
- Create issues in Jira directly from the CLI.
- List issues in a given Jira project.
- Find issues assigned to a user.
- Generate AI-powered summaries of Jira contributions for self-evaluations (using OpenAI GPT-3.5).
β
Pluggable Architecture
- Built to support multiple integrations (e.g., GitHub, GitLab, Slack, Teams in the future).
β
Automated Summarization
- Converts Jira activity into a structured, self-evaluation-friendly summary.
- Helps users document their contributions efficiently for performance reviews.
π οΈ Setup & Running Locally
Prerequisites
- Go 1.22.4+ installed
- Jira API access (API token required)
- (Optional) OpenAI API key for AI-generated summaries
Install & Build
Clone the repo and navigate into the project directory:
git clone https://github.com/your-org/ContribSync.git
cd ContribSync
go build -o csync main.go
Run the CLI
./csync --help
π Environment Variables
Before 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) 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 settings
Sample 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.com
Sample 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.com
Sample 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.
β
GitHub Integration
- 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
./csync plugin exec github summary owner/repo
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
π Weβre Adding Features Regularly!
This project is evolving, and weβre actively adding new integrations and improvements.
Watch this space for updates! π
π License
This project is licensed under the MIT License.
π€ Contributing
We welcome contributions! See CONTRIBUTING.md for guidelines on how to contribute.
π οΈ Future Roadmap
β’ Refactor cli command structure . E.g. "csync plugin exec jira..." to "csync jira..."
β’ Slack & Teams Notifications
β’ Export Summaries as JSON or Markdown
π Support & Feedback
Have ideas or feedback? Open an issue or reach out!