Open
Conversation
feat: [CLI-CI/CD Integration] Deploy command interface
…cohen/deploy-with-config
Co-authored-by: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com>
[CLI-CI/CD Integration] Create MSAL bridge
…tcohen/deploy-with-config
Co-authored-by: Alon Yeshurun <98805507+ayeshurun@users.noreply.github.com>
…m/aviatco/fabric-cli into dev/aviatcohen/deploy-with-config
Introducing deploy command
ayeshurun
reviewed
Mar 5, 2026
shirasassoon
reviewed
Mar 5, 2026
ayeshurun
previously approved these changes
Mar 5, 2026
…it add .github/workflows/fab-build.ymlgit add .github/workflows/fab-build.yml
aviatco
commented
Mar 5, 2026
…thub.com/aviatco/fabric-cli into dev/aviatcohen/cli-cicd-intergation-main
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📥 Pull Request
✨ Description of new changes
📋 Overview
This PR introduces the new deploy command that integrates with the fabric-cicd library, enabling users to deploy multiple Fabric items in a single operation while addressing authentication challenges through a custom MSAL bridge implementation.
🌟 Key Features
New CLI Command: Added with comprehensive argument parsing
Configuration File Support: Accepts deployment configuration files via --deploy_config_file parameter
Target Environment: Supports environment-specific deployments with --target_env
Parameter Override: JSON parameter support via -P flag for runtime configuration override
Force Mode: --force flag to bypass confirmation prompts
Seamless Integration: Direct integration with fabric_cicd.deploy_with_config
Logging Coordination: Synchronized debug logging between CLI and CICD library
Feature Flag Management: Automatic feature flag configuration for optimal deployment behavior
Error Handling: Comprehensive error handling with FabricCLIError wrapping
Core Implementation
MsalTokenCredential: Custom TokenCredential implementation wrapping CLI's MSAL authentication
Scope Validation: Strict validation ensuring only SCOPE_FABRIC_DEFAULT scopes are accepted
Multi-Auth Support: Compatible with user login, service principal, managed identity, and environment tokens
Headless Mode: Always operates in non-interactive mode for CI/CD compatibility
Security Features
Scope Restriction: Security validation prevents unauthorized scope requests
Token Reuse: Leverages existing CLI authentication without requiring re-authentication
Automatic Refresh: MSAL silent acquisition handles token refresh automatically
Deployment Workflow & Integration:
fabric-cicdlibrary via the updateddeploy_with_config_filefunction infab_fs_deploy_config_file.py, including feature flag setup, debug logging, and improved error handling with custom exceptions.Dependency Updates:
azure-coreandfabric-cicdas dependencies inpyproject.tomlandrequirements-dev.txtto support new deployment features and Azure authentication integration.Authentication & Token Handling:
Testing Improvements:
fabric_cicd. [1] [2]Error Handling:
ERROR_IN_DEPLOYMENTtofab_constant.pyfor clearer error reporting during deployment failures.