Conversation
There was a problem hiding this comment.
Pull request overview
This pull request adds support for Scripture Burrito projects to the Scripture Rendering Pipeline. Scripture Burrito is a standardized format for Bible translation projects that uses a metadata.json file. The implementation detects Scripture Burrito projects alongside existing BTTWriter and standard RC (Resource Container) projects, and processes them through the same USFM-based rendering pipeline.
Changes:
- Added Scripture Burrito project detection and metadata parsing in
Utils.GetRepoInformation() - Added
IsScriptureBurritoProjectproperty to relevant models and propagated it through the analysis and rendering pipelines - Refactored
BTTWriterCatalog/Webhook.csto use centralized repository identification logic - Added
ScriptureBurritoNuGet package (version 0.1.1) as a dependency
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| PipelineCommon/PipelineCommon.csproj | Adds ScriptureBurrito package reference (v0.1.1) |
| PipelineCommon/Models/RepoIdentificationResult.cs | Adds isScriptureBurritoProject boolean field to track project type |
| PipelineCommon/Models/BusMessages/RepoAnalysisResult.cs | Adds IsScriptureBurritoProject property with documentation |
| PipelineCommon/Helpers/Utils.cs | Implements Scripture Burrito detection and metadata parsing; includes code style improvements (collection expressions, reduced nesting) |
| ScriptureRenderingPipelineWorker/Models/RendererInput.cs | Adds IsScriptureBurritoProject property to pass project type through rendering pipeline |
| ScriptureRenderingPipelineWorker/RepoAnalysisTrigger.cs | Populates and logs Scripture Burrito flag in repository analysis |
| ScriptureRenderingPipelineWorker/RenderingTrigger.cs | Sets Scripture Burrito flag and includes it in converter name for tracking |
| ScriptureRenderingPipelineWorker/ProgressReporting.cs | Adds clarifying comment that Scripture Burrito projects use USFM files |
| BTTWriterCatalog/Webhook.cs | Refactored to use centralized Utils.GetRepoInformation() instead of duplicate manifest parsing logic |
Comments suppressed due to low confidence (8)
BTTWriterCatalog/Webhook.cs:371
- Condition is always not null because of ... == ....
CheckingLevel = resourceContainer?.checking?.checking_level,
BTTWriterCatalog/Webhook.cs:372
- Condition is always not null because of ... == ....
CheckingEntities = resourceContainer?.checking?.checking_entity.ToList(),
BTTWriterCatalog/Webhook.cs:390
- Condition is always not null because of ... == ....
CheckingLevel = resourceContainer?.checking?.checking_level,
BTTWriterCatalog/Webhook.cs:391
- Condition is always not null because of ... == ....
CheckingEntities = resourceContainer?.checking?.checking_entity.ToList(),
BTTWriterCatalog/Webhook.cs:410
- Condition is always not null because of ... == ....
CheckingLevel = resourceContainer?.checking?.checking_level,
BTTWriterCatalog/Webhook.cs:411
- Condition is always not null because of ... == ....
CheckingEntities = resourceContainer?.checking?.checking_entity.ToList(),
BTTWriterCatalog/Webhook.cs:374
- Condition is always not null because of ... == ....
BookTitle = resourceContainer?.projects?.FirstOrDefault(p => p.identifier.ToLower() == book.ToLower())?.title ?? null,
BTTWriterCatalog/Webhook.cs:393
- Condition is always not null because of ... == ....
BookTitle = resourceContainer?.projects?.FirstOrDefault(p => p.identifier.ToLower() == book.ToLower())?.title ?? null,
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This pull request adds support for recognizing and handling Scripture Burrito projects (identified by
metadata.json) alongside existing project types. It updates the repository identification logic, metadata extraction, and internal data models to accommodate this new project type. Additionally, it ensures that Scripture Burrito projects are correctly processed in downstream rendering and analysis workflows.Scripture Burrito project support:
metadata.jsonin the repository, extracting relevant metadata (language, resource name, etc.), and constructing a compatibleResourceContainerfor downstream use. (PipelineCommon/Helpers/Utils.cs[1] [2]RepoIdentificationResultandRepoAnalysisResultmodels to include anIsScriptureBurritoProjectproperty, and ensured this property is set and propagated throughout the pipeline. (PipelineCommon/Models/RepoIdentificationResult.cs[1]PipelineCommon/Models/BusMessages/RepoAnalysisResult.cs[2]ScriptureRenderingPipelineWorker/Models/RendererInput.cs[3]ScriptureRenderingPipelineWorker/RenderingTrigger.cs[4] [5] [6]ScriptureRenderingPipelineWorker/RepoAnalysisTrigger.cs[7]Rendering and processing logic:
ScriptureRenderingPipelineWorker/RenderingTrigger.cs[1] [2] [3]ScriptureRenderingPipelineWorker/RepoAnalysisTrigger.csScriptureRenderingPipelineWorker/RepoAnalysisTrigger.csR100-R105)General improvements and code cleanup:
GetBookAbbreviationFromFileNamenow returns nullable, static usages streamlined). (PipelineCommon/Helpers/Utils.cs[1] [2] [3]ScriptureBurritoNuGet package as a dependency to enable parsing ofmetadata.json. (PipelineCommon/PipelineCommon.csprojPipelineCommon/PipelineCommon.csprojR16)These changes enable the system to process a broader range of scripture project formats, making the pipeline more flexible and future-proof.