ocean icon indicating copy to clipboard operation
ocean copied to clipboard

[Integration][Bitbucket-cloud] Added default mapping and blueprints for CODEOWNERS file

Open oiadebayo opened this issue 2 weeks ago • 2 comments

User description

Description

What - Added CODEOWNERS file ingestion as defaults for Bitbucket Cloud integration with blueprint and mappings

Why - Enable tracking of code ownership across Bitbucket repositories to improve visibility into team responsibilities and file ownership

How - Created bitbucketCodeowners blueprint, implemented itemsToParse logic to parse CODEOWNERS entries, and added skipParsing flag to file retrieval for raw content processing

Type of change

Please leave one option from the following and delete the rest:

  • [ ] Bug fix (non-breaking change which fixes an issue)
  • [ ] New feature (non-breaking change which adds functionality)
  • [ ] New Integration (non-breaking change which adds a new integration)
  • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • [x] Non-breaking change (fix of existing functionality that will not change current behavior)
  • [ ] Documentation (added/updated documentation)

All tests should be run against the port production environment(using a testing org).

Core testing checklist

  • [ ] Integration able to create all default resources from scratch
  • [ ] Resync finishes successfully
  • [ ] Resync able to create entities
  • [ ] Resync able to update entities
  • [ ] Resync able to detect and delete entities
  • [ ] Scheduled resync able to abort existing resync and start a new one
  • [ ] Tested with at least 2 integrations from scratch
  • [ ] Tested with Kafka and Polling event listeners
  • [ ] Tested deletion of entities that don't pass the selector

Integration testing checklist

  • [ ] Integration able to create all default resources from scratch
  • [ ] Completed a full resync from a freshly installed integration and it completed successfully
  • [ ] Resync able to create entities
  • [ ] Resync able to update entities
  • [ ] Resync able to detect and delete entities
  • [ ] Resync finishes successfully
  • [ ] If new resource kind is added or updated in the integration, add example raw data, mapping and expected result to the examples folder in the integration directory.
  • [ ] If resource kind is updated, run the integration with the example data and check if the expected result is achieved
  • [ ] If new resource kind is added or updated, validate that live-events for that resource are working as expected
  • [ ] Docs PR link here

Preflight checklist

  • [ ] Handled rate limiting
  • [ ] Handled pagination
  • [ ] Implemented the code in async
  • [ ] Support Multi account

Screenshots

Include screenshots from your environment showing how the resources of the integration will look.

API Documentation

Provide links to the API documentation used for this integration.


PR Type

Enhancement


Description

  • Added CODEOWNERS file ingestion support for Bitbucket Cloud integration

  • Created bitbucketCodeowners blueprint with location and scope properties

  • Implemented file pattern parsing logic with itemsToParse for CODEOWNERS entries

  • Enhanced file search to support global path patterns and handle filenames without extensions


Diagram Walkthrough

flowchart LR
  A["File Pattern Processing"] -->|"Parse CODEOWNERS"| B["itemsToParse Logic"]
  B -->|"Extract scope and owners"| C["bitbucketCodeowners Entity"]
  C -->|"Link to"| D["bitbucketRepository"]
  E["Global Path Support"] -->|"Normalize paths"| A

File Walkthrough

Relevant files
Enhancement
file_kind.py
Enhanced file search with global path support                       

integrations/bitbucket-cloud/bitbucket_cloud/helpers/file_kind.py

  • Added GLOBAL_PATHS constant to handle wildcard path patterns
  • Removed path requirement check to allow global path searches
  • Enhanced path normalization to convert global patterns to root path
  • Improved filename extension extraction to handle files without
    extensions
+8/-5     
blueprints.json
Added CODEOWNERS blueprint definition                                       

integrations/bitbucket-cloud/.port/resources/blueprints.json

  • Added new bitbucketCodeowners blueprint definition
  • Includes properties for file location and ownership scope
  • Establishes relationship to bitbucketRepository entity
+34/-0   
port-app-config.yml
Added CODEOWNERS file resource mapping configuration         

integrations/bitbucket-cloud/.port/resources/port-app-config.yml

  • Added file kind resource configuration for CODEOWNERS ingestion
  • Implemented itemsToParse logic to parse CODEOWNERS file content
  • Extracts scope, owners, and repository information from each line
  • Maps parsed data to bitbucketCodeowners entities with repository
    relations
+34/-0   
Configuration changes
integration.py
Updated default folder pattern path                                           

integrations/bitbucket-cloud/integration.py

  • Changed default FolderPattern.path from empty string to */
  • Ensures consistent default behavior for folder pattern matching
+1/-1     
Documentation
CHANGELOG.md
Updated changelog for version 0.1.94                                         

integrations/bitbucket-cloud/CHANGELOG.md

  • Added version 0.1.94 release notes
  • Documented CODEOWNERS file ingestion support as improvement
+8/-0     
Dependencies
pyproject.toml
Version bump to 0.1.94                                                                     

integrations/bitbucket-cloud/pyproject.toml

  • Bumped version from 0.1.93 to 0.1.94
+1/-1     

oiadebayo avatar Nov 12 '25 02:11 oiadebayo