All notable changes to this project are documented here. The format follows Keep a Changelog, and the project follows semantic versioning.

0.3.2 (2026-06-29)

Features

  • add GhEx.RateLimit.delay_until_reset/2 for opt-in proactive pacing (#101) (dedf9d5)
  • add stream_* auto-pagination companions to the convenience modules (#91) (7235196), closes #66
  • default per_page to 100 in REST.stream/3 (#92) (be06994), closes #70
  • emit :telemetry spans around REST and GraphQL requests (#96) (e54733b)
  • handle 304 Not Modified and expose ETag/Last-Modified on REST meta (#97) (59f5bf2), closes #68

Bug Fixes

  • accept :params as a map in GhEx.Search (#88) (b563252)
  • detect body-only secondary rate limit in RateLimit.retry/2 (#98) (be52b01)
  • halt GraphQL.stream when :path traverses a non-map intermediate (#89) (95262a4), closes #64
  • halt GraphQL.stream when endCursor is nil despite hasNextPage (#81) (cfc3227)
  • label a GraphQL 200 with a non-map body as a shape error, not HTTP 200 (#84) (6d0264e)
  • redact credentials from GhEx.Client and cached token inspect (#77) (a514f88)
  • refuse cross-host pagination URL in REST.stream/3 (#85) (f9cc218)
  • reject a zero or negative JWT :lifetime that mints an expired token (#90) (c81d071)
  • run installation-token mint off the GenServer to avoid 5s call timeout (#82) (db15e64)
  • URL-encode the file path in GhEx.Contents (#83) (ff3e0b8)

0.3.1 (2026-06-26)

Features

  • add Actions and Search convenience modules (#54) (1fa2755)
  • add Users, Organizations, Teams, Checks, Statuses, and Gists convenience modules (#57) (a35f7a3)

0.3.0 (2026-06-26)

Features

  • add Repositories, Contents, and Releases convenience modules (#52) (a95e241)

0.2.1 (2026-06-25)

Bug Fixes

  • send a numeric App ID issuer as a JSON integer in the JWT (#47) (8874dd9)

0.2.0 (2026-06-25)

Features

  • add GhEx.REST.raw/4 and GhEx.RateLimit.get/1 (58550fd)
  • add GhEx.Webhooks for signature verification and payload parsing (5a01e07)

0.1.0 - 2026-06-24

Added