Borg/pkg
google-labs-jules[bot] 1b98ba1c3d feat: Configurable rate limiting per domain
This commit introduces a configurable rate-limiting system for all HTTP requests made by the application.

Key features include:
- A token bucket algorithm for rate limiting.
- Per-domain configuration via a YAML file (`--rate-config`).
- Wildcard domain matching (e.g., `*.archive.org`).
- Dynamic adjustments based on `429` responses and `Retry-After` headers.
- New CLI flags (`--rate-limit`, `--burst`) for on-the-fly configuration.

I began by creating a new `http` package to centralize the rate-limiting logic. I then integrated this package into the `website` and `github` collectors, ensuring that all outgoing HTTP requests are subject to the new rate-limiting rules.

Throughout the implementation, I added comprehensive unit and integration tests to validate the new functionality. This process also uncovered several pre-existing issues in the test suite, which I have now fixed. These fixes include:
- Correcting mock implementations for `http.Client` and `vcs.GitCloner`.
- Updating outdated function signatures in tests and examples.
- Resolving missing dependencies and syntax errors in test files.
- Stabilizing flaky tests.

Co-authored-by: Snider <631881+Snider@users.noreply.github.com>
2026-02-02 00:53:44 +00:00
..
compress feat: Add _Good, _Bad, and _Ugly tests 2025-11-14 10:36:35 +00:00
console feat: Add Borg Console and release workflow 2025-12-27 02:32:31 +00:00
datanode Improve test coverage for datanode and tim packages, and fix cmd tests 2025-11-23 18:58:32 +00:00
github feat: Configurable rate limiting per domain 2026-02-02 00:53:44 +00:00
http feat: Configurable rate limiting per domain 2026-02-02 00:53:44 +00:00
logger feat: Improve test coverage and refactor for testability 2025-11-03 18:25:04 +00:00
mocks feat: Improve test coverage and refactor for testability 2025-11-03 16:31:26 +00:00
player feat: v3 streaming with LTHN rolling keys and configurable cadence 2026-01-12 16:01:59 +00:00
pwa feat: Add ChaCha20-Poly1305 encryption and decryption for TIM files (.stim), enhance CLI for encryption format handling (stim), and include metadata inspection support 2025-12-26 01:25:03 +00:00
smsg feat: adaptive bitrate streaming (ABR) for HLS-style encrypted video 2026-01-13 15:40:15 +00:00
stmf feat: Add STMF form encryption and SMSG secure message packages 2025-12-27 00:49:07 +00:00
tarfs feat: Add ChaCha20-Poly1305 encryption and decryption for TIM files (.stim), enhance CLI for encryption format handling (stim), and include metadata inspection support 2025-12-26 01:25:03 +00:00
tim feat: Add ChaCha20-Poly1305 encryption and decryption for TIM files (.stim), enhance CLI for encryption format handling (stim), and include metadata inspection support 2025-12-26 01:25:03 +00:00
trix feat: Add ChaCha20-Poly1305 encryption and decryption for TIM files (.stim), enhance CLI for encryption format handling (stim), and include metadata inspection support 2025-12-26 01:25:03 +00:00
ui feat: Improve test coverage and refactor for testability 2025-11-03 18:25:04 +00:00
vcs feat: Configurable rate limiting per domain 2026-02-02 00:53:44 +00:00
wasm/stmf feat: adaptive bitrate streaming (ABR) for HLS-style encrypted video 2026-01-13 15:40:15 +00:00
website feat: Configurable rate limiting per domain 2026-02-02 00:53:44 +00:00