cciget
0.4.1
Discover and install CCI internal PowerShell modules from per-tenant Azure Artifacts feeds. Uses Entra/AzDO Artifacts Credential Provider; no PATs required.
Minimum PowerShell version
5.1
Installation Options
Owners
Copyright
(c) 2026 CCI. All rights reserved.
Package Details
Author(s)
- CCI Platform IT
Tags
cci package-management azure-artifacts psresourceget internal-gallery
Functions
Connect-CciGet Disconnect-CciGet Get-CciGetConfig Set-CciGetConfig Find-CciModule Install-CciModule Update-CciModule Get-CciModule Save-CciModule Publish-CciModuleToBlob
Dependencies
-
- Microsoft.PowerShell.PSResourceGet (>= 1.0.0)
Release Notes
0.4.1 - Module-name completion offers the short name a user types (wincustpayload) rather than the tenant-prefixed one; 0.4.0 sorted the candidates alphabetically, which put the prefixed name first. 0.4.0 - Guided flow. Connect-CciGet now lists the modules the tenant actually offers and names the next command; Install-CciModule says what to import afterwards, and surfaces a module-declared next step from its manifest (PrivateData.CciGet.NextStep). Module names and tenants tab-complete on Install/Save/Update/Find-CciModule. Installing a module does not load it, so a build that stopped after installing hit a confusing "nothing is registered" error on the next command with no indication of the missing step. 0.3.2 - Fixes installing from the distribution store on Windows PowerShell 5.1, which is what machine builds run. The container listing comes back as UTF-8 with a BOM but no charset in the Content-Type, so 5.1 decodes it as ISO-8859-1 and the cast to XML fails; the body is now decoded from raw bytes as UTF-8. PowerShell 7 decodes correctly, so this passed every workstation test and failed only on the machine it exists for. Module sources are now ASCII-only and tests run on both hosts. 0.3.1 - Device-code sign-in read the token endpoint error body only the way Windows PowerShell 5.1 exposes it, so on PowerShell 7 the routine authorization_pending response could not be parsed and the sign-in aborted the moment polling began. Both shapes are now handled. 0.3.0 - The distribution store no longer uses Az PowerShell. Az.Accounts device-code sign-in is broken on the Windows PowerShell 5.1 that freshly built machines run ("the type initializer for MsalJsonSerializerContext threw an exception"), and pulling Az.Accounts + Az.Storage during OOBE costs hundreds of MB. Sign-in and blob access are now plain REST against the Entra device-code endpoint and the Blob service, so cciget has no Azure dependency beyond HTTPS. Also: blob request failures now throw instead of being written to the error stream, which previously let a partially downloaded module report success; failed installs remove the partial folder; and the module initialises its script state so the store path does not trip Set-StrictMode. 0.2.1 - ONE sign-in. Connect-CciGet now selects its source before prompting: a live Azure CLI session uses the feed (no prompt), otherwise the tenant distribution store (one device code, no Azure DevOps entitlement and no credential-provider download), falling back to the feed only if the store is unavailable. 0.2.0 always tried the feed first, so a machine builder completed TWO device codes - one of them for a resource they cannot use. Adds -Source Auto|Feed|Store. 0.2.0 - Tenant distribution store: modules can now be served from the tenant Azure storage account (Entra/Azure-RBAC gated) as well as the Azure Artifacts feed. Reading an Artifacts feed requires an Azure DevOps org entitlement plus a paid Basic licence per user (Stakeholder has no Artifacts access), which machine builders neither have nor need - they already hold Azure RBAC on the tenant store for customization payloads. Install-CciModule resolves RequiredModules recursively from it; Publish-CciModuleToBlob mirrors a built module into it. 0.1.2 - Fixes three fresh-machine sign-in faults found on a real build: device-code sign-in now allows 10 minutes instead of the provider default 90s; the credential provider is forced to device-code flow instead of the WAM broker dialog, which fails with 0x800703f0 on freshly built machines; and a malformed hint string that made Connect-CciGet fail with PositionalParameterNotFound on its own error path. 0.1.1 - Connect-CciGet drives the Azure Artifacts Credential Provider directly when no Azure CLI session is present, instead of relying on the provider being able to prompt from PSResourceGet plugin mode. 0.1.0 - Initial preview.
FileList
- cciget.nuspec
- src\_Get-CciBlobModuleIndex.ps1
- cciget.psd1
- src\_Get-CciEntraToken.ps1
- cciget.psm1
- src\_Get-CciGetConfigPath.ps1
- src\Connect-CciGet.ps1
- src\_Get-CciGetDefaultConfig.ps1
- src\Disconnect-CciGet.ps1
- src\_Get-CciGetRepositoryName.ps1
- src\Find-CciModule.ps1
- src\_Get-CciModuleCompletionSource.ps1
- src\Get-CciGetConfig.ps1
- src\_Get-CciModulesRoot.ps1
- src\Get-CciModule.ps1
- src\_Install-CciModuleFromBlob.ps1
- src\Install-CciModule.ps1
- src\_Invoke-CciBlobRequest.ps1
- src\Publish-CciModuleToBlob.ps1
- src\_Invoke-CciCredentialProvider.ps1
- src\Save-CciModule.ps1
- src\_Resolve-CciGetFeed.ps1
- src\Set-CciGetConfig.ps1
- src\_Resolve-CciModuleName.ps1
- src\Update-CciModule.ps1
- src\_Write-CciGetNextStep.ps1
- src\_Connect-CciBlobStore.ps1
- src\_Write-CciInstalledNextStep.ps1
Version History
| Version | Downloads | Last updated |
|---|---|---|
| 0.6.1 | 9 | 8/11/2026 |
| 0.6.0 | 7 | 8/10/2026 |
| 0.5.0 | 13 | 8/6/2026 |
| 0.4.1 (current version) | 7 | 8/6/2026 |
| 0.4.0 | 5 | 8/6/2026 |
| 0.3.2 | 5 | 8/5/2026 |
| 0.3.1 | 6 | 8/5/2026 |
| 0.3.0 | 3 | 8/5/2026 |
| 0.2.1 | 5 | 8/5/2026 |
| 0.2.0 | 3 | 8/5/2026 |
| 0.1.2 | 5 | 8/5/2026 |
| 0.1.1 | 6 | 8/5/2026 |
| 0.1.0 | 8 | 8/3/2026 |
| 0.0.11 | 35 | 5/9/2026 |
| 0.0.10 | 6 | 5/9/2026 |
| 0.0.9 | 5 | 5/9/2026 |
| 0.0.8 | 16 | 5/7/2026 |
| 0.0.7 | 9 | 5/7/2026 |
| 0.0.6 | 10 | 5/7/2026 |
| 0.0.5 | 6 | 5/6/2026 |
| 0.0.4 | 6 | 5/6/2026 |
| 0.0.3 | 5 | 5/6/2026 |
| 0.0.2 | 5 | 5/6/2026 |
| 0.0.1 | 5 | 5/6/2026 |