Comparing github-tools:master...mizchi:master · github-tools/github

Commits on Apr 4, 2026

  1. feat: rewrite as MoonBit GitHub REST API client

    Replace old npm package with MoonBit native implementation.
    Uses moonbitlang/async for HTTP/TLS.
    
    Packages:
    - client: GitHubClient with token auth, get_json/get_binary helpers
    - actions: list_workflow_runs, list_artifacts, download_artifact
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    Configuration menu

    Browse the repository at this point in the history

  2. feat: add repos, issues, pulls, git APIs + client POST/PATCH/DELETE

    Client:
    - post_json, patch_json, put_json, delete methods
    
    Repos:
    - get, get_content, list_branches
    
    Issues:
    - list, get, create, list_comments, create_comment
    
    Pull Requests:
    - list, get, create, list_files, merge
    
    Git:
    - get_ref, get_commit, get_tree
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    Configuration menu

    Browse the repository at this point in the history

  3. feat: add mock server tests for client

    - GitHubClient::new now accepts optional base_url for testing
    - Tests use moonbitlang/async HTTP server as mock GitHub API
    - Tests: get_json (200), get_json (404 error), post_json (201)
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    Configuration menu

    Browse the repository at this point in the history

  4. Configuration menu

    Browse the repository at this point in the history

  5. feat: complete GitHub API coverage

    Added:
    - issues: update, add_labels
    - pulls: update, list_reviews, request_reviewers
    - repos: list_tags, list_releases, get_latest_release
    - git: create_ref, delete_ref
    - users: get_authenticated, get (new package)
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    Configuration menu

    Browse the repository at this point in the history

  6. fix: connection reuse, header duplication, id types, smoke test

    - Client: create fresh connection per request (avoid TLS reuse errors)
    - Client: set auth headers only at connection level (no extra_headers duplication)
    - Client: skip Authorization header when token is empty (allows public API)
    - All types: id fields changed to Double (MoonBit Int is 32bit, GitHub IDs exceed it)
    - Repository: remove nullable fields that cause FromJson issues
    - Add smoke test (src/cmd/smoke) that hits real GitHub API
    
    Verified working: repos.get, repos.list_branches, issues.list, actions.list_workflow_runs
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    Configuration menu

    Browse the repository at this point in the history

  7. feat: add search, checks, statuses APIs

    - search: issues, repos, code (with URL encoding)
    - checks: list_for_ref, get, list_suites_for_ref
    - statuses: get_combined, list, create
    
    All verified against real GitHub API in smoke test.
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    Configuration menu

    Browse the repository at this point in the history

  8. feat: pagination, rate limiting, compare, create_release, post_binary

    Client:
    - get_response: returns headers for pagination/rate-limit inspection
    - get_all_pages: auto-paginate through Link headers
    - post_binary: for release asset upload
    - RateLimitError: separate error type for 429/403 rate limits
    - parse_next_link: Link header parser
    
    Repos:
    - compare: diff between two refs (status, commits, files)
    - create_release: create GitHub release
    
    All verified in smoke test including pagination (9 branches via 3/page).
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    Configuration menu

    Browse the repository at this point in the history

  9. Configuration menu

    Browse the repository at this point in the history

  10. Configuration menu

    Browse the repository at this point in the history