Files
DevOpsExamples/.gitea/skills/configure-telerik-nuget/SKILL.md
T
Lance McCarthy 82e0ef17e9
ASP.NET AJAX / build_web_app (push) Waiting to run
Angular / build_angular (push) Waiting to run
ASP.NET Core (with Reporting) / build_windows (push) Waiting to run
Blazor (with Reporting) / build_windows (push) Waiting to run
Blazor (with Reporting) / build_linux (push) Waiting to run
Console (.NET) / build_console (arm64, linux) (push) Waiting to run
Console (.NET) / build_console (arm64, win) (push) Waiting to run
Console (.NET) / build_console (x64, linux) (push) Waiting to run
Console (.NET) / build_console (x64, win) (push) Waiting to run
MAUI / Windows Smoketest (push) Waiting to run
MAUI / Android Smoketest (push) Waiting to run
MAUI / iOS Smoketest (push) Waiting to run
MAUI / MacCatalyst Smoketest (push) Waiting to run
WinForms (.NET Framework) / build_desktop (Release, x64) (push) Waiting to run
WinForms (.NET Framework) / build_desktop (Release, x86) (push) Waiting to run
WinUI3 / build-windows (push) Waiting to run
WPF (.NET Framework) / build_desktop (Release, x64) (push) Waiting to run
WPF (.NET Framework) / build_desktop (Release, x86) (push) Waiting to run
ASP.NET Core (with Reporting) - Docker / Microsoft Base - Publish to Docker Hub (push) Waiting to run
ASP.NET Core (with Reporting) - Docker / CentOS Base - Publish to Docker Hub (push) Waiting to run
Blazor (with Reporting) - Docker / Dockerfile Build and Publish (push) Waiting to run
First push
2026-05-21 15:10:03 -04:00

3.9 KiB

name, version, description, required_binaries, author, homepage, source
name version description required_binaries author homepage source
configure-telerik-nuget 1.1.0 Helps setup, configure and manage Telerik NuGet feeds in your repo's nuget.config file.
pwsh
dotnet
Lance McCarthy https://github.com/DevOpsExamples/.github https://github.com/DevOpsExamples/.github/tree/main/skills/configure-telerik-nuget

Use these helper functions to manage Telerik NuGet source configuration.

Get a new api key at https://www.telerik.com/account/downloads/api-keys

Function: configure

Sets a global user environment variable for the Telerik API key and updates/creates nuget.config so credentials use the environment variable instead of a hardcoded secret.

function Configure-TelerikNuGetSource {
	param(
		[Parameter(Mandatory = $true)]
		[string]$ApiKey,

		[string]$ApiKeyEnvVarName = "TELERIK_NUGET_API_KEY",
		[string]$SourceName = "Telerik_NuGet_Server",
		[string]$SourceUrl = "https://nuget.telerik.com/v3/index.json",
		[string]$NuGetConfigPath = "./nuget.config"
	)

	# Store API key as a user-level environment variable so it is available globally
	[Environment]::SetEnvironmentVariable($ApiKeyEnvVarName, $ApiKey, "User")
	$env:$ApiKeyEnvVarName = $ApiKey

	if (-not (Test-Path $NuGetConfigPath)) {
		@"
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources />
  <packageSourceCredentials />
</configuration>
"@ | Set-Content -Path $NuGetConfigPath -Encoding UTF8
	}

	[xml]$nugetConfig = Get-Content -Path $NuGetConfigPath

	if (-not $nugetConfig.configuration.packageSources) {
		$packageSourcesNode = $nugetConfig.CreateElement("packageSources")
		$nugetConfig.configuration.AppendChild($packageSourcesNode) | Out-Null
	}

	if (-not $nugetConfig.configuration.packageSourceCredentials) {
		$credentialsNode = $nugetConfig.CreateElement("packageSourceCredentials")
		$nugetConfig.configuration.AppendChild($credentialsNode) | Out-Null
	}

	$existingSource = $nugetConfig.configuration.packageSources.add | Where-Object {
		$_.key -eq $SourceName
	}

	if ($existingSource) {
		$existingSource.value = $SourceUrl
	} else {
		$sourceNode = $nugetConfig.CreateElement("add")
		$sourceNode.SetAttribute("key", $SourceName)
		$sourceNode.SetAttribute("value", $SourceUrl)
		$nugetConfig.configuration.packageSources.AppendChild($sourceNode) | Out-Null
	}

	$existingCredentialNode = $nugetConfig.configuration.packageSourceCredentials.$SourceName

	if (-not $existingCredentialNode) {
		$existingCredentialNode = $nugetConfig.CreateElement($SourceName)
		$nugetConfig.configuration.packageSourceCredentials.AppendChild($existingCredentialNode) | Out-Null
	}

	$existingCredentialNode.RemoveAll()

	$usernameNode = $nugetConfig.CreateElement("add")
	$usernameNode.SetAttribute("key", "Username")
	$usernameNode.SetAttribute("value", "api-key")
	$existingCredentialNode.AppendChild($usernameNode) | Out-Null

	$passwordNode = $nugetConfig.CreateElement("add")
	$passwordNode.SetAttribute("key", "ClearTextPassword")
	$passwordNode.SetAttribute("value", "%$ApiKeyEnvVarName%")
	$existingCredentialNode.AppendChild($passwordNode) | Out-Null

	$nugetConfig.Save((Resolve-Path $NuGetConfigPath))

	Write-Host "Configured Telerik feed '$SourceName' in '$NuGetConfigPath'."
	Write-Host "Saved API key in user environment variable '$ApiKeyEnvVarName'."
	Write-Host "Restart your terminal/IDE so new processes can read the updated environment variable."
}

Example usage:

Configure-TelerikNuGetSource -ApiKey "<telerik-api-key>"

Changelog

1.1.0 - 2026-03-20

  • Added skill package metadata: required_binaries, author, homepage, and source.
  • Updated configure function to save API key as a user-level environment variable.
  • Updated nuget.config credential handling to use environment variable expansion instead of hardcoded API key values.
  • Added version field to frontmatter.