Borg/examples
google-labs-jules[bot] 07de6d5877 feat: Implement collection hooks/plugins system
Adds a flexible hook system to the `borg collect` commands, allowing users to run custom scripts at various stages of the collection lifecycle.

This feature introduces a new `pkg/hooks` package that encapsulates the core logic for parsing a `.borg-hooks.yaml` configuration file and executing external scripts.

Key features:
- Four hook events are supported: `on_file_collected`, `on_url_found`, `on_collection_complete`, and `on_error`.
- A `--hooks` flag has been added to the `collect website` and `collect pwa` commands.
- The system automatically detects and loads a `.borg-hooks.yaml` file from the current directory if the `--hooks` flag is not provided.
- File-based hooks (`on_file_collected`) support glob pattern matching against the base filename.
- Hook scripts receive a JSON payload on stdin with relevant event context.
- Commands with arguments are correctly handled by executing them through `sh -c`.

The implementation includes a comprehensive test suite with both unit tests for the new `hooks` package and integration tests to validate the end-to-end functionality. All existing tests and examples have been updated to reflect the necessary function signature changes.

Co-authored-by: Snider <631881+Snider@users.noreply.github.com>
2026-02-02 00:49:08 +00:00
..
all feat: Implement Go examples and refactor matrix execution 2025-11-14 11:12:15 +00:00
collect_github_release feat: Implement Go examples and refactor matrix execution 2025-11-14 11:12:15 +00:00
collect_github_repo feat: Implement Go examples and refactor matrix execution 2025-11-14 11:12:15 +00:00
collect_github_repos feat: Add placeholder examples for all features 2025-11-13 19:38:23 +00:00
collect_pwa feat: Implement collection hooks/plugins system 2026-02-02 00:49:08 +00:00
collect_website feat: Implement collection hooks/plugins system 2026-02-02 00:49:08 +00:00
create_tim_programmatically feat: Add trix encryption and format 2025-11-14 13:47:27 +00:00
encrypt_media feat: Add dapp.fm native desktop player (Wails) 2026-01-06 18:42:30 +00:00
failures feat: SMSG v2 binary format with zstd compression + RFC-001 spec 2026-01-10 19:57:33 +00:00
formats feat: SMSG v2 binary format with zstd compression + RFC-001 spec 2026-01-10 19:57:33 +00:00
inspect_datanode feat: Add programmatic examples for matrix creation and execution 2025-11-13 19:27:12 +00:00
run_tim_programmatically feat: Add trix encryption and format 2025-11-14 13:47:27 +00:00
serve feat: Implement Go examples and refactor matrix execution 2025-11-14 11:12:15 +00:00
smsg-reply feat: Add STMF form encryption and SMSG secure message packages 2025-12-27 00:49:07 +00:00
collect_github_repo.sh feat: Add documentation and examples 2025-11-02 12:23:25 +00:00
collect_pwa.sh feat: Add documentation and examples 2025-11-02 12:23:25 +00:00
collect_website.sh feat: Add documentation and examples 2025-11-02 12:23:25 +00:00
compress_datanode.sh feat: Add optional compression to collect commands 2025-11-02 13:27:04 +00:00
create_tim.sh feat: Add trix encryption and format 2025-11-14 13:47:27 +00:00
demo-sample.smsg fix: mobile scrolling + clean up mkdemo hardcoded values 2026-01-12 15:35:13 +00:00
serve_tim.sh feat: Add trix encryption and format 2025-11-14 13:47:27 +00:00