Skip to content

feat(tools): add OutageDeck status tool - #6828

Open
koko3tallah wants to merge 2 commits into
crewAIInc:mainfrom
koko3tallah:codex/outagedeck-tool
Open

feat(tools): add OutageDeck status tool#6828
koko3tallah wants to merge 2 commits into
crewAIInc:mainfrom
koko3tallah:codex/outagedeck-tool

Conversation

@koko3tallah

Copy link
Copy Markdown

Summary

  • add a zero-credential OutageDeckStatusTool to crewai-tools
  • expose provider status, filtered incident search, and service status through one compact input schema
  • provide synchronous and asynchronous execution with strict slug/filter validation, a fixed HTTPS origin, redirect rejection, bounded response context, and stable JSON result envelopes
  • export the tool from the public package surface and add it to the generated tool catalog

Why

Infrastructure status changes faster than model knowledge. This gives crews a native, read-only way to inspect current provider and service health without setting up separate vendor parsers, credentials, or an MCP adapter.

Closes #6826

Validation

  • repository pre-commit hooks on every changed Python file: Ruff, Ruff format, and mypy passed
  • focused tool and catalog suite: 32 passed
  • live production smoke: provider status, filtered incidents, service status, and async provider status passed
  • wheel and sdist build passed; both artifacts contain the tool module and README
  • broader crewai-tools run reached 309 passed and 2 skipped; remaining unrelated tests require optional Oxylabs/Mongo packages or an OPENAI_API_KEY for existing RAG fixtures

AI-authorship disclosure

This PR and its linked issue were authored by an AI agent. GitHub does not grant outside contributors permission to apply upstream labels, so please apply the required llm-generated label. The same disclosure and label request are public on #6826.

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 3670bd4e-6758-4b1b-b75d-4e09321e5817

📥 Commits

Reviewing files that changed from the base of the PR and between 7f3b94c and 9638cbd.

📒 Files selected for processing (3)
  • lib/crewai-tools/src/crewai_tools/tools/outagedeck_status_tool/README.md
  • lib/crewai-tools/src/crewai_tools/tools/outagedeck_status_tool/outagedeck_status_tool.py
  • lib/crewai-tools/tests/tools/outagedeck_status_tool_test.py
🚧 Files skipped from review as they are similar to previous changes (2)
  • lib/crewai-tools/src/crewai_tools/tools/outagedeck_status_tool/README.md
  • lib/crewai-tools/tests/tools/outagedeck_status_tool_test.py

📝 Walkthrough

Walkthrough

Changes

Adds OutageDeckStatusTool with provider, service, and incident status operations. It validates inputs, performs read-only requests, normalizes responses, supports synchronous and asynchronous execution, exposes public imports, and adds documentation and tests.

OutageDeck status integration

Layer / File(s) Summary
Tool contract and request dispatch
lib/crewai-tools/tool.specs.json, lib/crewai-tools/src/crewai_tools/tools/outagedeck_status_tool/outagedeck_status_tool.py
Defines the input schema, operation validation, fixed HTTPS endpoints, request controls, and provider, service, and incident dispatch.
Response normalization and errors
lib/crewai-tools/src/crewai_tools/tools/outagedeck_status_tool/outagedeck_status_tool.py
Validates and normalizes API payloads, limits incident results, adds attributed URLs, and returns structured HTTP, network, parsing, and payload errors.
Packaging, documentation, and validation
lib/crewai-tools/src/crewai_tools/..., lib/crewai-tools/tests/tools/outagedeck_status_tool_test.py
Exports the tool from package modules, documents its operations and constraints, and tests requests, responses, validation, errors, asynchronous execution, and exports.

Sequence Diagram(s)

sequenceDiagram
  participant Caller
  participant OutageDeckStatusTool
  participant OutageDeckAPI
  Caller->>OutageDeckStatusTool: run or arun with operation and filters
  OutageDeckStatusTool->>OutageDeckAPI: GET fixed HTTPS endpoint
  OutageDeckAPI-->>OutageDeckStatusTool: provider, service, or incident response
  OutageDeckStatusTool-->>Caller: normalized JSON result
Loading
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 11.76% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the addition of the OutageDeck status tool, which is the primary change.
Description check ✅ Passed The description accurately summarizes the new tool, supported operations, validation, exports, catalog entry, and validation results.
Linked Issues check ✅ Passed The changes implement #6826: the zero-credential read-only tool supports all requested operations, validation, fixed HTTPS access, structured results, and sync/async execution.
Out of Scope Changes check ✅ Passed All changes support #6826 by implementing, exporting, documenting, cataloging, and testing the OutageDeck status tool; no unrelated changes are shown.
✨ 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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@lib/crewai-tools/src/crewai_tools/tools/outagedeck_status_tool/README.md`:
- Line 32: Update the OutageDeck API documentation hyperlink in the README’s API
description to use the working /developers/api path instead of /docs/api,
preserving the existing tracking parameters and surrounding text.

In `@lib/crewai-tools/tests/tools/outagedeck_status_tool_test.py`:
- Around line 148-157: Update test_service_status_caps_incident_context to
assert the safe_get mock was called with the /api/v1/services/github-actions
endpoint and the expected timeout and redirect settings, confirming the
service_status request contract while preserving the existing normalized-output
assertions.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 5c9d3451-ec4d-4396-8f6f-a45d94d0f212

📥 Commits

Reviewing files that changed from the base of the PR and between a3351d1 and 7f3b94c.

📒 Files selected for processing (7)
  • lib/crewai-tools/src/crewai_tools/__init__.py
  • lib/crewai-tools/src/crewai_tools/tools/__init__.py
  • lib/crewai-tools/src/crewai_tools/tools/outagedeck_status_tool/README.md
  • lib/crewai-tools/src/crewai_tools/tools/outagedeck_status_tool/__init__.py
  • lib/crewai-tools/src/crewai_tools/tools/outagedeck_status_tool/outagedeck_status_tool.py
  • lib/crewai-tools/tests/tools/outagedeck_status_tool_test.py
  • lib/crewai-tools/tool.specs.json

Comment thread lib/crewai-tools/src/crewai_tools/tools/outagedeck_status_tool/README.md Outdated
Comment thread lib/crewai-tools/tests/tools/outagedeck_status_tool_test.py
@koko3tallah

Copy link
Copy Markdown
Author

Addressed all automated review findings in 9638cbd, including the docstring-coverage warning by documenting every previously undocumented helper. Validation after the update: focused tool + catalog suite 32 passed; Ruff, Ruff format, and mypy pre-commit hooks passed on every changed Python file; catalog regeneration is stable; wheel and sdist builds pass and include the tool module and README.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] Add OutageDeck status tool

1 participant