Skip to content

Scripture Burrito Support#187

Merged
rbnswartz merged 6 commits intodevelopfrom
rs/scripture-burrito-input
Feb 27, 2026
Merged

Scripture Burrito Support#187
rbnswartz merged 6 commits intodevelopfrom
rs/scripture-burrito-input

Conversation

@rbnswartz
Copy link
Copy Markdown
Member

@rbnswartz rbnswartz commented Feb 5, 2026

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:

  • Added detection of Scripture Burrito projects by checking for metadata.json in the repository, extracting relevant metadata (language, resource name, etc.), and constructing a compatible ResourceContainer for downstream use. (PipelineCommon/Helpers/Utils.cs [1] [2]
  • Updated the RepoIdentificationResult and RepoAnalysisResult models to include an IsScriptureBurritoProject property, 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:

  • Updated the rendering pipeline to distinguish between standard, BTTWriter, and Scripture Burrito projects, selecting the appropriate converter and processing logic for each. (ScriptureRenderingPipelineWorker/RenderingTrigger.cs [1] [2] [3]
  • Improved logging to include Scripture Burrito project status during repository analysis. (ScriptureRenderingPipelineWorker/RepoAnalysisTrigger.cs ScriptureRenderingPipelineWorker/RepoAnalysisTrigger.csR100-R105)

General improvements and code cleanup:

  • Refactored utility methods for improved nullability and direct usage (e.g., GetBookAbbreviationFromFileName now returns nullable, static usages streamlined). (PipelineCommon/Helpers/Utils.cs [1] [2] [3]
  • Added the ScriptureBurrito NuGet package as a dependency to enable parsing of metadata.json. (PipelineCommon/PipelineCommon.csproj PipelineCommon/PipelineCommon.csprojR16)

These changes enable the system to process a broader range of scripture project formats, making the pipeline more flexible and future-proof.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

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 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 IsScriptureBurritoProject property to relevant models and propagated it through the analysis and rendering pipelines
  • Refactored BTTWriterCatalog/Webhook.cs to use centralized repository identification logic
  • Added ScriptureBurrito NuGet 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.

Comment thread ScriptureRenderingPipelineWorker/RenderingTrigger.cs
Comment thread PipelineCommon/Helpers/Utils.cs Outdated
Comment thread PipelineCommon/Helpers/Utils.cs Outdated
@rbnswartz rbnswartz marked this pull request as ready for review February 9, 2026 21:48
Comment thread ScriptureRenderingPipelineWorker/RenderingTrigger.cs
@rbnswartz rbnswartz merged commit a449acb into develop Feb 27, 2026
4 checks passed
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.

3 participants