Skip to content

POC-1 feat: cci plugin framework#19

Draft
dipakparmar wants to merge 23 commits into
mainfrom
feature/plugin-framework
Draft

POC-1 feat: cci plugin framework#19
dipakparmar wants to merge 23 commits into
mainfrom
feature/plugin-framework

Conversation

@dipakparmar

Copy link
Copy Markdown

No description provided.

dipakparmar and others added 23 commits January 17, 2026 19:33
…instructions and key documentation references
…l vars)

- Fix typo "Offical" → "Official" in bug report template
- Fix grammar "please visit on the" → "please visit the"
- Improve release.yml to use shell variables instead of reading $GITHUB_OUTPUT

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
   Add a comprehensive plugin system that allows third-party packages to
   extend CumulusCI with custom tasks, flows, services, CLI commands,
   Robot Framework libraries, and event hooks.

   Key features:
   - Plugin discovery via Python entry_points mechanism
   - Trust levels (untrusted, standard, trusted) for security
   - Hook system using pluggy for event interception
   - CLI commands: cci plugin list/info/enable/disable/trust/tasks/flows
   - @plugin:task_name syntax for referencing plugin tasks/flows
   - PluginConfig schema for cumulusci.yml configuration
   - Plugin registry for discovering available plugins

   New modules:
   - cumulusci/core/plugins/ - Core plugin infrastructure
   - cumulusci/cli/plugin.py - Plugin CLI commands

   Documentation:
   - docs/plugins.md - Plugin development guide
   - Updated docs/config.md with plugin configuration and sources vs plugins comparison
   - Updated docs/cli.md with plugin commands
   - Updated docs/robot.md with plugin library support
   The runtime creates its own PluginManager instance with plugins loaded,
   but project_config._get_plugin_task() was calling get_plugin_manager()
   which returned a different empty global singleton. This caused
   `cci task info @plugin:task` to fail with "Task not found".

   Changes:
   - Add set_plugin_manager() function to register the runtime's plugin
     manager as the global singleton
   - Add runtime.setter to CCIPlugin base class for plugin initialization
   - Call set_plugin_manager() in BaseCumulusCI.__init__ after creating
     the plugin manager

   Also adds example cci-slack-plugin demonstrating plugin development
   with tasks, flows, services, and hooks. The example includes:
   - SlackNotify task for sending simple messages
   - SlackNotifyFlowResult task for rich flow result notifications
   - notify_dev_org flow that combines dev_org setup with Slack notification
   - Slack service for storing webhook configuration
   - Hooks for automatic notifications on flow/task completion
   - Comprehensive test suite (28 tests)
@coderabbitai

coderabbitai Bot commented Jan 26, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Note

.coderabbit.yaml has unrecognized properties

CodeRabbit is using all valid settings from your configuration. Unrecognized properties (listed below) have been ignored and may indicate typos or deprecated fields that can be removed.

⚠️ Parsing warnings (1)
Validation error: Unrecognized key(s) in object: 'profile', 'request_changes_workflow', 'high_level_summary', 'high_level_summary_placeholder', 'high_level_summary_in_walkthrough', 'auto_title_placeholder', 'auto_title_instructions', 'review_status', 'commit_status', 'fail_commit_status', 'collapse_walkthrough', 'changed_files_summary', 'sequence_diagrams', 'estimate_code_review_effort', 'assess_linked_issues', 'related_issues', 'related_prs', 'suggested_labels', 'auto_apply_labels', 'suggested_reviewers', 'auto_assign_reviewers', 'in_progress_fortune', 'poem', 'labeling_instructions', 'path_filters', 'path_instructions', 'abort_on_close', 'disable_cache', 'auto_review', 'finishing_touches', 'pre_merge_checks', 'tools', 'art', 'auto_reply', 'integrations', 'opt_out', 'web_search', 'code_guidelines', 'learnings', 'issues', 'jira', 'linear', 'pull_requests', 'mcp', 'docstrings', 'unit_tests'
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

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

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.

1 participant