Browse Source

docs: Add GitHub Projects sync guide and script

Created tools to help sync TODO.md with GitHub Projects board:

Files Added:
- GITHUB_PROJECTS_SYNC.md - Complete guide for syncing tasks
- scripts/sync-github-projects.sh - Helper script for project sync

Features:
- Step-by-step setup instructions
- Current TODO.md status summary (all priorities marked)
- Manual sync options (CLI, Web UI, Script)
- Example commands for creating issues
- Automation ideas for future improvements

Current Status:
- Priority 1-5: All completed (15+ tasks done)
- Priority 6: 3 pending tasks (cross-platform builds)

Next Steps:
1. Run `gh auth refresh` to grant project permissions
2. Create GitHub issues for Priority 6 tasks
3. Link issues to project board #2

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
jopa79 3 tháng trước cách đây
mục cha
commit
819bd0d06e
2 tập tin đã thay đổi với 242 bổ sung0 xóa
  1. 178 0
      GITHUB_PROJECTS_SYNC.md
  2. 64 0
      scripts/sync-github-projects.sh

+ 178 - 0
GITHUB_PROJECTS_SYNC.md

@@ -0,0 +1,178 @@
+# GitHub Projects Sync Guide
+
+This guide helps you sync TODO.md with your GitHub Projects board at:
+https://github.com/users/jopa79/projects/2/views/1
+
+## Quick Setup
+
+### 1. Grant GitHub CLI Permissions
+
+Run this command to add project management scopes:
+
+```bash
+gh auth refresh -s read:project -s project -h github.com
+```
+
+This will open your browser to authorize the additional permissions.
+
+### 2. Verify Access
+
+Check if you can access your project:
+
+```bash
+gh project list --owner jopa79
+```
+
+You should see "GrabZilla 2.1" (project #2) in the list.
+
+## Current TODO.md Status
+
+### ✅ Completed Priorities (Already Done)
+
+**Priority 1: Code Management** ✅
+- All code committed and pushed
+- Commit: 1698249
+
+**Priority 2: Testing & Validation** ✅
+- All tests passing (npm test)
+- Metadata service verified
+- Cookie file support working
+
+**Priority 3: Binary Management** ✅
+- Version checking implemented
+- Statusline with updates
+- Binary path management
+
+**Priority 4: Performance & Parallel Processing** ✅
+- Parallel downloads (4x faster)
+- GPU acceleration
+- Performance monitoring
+- Metadata optimization (70% less data)
+
+**Priority 5: YouTube Enhancements** ✅
+- YouTube Shorts support
+- Playlist parsing
+- Batch import
+
+### 🟢 Pending Priority (To Add to Project)
+
+**Priority 6: Cross-Platform & Build**
+
+Tasks to add as GitHub Issues:
+
+1. **Cross-platform build testing**
+   - Build and test on macOS (Intel and Apple Silicon)
+   - Build and test on Windows 10/11
+   - Build and test on Linux (Ubuntu, Fedora, Arch)
+
+2. **Distribution setup**
+   - Configure electron-builder for all platforms
+   - Create installers (DMG, NSIS, AppImage)
+   - Code signing setup
+   - Auto-update configuration
+
+3. **Release pipeline**
+   - GitHub Actions workflow for builds
+   - Automated testing on all platforms
+   - Release notes generation
+   - Version bumping automation
+
+## Manual Sync Options
+
+### Option A: Create Issues via GitHub CLI
+
+```bash
+# Create an issue and add to project
+gh issue create \
+  --title "Cross-platform build testing" \
+  --body "Build and test on macOS, Windows, and Linux" \
+  --label "priority-6" \
+  --project "jopa79/2"
+
+gh issue create \
+  --title "Distribution setup with electron-builder" \
+  --body "Configure installers for DMG, NSIS, AppImage" \
+  --label "priority-6" \
+  --project "jopa79/2"
+
+gh issue create \
+  --title "Release pipeline automation" \
+  --body "GitHub Actions workflow for automated builds" \
+  --label "priority-6" \
+  --project "jopa79/2"
+```
+
+### Option B: Create Issues via GitHub Web UI
+
+1. Go to: https://github.com/jopa79/GrabZilla21/issues
+2. Click "New Issue"
+3. Fill in title and description from TODO.md
+4. Add labels (e.g., "priority-6", "enhancement")
+5. Link to project: Select "Projects" → "GrabZilla 2.1"
+
+### Option C: Bulk Create via Script
+
+Run the sync script:
+
+```bash
+./scripts/sync-github-projects.sh
+```
+
+This will:
+- Check GitHub CLI setup
+- Request permissions if needed
+- Show current project status
+- Provide commands to sync tasks
+
+## Keeping in Sync
+
+### When completing tasks in TODO.md:
+
+1. **Update TODO.md** (mark task as completed)
+2. **Update GitHub Issue** (close issue or move to "Done")
+3. **Commit changes** (git commit with reference to issue #)
+
+Example:
+```bash
+git commit -m "feat: Complete cross-platform builds
+
+- ✅ macOS Intel and Apple Silicon builds
+- ✅ Windows 10/11 builds
+- ✅ Linux builds (Ubuntu, Fedora)
+
+Closes #42"
+```
+
+### Automation Ideas
+
+You could set up GitHub Actions to:
+- Auto-create issues from TODO.md changes
+- Update project board when commits reference issues
+- Sync completed tasks back to TODO.md
+
+## Current Project Status
+
+Based on TODO.md (as of Jan 7, 2025):
+
+| Priority | Status | Tasks Completed | Tasks Pending |
+|----------|--------|-----------------|---------------|
+| P1: Code Management | ✅ Done | 1/1 | 0 |
+| P2: Testing | ✅ Done | 3/7 | 4* |
+| P3: Binary Mgmt | ✅ Done | All | 0 |
+| P4: Performance | ✅ Done | 6/6 | 0 |
+| P5: YouTube | ✅ Done | 4/4 | 0 |
+| P6: Cross-Platform | 🟢 Pending | 0/3 | 3 |
+
+*P2 remaining tasks are optional/future enhancements
+
+## Next Steps
+
+1. ✅ Run `gh auth refresh` to grant permissions (if needed)
+2. Create 3 issues for Priority 6 tasks
+3. Add issues to your project board
+4. Start working on cross-platform builds
+5. Update TODO.md and GitHub Issues as you progress
+
+---
+
+**Questions?** Check the GitHub CLI docs: https://cli.github.com/manual/

+ 64 - 0
scripts/sync-github-projects.sh

@@ -0,0 +1,64 @@
+#!/bin/bash
+# GrabZilla 2.1 - Sync TODO.md with GitHub Projects
+# This script helps sync tasks from TODO.md to GitHub Projects board
+
+set -e
+
+echo "🔄 GitHub Projects Sync Script"
+echo "================================"
+echo ""
+
+# Check if gh is installed
+if ! command -v gh &> /dev/null; then
+    echo "❌ GitHub CLI (gh) is not installed"
+    echo "Install it from: https://cli.github.com/"
+    exit 1
+fi
+
+# Check authentication
+if ! gh auth status &> /dev/null; then
+    echo "❌ Not authenticated with GitHub CLI"
+    echo "Run: gh auth login"
+    exit 1
+fi
+
+# Request additional scopes if needed
+echo "📋 Checking GitHub CLI permissions..."
+if ! gh project list --owner jopa79 &> /dev/null; then
+    echo "⚠️  Additional permissions needed"
+    echo "Running: gh auth refresh -s read:project -s project"
+    gh auth refresh -s read:project -s project
+fi
+
+# Get project number from URL
+PROJECT_URL="https://github.com/users/jopa79/projects/2"
+PROJECT_NUMBER="2"
+OWNER="jopa79"
+
+echo ""
+echo "📊 Project: $PROJECT_URL"
+echo "👤 Owner: $OWNER"
+echo ""
+
+# List current project items
+echo "📝 Current project items:"
+gh project item-list $PROJECT_NUMBER --owner $OWNER --format json | jq -r '.items[] | "  - [\(.status)] \(.title)"' 2>/dev/null || echo "  (Unable to fetch - check permissions)"
+
+echo ""
+echo "✅ Setup complete!"
+echo ""
+echo "Next steps:"
+echo "1. Review TODO.md priorities that need to be added"
+echo "2. Create issues for pending tasks:"
+echo "   gh issue create --title 'Task Title' --body 'Description' --project $PROJECT_NUMBER"
+echo "3. Add existing issues to project:"
+echo "   gh project item-add $PROJECT_NUMBER --owner $OWNER --url <issue-url>"
+echo ""
+echo "📄 Current TODO.md summary:"
+echo "  ✅ Priority 1: Code Management - COMPLETED"
+echo "  ✅ Priority 2: Testing & Validation - COMPLETED"
+echo "  ✅ Priority 3: Binary Management - COMPLETED"
+echo "  ✅ Priority 4: Performance & Parallel Processing - COMPLETED"
+echo "  ✅ Priority 5: YouTube Enhancements - COMPLETED"
+echo "  🟢 Priority 6: Cross-Platform & Build - PENDING"
+echo ""