Skip to content

Conversation

@dbruno21
Copy link
Contributor

Summary

  • Adds faros_epics stream to GitLab source with incremental sync support using updated_at cursor
  • Implements GitLab epics converter that maps epic data to tms_Epic destination model
  • Adds epic relationship support to GitLab issues via epic_id field
  • Updates GitLab issues converter to create epic associations in tms_Task records
  • Simplifies epic data structure to include only essential fields needed for conversion

Key Changes

Source Changes

  • New faros_epics stream (FarosEpics) with group-level slicing and incremental sync
  • Updated getEpics method to fetch and emit only necessary fields using lodash pick
  • Updated getIssues method to include epic_id field from GitLab API
  • Added epic support to stream configurations (MinimumStreamNames, FullStreamNames, CustomStreamNames)

Destination Changes

  • New FarosEpics converter that maps GitLab epics to tms_Epic records
  • Updated FarosIssues converter to create epic relationships in tms_Task records
  • Epic status mapping: openedTodo, closedDone

Type Definitions

  • Simplified FarosEpicOutput to include only: id, group_id, title, description, state, created_at, updated_at
  • Added epic_id field to FarosIssueOutput for issue-to-epic relationships

Test Coverage

  • Comprehensive source tests with simplified test data matching actual API usage
  • Destination converter tests with snapshot validation
  • Issue-to-epic relationship testing with test data linking issue to epic

Technical Details

  • Group-level resource: Epics are group-level in GitLab, stream uses group slicing
  • Premium feature handling: Graceful handling of 403 errors for non-Premium GitLab instances
  • Data efficiency: Only fetches and processes fields actually used by converters
  • Consistent patterns: Follows existing GitLab stream and converter patterns

🤖 Generated with Claude Code

- Add faros_epics stream to GitLab source with incremental sync support
- Implement GitLab epics converter mapping to tms_Epic destination model
- Add epic relationship support to GitLab issues (epic_id field)
- Update GitLab issues converter to create epic associations in tms_Task records
- Simplify epic data structure to include only essential fields for conversion
- Add comprehensive test coverage for both source and destination components

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

Co-Authored-By: Claude <[email protected]>
@sonarqubecloud
Copy link

@dbruno21 dbruno21 changed the title Add GitLab epics stream with tms_Epic integration FAI-17536 | Add GitLab epics stream with tms_Epic integration Jul 31, 2025
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