SecureZip is a Visual Studio Code extension that lets you securely export your project as a clean ZIP archive.
Stable export workflow with ignore tooling, auto-commit, and tagging.
- 📦 Export to ZIP – Create a ZIP of your project with one click.
- 🔄 Optional Auto Commit – Offer to commit tracked changes before export, with a toggle to include untracked files automatically.
- 🏷 Auto Tagging – Tag the repository with the export timestamp for traceability.
- 🧹 Smart Ignore Support – Respects
.gitignoreand project-specific.securezipignoreto strip secrets and build artifacts.
SecureZip only offers the auto-commit step when it detects local changes. By default it stages tracked files via git add --update, matching the safe workflow shown in the warning dialog. If you prefer SecureZip to stage new files as well, switch the stage mode in your settings:
{
"secureZip.autoCommit.stageMode": "all"
}tracked(default) – Stage edits/deletions to tracked files only.all– Stage tracked and untracked files (git add --all).
SecureZip can tag exports for traceability. Choose the tagging behavior per export or set a default:
{
"secureZip.tagging.mode": "ask"
}ask(default) – Prompt to use the default tag, skip, or enter a custom tag.always– Always create the default export tag.never– Skip tagging entirely.
SecureZip respects the following when selecting files to include:
.gitignore– Acknowledged automatically..securezipignore– Project rules to exclude and re-include files for export.- Preview deduplication: the SecureZip view merges duplicates with priority
.securezipignore>.gitignore> auto-excludes, hides comments/blank lines and unmatched entries, and shows suppressed sources in the tooltip (“Also excluded by …”).
.securezipignore syntax (gitignore-like subset):
# commentand empty lines are ignored.patternexcludes matches.!patternre-includes matches (overrides only.securezipignoreexcludes)./pathis treated as workspace-root relative.dir/matches a directory (expanded todir/**).
Examples:
# Exclude all build outputs
dist/
out/
# Exclude all env files, but allow the example
.env*
!.env.example
# Keep a specific file inside an excluded folder
!dist/manifest.json
SecureZip supports lightweight feature flags with both build-time defaults and runtime overrides.
- Runtime setting (recommended for users):
secureZip.flags.enableStatusBarButton(default: true)
- Build-time defaults (for maintainers):
esbuild.jsinjects__BUILD_FLAGS__usingdefine, allowing different defaults per build.
- Rollout helpers:
src/flags.tsprovides utilities to compute deterministic buckets frommachineIdif gradual rollout is needed.
Example settings.json override:
{
"secureZip.flags.enableStatusBarButton": false
}- Delivering project source code to clients without leaking secrets.
- Creating reproducible “release snapshots” of work-in-progress.
- Archiving a clean, tagged version of your repository for audit or compliance.
npm run sbomgeneratesdist/securezip-sbom.cdx.jsonin CycloneDX format so the extension bundle always ships with a fresh dependency inventory.- The SBOM step also runs automatically after
npm run package; seedocs/sbom.mdfor details and customization tips.
- Multiple archive formats (
.tar.gz,.7z) - Custom exclude profiles (
audit,distribution, etc.) - Password-protected archives
- 🗂 Manifest File – Embed an
__export_manifest.jsonwith commit ID, tag, and export metadata (future candidate)
- Install from the VS Code Marketplace: yugook.securezip
- Contributing guide – setup, coding standards, and PR checklist.
- Testing guide – how to run type checks, linters, unit, and integration tests.
- Release process – preview/stable branching strategy and versioning rules.
- Architecture overview – maps key modules and data flows.
- Localization guide – adding translations for runtime and contribution strings.
- SBOM instructions – details about
npm run sbomand the bundled CycloneDX file. - Packaging preflight: run
npm run package:verifybefore tagging/release to catch VS Code engine mismatches forvsce.
SecureZip is distributed under the MIT License.
SecureZip は、プロジェクトを安全かつクリーンな ZIP アーカイブとしてエクスポートできる Visual Studio Code 拡張機能です。
エクスポートの安定版フロー(ignore 対応、自動コミット、タグ付け)を提供します。
- 📦 Export to ZIP – プロジェクトをワンクリックで ZIP アーカイブとしてエクスポートします。
- 🔄 Auto Commit(任意設定) – エクスポート前に追跡済み変更をコミットするよう確認し、必要であれば未追跡ファイルも自動ステージできます。
- 🏷 Auto Tagging – エクスポート時刻を利用してリポジトリにタグを付けます。
- 🧹 スマートな除外サポート –
.gitignoreと.securezipignoreを尊重し、機密情報やビルド成果物を除外します。
SecureZip が未コミット変更を検出したときだけ自動コミットを提案します。既定では git add --update(追跡済みファイルのみ)を実行しますが、設定で未追跡ファイルも含めるように切り替えられます。
{
"secureZip.autoCommit.stageMode": "all"
}tracked(既定)– 追跡済みファイルの変更/削除のみをステージ。all– 追跡済み+未追跡ファイルをステージ(git add --all相当)。
SecureZip はエクスポート時の追跡性向上のため、タグ付けの挙動を選択できます。
{
"secureZip.tagging.mode": "ask"
}ask(既定)– 毎回、デフォルトタグ/スキップ/カスタムを選択します。always– 常にデフォルトタグを作成します。never– タグ付けを行いません。
SecureZip はアーカイブに含めるファイルを選ぶ際、次のルールを尊重します。
.gitignore– 自動的に適用されます。.securezipignore– エクスポート専用に除外や再包含を指定するプロジェクトルールです。- SecureZip ビューのプレビューでは、
.securezipignore>.gitignore> 自動除外の優先順で同一パターンを1行にまとめ、コメント/空行や未マッチ行は表示しません(抑制された出典はツールチップに表示)。
.securezipignore の構文(gitignore 互換のサブセット):
# commentや空行は無視されます。patternは一致した項目を除外します。!patternは一致した項目を再包含します(.securezipignoreの除外のみを上書き)。/pathはワークスペースルートからの相対パスです。dir/はディレクトリに一致し、dir/**に展開されます。
例:
# ビルド成果物を除外
dist/
out/
# env ファイルを除外(例外あり)
.env*
!.env.example
# 除外ディレクトリ内の特定ファイルは残す
!dist/manifest.json
SecureZip は、ビルド時のデフォルトと実行時の上書きを組み合わせた軽量な機能フラグをサポートしています。
- ランタイム設定(ユーザー向け):
secureZip.flags.enableStatusBarButton(デフォルト: true)
- ビルド時デフォルト(メンテナー向け):
esbuild.jsがdefineで__BUILD_FLAGS__を注入し、ビルドごとに異なるデフォルトを設定できます。
- 段階的ロールアウト支援:
src/flags.tsはmachineIdから決定的なバケットを算出するユーティリティを提供します。
settings.json での上書き例:
{
"secureZip.flags.enableStatusBarButton": false
}- クライアントへのソースコード提供時に機密情報流出を防ぐ。
- 進行中の作業を再現可能な「リリーススナップショット」として保存する。
- 監査・コンプライアンス対応でタグ付きのクリーンなリポジトリ状態をアーカイブする。
npm run sbomで CycloneDX 形式のdist/securezip-sbom.cdx.jsonを生成し、拡張が依存関係の一覧を同梱できるようにしました。npm run package完了後にも SBOM が自動出力されます。詳しくはdocs/sbom.mdを参照してください。
- 複数アーカイブ形式(
.tar.gz、.7zなど)への対応 auditやdistributionなどのカスタム除外プロファイル- パスワード保護付きアーカイブ
- 🗂 Manifest File – コミット ID、タグ、エクスポート情報を含む
__export_manifest.jsonの埋め込み(将来的な候補)
- VS Code Marketplace からインストール: yugook.securezip
- コントリビュートガイド – セットアップ、コーディング規約、PR チェックリスト。
- テストガイド – 型チェック、lint、ユニット/インテグレーションテストの実行方法。
- リリース手順 – プレビュー/安定版のブランチ戦略とバージョンルール。
- アーキテクチャ概要 – 主要モジュールとデータフローの説明。
- ローカライズガイド – 実行時・コントリビューション文字列への翻訳追加手順。
- SBOM 手順 –
npm run sbomの詳細と同梱される CycloneDX ファイルについて。 - パッケージ前チェック: タグ/リリース前に
npm run package:verifyを実行して、VS Code エンジンの不整合でvsceが失敗しないか確認してください。
SecureZip は MIT License で配布しています。