dncrews opened a new pull request, #8877:
URL: https://github.com/apache/incubator-devlake/pull/8877

   ### Summary
   
   This PR adds a new Rootly data-source plugin that collects 
incident-management data from Rootly and maps it into DevLake's ticket domain 
model.
   
   **Rootly Plugin Implementation (`backend/plugins/rootly/`):**
   
   - Adds the full Rootly plugin implementation with connection, scope, scope 
config, API, migration, model, and blueprint pipeline support.
   - Adds Rootly connection management using Bearer token authentication, 
including create/list/update/delete/test connection APIs.
   - Adds remote scope discovery for Rootly services, including search and 
paginated service selection.
   - Collects Rootly services and incidents through Rootly's JSON:API endpoints.
   - Extracts Rootly incidents, services, and related users into tool-layer 
tables.
   - Converts Rootly services into DevLake boards and Rootly incidents into 
DevLake ticket issues, board issues, and issue assignees.
   - Maps Rootly incident statuses, severities, timestamps, creators, and 
lifecycle role users into DevLake domain fields.
   - Supports blueprint v2.0 pipeline plan generation for selected Rootly 
service scopes.
   
   **Config UI:**
   
   - Registers Rootly in the config UI plugin list.
   - Adds the Rootly connection form with endpoint, token, proxy, and 
rate-limit configuration.
   - Adds the Rootly icon and stable documentation URLs.
   
   **Grafana Dashboard:**
   
   - Adds a Rootly data-source dashboard for incident resolution status and 
MTTR metrics.
   - Filters dashboard data by Rootly service boards using the standard DevLake 
board/issue/board_issue domain tables.
   
   **Testing:**
   
   - Adds unit coverage for incident query construction, extraction edge cases, 
status/severity mapping, lead-time calculation, and assignee deduplication.
   - Adds an e2e data-flow fixture test covering raw Rootly incidents through 
tool-layer extraction and ticket-domain conversion.
   - Registers Rootly in plugin table-info and server-startup plugin coverage.
   
   ### Does this close any open issues?
   
   Closes #8876
   
   ### Screenshots
   
   N/A
   
   ### Other Information
   
   **Data model mapping:**
   
   - Rootly Service → DevLake Board
   - Rootly Incident → DevLake Issue
   - Rootly Incident Service relationship → DevLake BoardIssue
   - Rootly incident role users → DevLake User and IssueAssignee
   - Rootly status/severity fields → DevLake ticket status, priority, and 
severity
   
   **Validation run locally:**
   
   - `jq empty grafana/dashboards/Rootly.json`
   - `go test ./plugins/rootly/...`


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to