Skip to content

feat: dual-mode template resolution and archive unpacker - #160

Merged
JacksonFergusonDev merged 5 commits into
mainfrom
dual-mode-template-resolution
Aug 15, 2026
Merged

feat: dual-mode template resolution and archive unpacker#160
JacksonFergusonDev merged 5 commits into
mainfrom
dual-mode-template-resolution

Conversation

@JacksonFergusonDev

Copy link
Copy Markdown
Owner

Overview

This PR implements dual-mode template resolution allowing users to initialize projects from remote repositories or local directories.

Changes Made

  • Interpolation Utilities: Added raw rendering support to render_template without TOML escaping.
  • Network & Archive Handling: Added URL translations for GitHub, GitLab, Bitbucket, and Codeberg. Implemented fetch_template_archive to extract .zip and .tar.gz archives securely, preventing Zip Slip/Tar Slip attacks using safe_extract_zip and filter='data'.
  • Config Module Upgrades: Modified TemplateBlueprint.load to walk a remote or local template/ subdirectory tree, extract variables, and dynamically map files into blueprint.files. Ensure OS temporary directories are reliably cleaned up.
  • Tests: Added tests for archive translation and blueprint loading in test_network.py and test_blueprint_loader.py.

@JacksonFergusonDev
JacksonFergusonDev merged commit 2b9cdc6 into main Aug 15, 2026
10 checks passed
@JacksonFergusonDev
JacksonFergusonDev deleted the dual-mode-template-resolution branch August 15, 2026 00:38
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