Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: primetheus/fastapi-githubapp
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.2.6
Choose a base ref
...
head repository: primetheus/fastapi-githubapp
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.2.7
Choose a head ref
  • 9 commits
  • 5 files changed
  • 1 contributor

Commits on Mar 20, 2026

  1. fix: cast self.id to str in JWT payload for PyJWT 2.12+ compatibility

    PyJWT 2.12+ enforces that the 'iss' claim must be a string per RFC 7519
    Section 4.1.1 (StringOrURI). Previously self.id (an int) was passed
    directly, which worked with older PyJWT but fails with:
    
        TypeError: Issuer (iss) must be a string.
    
    This is safe for all PyJWT versions — older versions accept both int and
    str, and GitHub's API matches on value regardless of JSON type.
    primetheus committed Mar 20, 2026
    Configuration menu
    Copy the full SHA
    40d3938 View commit details
    Browse the repository at this point in the history
  2. fix: test failures, lint errors, and formatting issues

    - Fix webhook handler tests posting to / instead of /webhooks/github/
    - Remove redundant init_app() calls (constructor already calls it)
    - Remove unused imports (json, APIRouter, Request, mock_open)
    - Remove unused local variables (result, client, github_app)
    - Fix type comparison using isinstance() instead of type() ==
    - Run black formatter on core.py
    - Run ruff autofix for import sorting
    primetheus committed Mar 20, 2026
    Configuration menu
    Copy the full SHA
    625919a View commit details
    Browse the repository at this point in the history
  3. fix: guard against None app ID before JWT creation

    Addresses review feedback — str(None) would produce 'None' as the
    issuer, which passes PyJWT's type check but gets rejected by GitHub.
    Raise GitHubAppError with a clear message instead.
    primetheus committed Mar 20, 2026
    Configuration menu
    Copy the full SHA
    fc23f10 View commit details
    Browse the repository at this point in the history
  4. fix: address review feedback — remove empty tests, use __class__ is f…

    …or type comparison
    
    - Remove empty signature verification tests (no assertions, always pass)
    - Remove empty extract_payload test (no assertions, always pass)
    - Use client1.__class__ is client2.__class__ for exact type comparison
    primetheus committed Mar 20, 2026
    Configuration menu
    Copy the full SHA
    fa26d85 View commit details
    Browse the repository at this point in the history
  5. Merge pull request #7 from primetheus/fix/test-and-lint-cleanup

    fix: test failures, lint errors, and formatting
    primetheus authored Mar 20, 2026
    Configuration menu
    Copy the full SHA
    2ee0a9e View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    0780663 View commit details
    Browse the repository at this point in the history
  7. Merge pull request #6 from primetheus/fix/jwt-iss-string-type

    fix: cast JWT iss claim to string for PyJWT 2.12+ compatibility
    primetheus authored Mar 20, 2026
    Configuration menu
    Copy the full SHA
    32985a9 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    e902435 View commit details
    Browse the repository at this point in the history
  9. Merge pull request #8 from primetheus/chore/bump-version-0.2.7

    chore: bump version to 0.2.7
    primetheus authored Mar 20, 2026
    Configuration menu
    Copy the full SHA
    f66000d View commit details
    Browse the repository at this point in the history
Loading