Skip to content

refactor: rename ingestor to source throughout codebase#24

Merged
rorybyrne merged 2 commits into
mainfrom
21-rename-ingestor-source
Jan 16, 2026
Merged

refactor: rename ingestor to source throughout codebase#24
rorybyrne merged 2 commits into
mainfrom
21-rename-ingestor-source

Conversation

@rorybyrne

Copy link
Copy Markdown
Contributor

Summary

  • Rename ingestor terminology to source across the entire codebase
  • Better reflects that data can come from multiple source types (pull APIs, user uploads, webhooks)

Changes

  • Directories: osa/domain/ingest/source/, osa/infrastructure/ingest/source/, osa/sdk/ingest/source/, ingestors/sources/
  • Classes: IngestorSource, IngestorRegistrySourceRegistry, IngestServiceSourceService
  • Config: IngestConfigSourceConfig, field ingestorssources
  • Events/Listeners: IngestRequestedSourceRequested, PullFromSource, TriggerInitialSourceRun
  • Entry points: osa.ingestorsosa.sources

Closes #21

@github-actions

github-actions Bot commented Jan 11, 2026

Copy link
Copy Markdown

Code Coverage

Package Line Rate Complexity Health
. 68% 0
application 0% 0
application.api 100% 0
application.api.rest 0% 0
application.api.v1 0% 0
application.api.v1.routes 0% 0
application.event 0% 0
cli 40% 0
cli.commands 18% 0
cli.util 53% 0
domain 100% 0
domain.auth 100% 0
domain.auth.adapter 100% 0
domain.auth.command 100% 0
domain.auth.event 100% 0
domain.auth.model 100% 0
domain.auth.port 100% 0
domain.auth.query 100% 0
domain.auth.service 100% 0
domain.curation 100% 0
domain.curation.adapter 100% 0
domain.curation.command 100% 0
domain.curation.event 0% 0
domain.curation.listener 0% 0
domain.curation.model 100% 0
domain.curation.port 100% 0
domain.curation.query 100% 0
domain.curation.service 100% 0
domain.deposition 100% 0
domain.deposition.adapter 100% 0
domain.deposition.command 0% 0
domain.deposition.event 100% 0
domain.deposition.model 0% 0
domain.deposition.port 0% 0
domain.deposition.query 100% 0
domain.deposition.service 0% 0
domain.export 100% 0
domain.export.adapter 100% 0
domain.export.command 100% 0
domain.export.event 100% 0
domain.export.model 100% 0
domain.export.port 100% 0
domain.export.query 100% 0
domain.export.service 100% 0
domain.index 100% 0
domain.index.listener 0% 0
domain.index.model 74% 0
domain.index.service 100% 0
domain.record 100% 0
domain.record.adapter 100% 0
domain.record.command 100% 0
domain.record.event 100% 0
domain.record.listener 0% 0
domain.record.model 100% 0
domain.record.port 100% 0
domain.record.query 100% 0
domain.record.service 100% 0
domain.schema 100% 0
domain.schema.adapter 100% 0
domain.schema.command 100% 0
domain.schema.event 100% 0
domain.schema.model 100% 0
domain.schema.port 100% 0
domain.schema.query 100% 0
domain.schema.service 100% 0
domain.search 100% 0
domain.search.adapter 100% 0
domain.search.command 100% 0
domain.search.event 100% 0
domain.search.model 100% 0
domain.search.port 100% 0
domain.search.query 100% 0
domain.search.service 100% 0
domain.shared 44% 0
domain.shared.model 90% 0
domain.shared.port 100% 0
domain.source 100% 0
domain.source.event 100% 0
domain.source.listener 0% 0
domain.source.model 76% 0
domain.source.schedule 0% 0
domain.source.service 100% 0
domain.validation 0% 0
domain.validation.adapter 100% 0
domain.validation.command 0% 0
domain.validation.event 0% 0
domain.validation.listener 0% 0
domain.validation.model 0% 0
domain.validation.port 0% 0
domain.validation.query 100% 0
domain.validation.service 0% 0
infrastructure 100% 0
infrastructure.event 0% 0
infrastructure.index 0% 0
infrastructure.index.vector 51% 0
infrastructure.messaging 100% 0
infrastructure.oci 0% 0
infrastructure.persistence 0% 0
infrastructure.persistence.adapter 0% 0
infrastructure.source 0% 0
sdk 100% 0
sdk.index 100% 0
sdk.source 100% 0
util 100% 0
util.di 0% 0
Summary 29% (808 / 2782) 0

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request performs a comprehensive refactoring to rename "ingestor" terminology to "source" throughout the entire codebase. This change better reflects the broader purpose of these components, which can handle data from multiple source types including pull APIs, user uploads, and webhooks.

Changes:

  • Renamed all directories from ingest/ and ingestors/ to source/ and sources/
  • Updated all classes, events, and services to use "Source" terminology
  • Updated configuration models and entry points to reflect the new naming convention

Reviewed changes

Copilot reviewed 53 out of 57 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/unit/domain/source/test_source_service.py Updated unit tests to use new SourceService naming and test methods
tests/test_sources/geo_entrez/test_source.py Updated integration tests to use GEOEntrezSource instead of GEOEntrezIngestor
sources/geo_entrez/source.py Renamed GEOEntrezIngestor class to GEOEntrezSource
sources/geo_entrez/config.py Updated config to inherit from SourceConfig
sources/geo_entrez/init.py Updated exports to use new Source naming
sources/init.py New sources package initialization with updated documentation
pyproject.toml Updated entry points from "osa.ingestors" to "osa.sources"
osa/sdk/source/source.py Renamed Ingestor protocol to Source protocol
osa/sdk/source/record.py New file location for UpstreamRecord (formerly in ingest)
osa/sdk/source/config.py Renamed IngestorConfig to SourceConfig
osa/sdk/source/init.py Updated SDK exports for source components
osa/sdk/ingest/* Removed old ingest SDK files
osa/infrastructure/source/discovery.py Renamed discovery functions and classes from Ingestor to Source
osa/infrastructure/source/di.py Updated DI provider to use SourceRegistry and SourceService
osa/infrastructure/ingest/* Removed old ingest infrastructure files
osa/infrastructure/event/di.py Updated event listeners and schedules to use new Source naming
osa/domain/source/service/source.py Renamed IngestService to SourceService with updated method names
osa/domain/source/schedule/source_schedule.py Renamed IngestSchedule to SourceSchedule
osa/domain/source/model/registry.py Renamed IngestorRegistry to SourceRegistry
osa/domain/source/listener/* Renamed event listeners from IngestFromUpstream to PullFromSource
osa/domain/source/event/* Renamed events from IngestRequested to SourceRequested
osa/domain/ingest/* Removed old ingest domain files
osa/domain/shared/event.py Updated docstring examples to use Source terminology
osa/domain/deposition/model/aggregate.py Updated comment from "Ingestor info" to "Source info"
osa/domain/deposition/command/submit.py Updated comment from "not from ingest" to "not from source"
osa/config.py Renamed IngestConfig to SourceConfig and updated all related fields
osa/cli/commands/local.py Updated config templates to use sources instead of ingestors
osa/application/di.py Updated DI container to use SourceProvider
osa/application/api/rest/app.py Updated startup validation to use validate_sources_at_startup
ingestors/* Removed old ingestors directory files

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@rorybyrne rorybyrne merged commit 3bb70ee into main Jan 16, 2026
3 checks passed
@rorybyrne rorybyrne deleted the 21-rename-ingestor-source branch January 16, 2026 01:22
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.

refactor: rename ingestor to source throughout codebase

2 participants