Skip to content

Conversation

@Gops123
Copy link
Collaborator

@Gops123 Gops123 commented Jan 3, 2026

Summary

Add support for Jira Automation webhooks in the AOF daemon, enabling automated workflows triggered by Jira events.

Changes

  • Jira Platform Registration: Register Jira platform in daemon serve command
  • Flexible Payload Parsing: Handle minimal payloads from Jira Automation (optional fields)
  • Signature Verification: Support both static secrets and HMAC-SHA256 signatures
  • Documentation: Updated tutorials and reference docs with payload templates

Files Changed

  • crates/aofctl/src/commands/serve.rs - Jira platform config and registration
  • crates/aof-triggers/src/platforms/jira.rs - Optional payload fields
  • crates/aof-triggers/src/lib.rs - Export JiraPlatform/JiraConfig
  • docs/tutorials/jira-automation.md - Payload templates and curl examples
  • docs/reference/jira-integration.md - Updated reference docs

Test Plan

  • Daemon registers Jira platform with valid config
  • Webhook endpoint accepts minimal payloads
  • Signature verification works with static secrets
  • Validation passes in Jira Automation rule editor

Related

Closes #98

🤖 Generated with Claude Code

Gopal and others added 6 commits January 3, 2026 19:00
- Add JiraPlatformConfig struct and registration logic in serve.rs
- Export JiraPlatform and JiraConfig from aof-triggers lib
- Support both direct secret and HMAC-SHA256 signature verification
- Handle sha256= prefix in webhook signatures

Documentation updates:
- Add Jira platform section to daemon-config.md reference
- Update jira-integration.md with correct DaemonConfig format
- Add webhook payload templates for Jira Automation rules
- Document both Automation Rules and System Webhooks setup options
- Add payload templates for: issue created/updated, comment, worklog, sprint events

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…bility

- Make id fields optional in JiraIssueType, JiraProject, JiraStatus,
  JiraPriority, and JiraStatusCategory structs
- Make self_url optional in JiraIssue and JiraComment structs
- Make created field optional in JiraComment
- Add debug logging for raw webhook payload
- Support both direct secret match and HMAC signature verification

These changes allow AOF to accept simpler webhook payloads from Jira
Automation rules, which don't include all the fields that Jira's
built-in system webhooks provide.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
… curl testing

- Add minimal payload templates for quick testing
- Add full payload templates with all fields for production use
- Add curl testing section for debugging webhooks without Jira
- Simplify field requirements documentation
- Document signature header for Jira Automation rules

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Jira Automation doesn't substitute smart values during validation
when no work item key is provided, resulting in empty timestamp values.
Made timestamp optional and default to current time when not provided.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Jira Automation smart values may not populate all fields during
webhook validation. Made project name optional to handle minimal payloads.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use issue key as fallback when id is not provided in payload.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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.

2 participants