Skip to content

Document integrations and plugins - #409

Merged
cassidyjames merged 4 commits into
roostorg:mainfrom
SemTiOne:docs/integrations-and-plugins
Jul 14, 2026
Merged

Document integrations and plugins#409
cassidyjames merged 4 commits into
roostorg:mainfrom
SemTiOne:docs/integrations-and-plugins

Conversation

@SemTiOne

@SemTiOne SemTiOne commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Description

Adds docs/integrations.md — a guide covering how to extend Osprey via plugins, walking through UDFs (including side-effect UDFs and async UDFs), hash-based lookups, custom input sinks, output sinks (sync and async), connecting a labels service to a review tool, and plugging in ML models. Also registers the page in docs/SUMMARY.md.

Closes #383

  • docs/integrations.md — new file
  • docs/SUMMARY.md — add Integrations and Plugins under Concepts & More

Checklist

  • Tests pass locally
  • uv run ruff check . passes (no unused imports or other lint errors)
  • uv tool run fawltydeps --check-unused --pyenv .venv passes (no unused dependencies)
  • Updated CHANGELOG.md with my changes, if notable (refer to Keep a Changelog conventions)

Summary by CodeRabbit

  • Documentation
    • Added a new “Integrations & Plugins” guide covering how to extend the system with plugin packages and UDFs, including sync/async worker hook discovery and invocation.
    • Documented UDF requirements (including examples and async guidance) and listed built-in hash lookup UDFs (MD5/SHA1/SHA256/SHA512).
    • Explained how to integrate custom input/output sinks via plugin-based registration, including a PostgreSQL labels-service example.
    • Updated the documentation index to link to the new page.

@SemTiOne
SemTiOne requested review from a team, EXBreder, ayubun, haileyok and vinaysrao1 as code owners July 4, 2026 00:51
@coderabbitai

coderabbitai Bot commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

This PR adds docs/integrations.md, documenting Osprey’s plugin architecture, UDFs, input/output sinks, labels services, ML model integration, and plugin packaging. docs/SUMMARY.md links to the new page.

Changes

Integrations Documentation

Layer / File(s) Summary
Intro and plugin loading mechanism
docs/integrations.md, docs/SUMMARY.md
Introduces the extension model, explains pluggy-based discovery via sync/async entry points, and adds a navigation link.
UDF authoring and registration
docs/integrations.md
Covers UDF class structure, an example detection UDF, effects, async UDFs, registration via register_udfs, and built-in hash UDFs.
Input and output sink integration
docs/integrations.md
Documents built-in and custom input streams and sync/async output sinks with their registration hooks.
Labels service and ML model integration
docs/integrations.md
Documents a PostgreSQL-backed labels service and wrapping ML model predictions as UDFs.
Plugin packaging and reference
docs/integrations.md
Documents pyproject.toml entry-point packaging and links to rules.md.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Suggested reviewers: ayubun, exbreder, haileyok

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The new docs cover UDFs, sinks, hash lookups, ML models, and review-tool integration requested in #383.
Out of Scope Changes check ✅ Passed The only code changes are the new docs page and its summary link, both aligned with the stated documentation scope.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: adding documentation for integrations and plugins.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cassidyjames cassidyjames self-assigned this Jul 14, 2026

@cassidyjames cassidyjames left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks so much @SemTiOne!

@cassidyjames
cassidyjames enabled auto-merge (squash) July 14, 2026 13:02
@cassidyjames cassidyjames added the documentation Improvements or additions to documentation label Jul 14, 2026
@cassidyjames
cassidyjames merged commit fef006e into roostorg:main Jul 14, 2026
6 checks passed
@SemTiOne
SemTiOne deleted the docs/integrations-and-plugins branch July 14, 2026 13:03
cassidyjames added a commit that referenced this pull request Jul 14, 2026
PR #409 and this branch both added an integrations page closing #383.
Keep #409's fuller walkthrough as the base at
development/integrations.md, fold in the branch page's unique content
(hash-lookup and review-tool extension points, UdfCategories tip,
data-flow cross-links, extra hooks), and redirect the old top-level
URL. Also set create-missing = false so bad SUMMARY paths fail the
build instead of silently creating stub pages.
@coderabbitai coderabbitai Bot mentioned this pull request Jul 20, 2026
12 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document integrations and plugins

2 participants