jawad-khan opened a new pull request, #8758:
URL: https://github.com/apache/incubator-devlake/pull/8758

   ### ⚠️ Pre Checklist
   
   - [x] I have read through the [Contributing 
Documentation](https://devlake.apache.org/community/).
   - [x] I have added relevant tests.
   - [x] I have added relevant documentation.
   - [x] I will add labels to the PR, such as `pr-type/bug-fix`, 
`pr-type/feature-development`, etc.
   
   ### Summary
   
   This PR adds a new Asana data-source plugin that ingests project management 
data from Asana's REST API and maps it to DevLake's ticket/board domain model.
   
   **Asana Plugin Implementation (`backend/plugins/asana/`):**
   
   - Full plugin implementation with all required interfaces (PluginMeta, 
PluginTask, PluginModel, PluginMigration, PluginSource, PluginApi, 
DataSourcePluginBlueprintV200)
   - Collectors, extractors, and converters for: Projects, Sections, Tasks, 
Subtasks, Stories (comments), Tags, and Users
   - Remote API scope picker (Workspaces → Teams/Portfolios/Goals → Projects) 
for the config-ui data scope selection
   - Scope config with issue-type regex transformation rules 
(requirement/bug/incident pattern matching)
   - Personal Access Token (PAT) authentication via Bearer token
   - Offset-based pagination support for Asana's `next_page.offset` API pattern
   - 6 migration scripts for schema evolution
   - E2E tests with CSV fixtures for project and task data flows
   
   **Config UI (`config-ui/src/plugins/register/asana/`):**
   
   - Plugin registration with connection form (name, endpoint, PAT token, 
proxy, rate limit)
   - Scope config transformation form for issue-type mapping via regex
   - Dashboard URL integration for the onboarding flow
   - Plugin scope ID resolution for Asana's GID-based identifiers
   
   **Grafana Dashboard (`grafana/dashboards/Asana.json`):**
   
   - Asana dashboard with task metrics, completion rates, and project-level 
visualizations
   
   ### Does this close any open issues?
   
   N/A - New plugin contribution
   
   ### Screenshots
   
   _N/A (backend plugin + config-ui registration)_
   
   ### Other Information
   
   **Data model mapping:**
   - Asana Project → DevLake Board (scope)
   - Asana Task → DevLake Issue + BoardIssue
   - Asana User → DevLake Account
   - Asana Story → DevLake IssueComment
   - Task completion status: `completed=true` → DONE, `completed=false` → TODO
   
   **Entities collected:** Projects, Sections, Tasks, Subtasks, Stories, Tags, 
Users, Custom Fields, Memberships


-- 
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