First push
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
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
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
---
|
||||
name: configure-telerik-nuget
|
||||
version: 1.1.0
|
||||
description: Helps setup, configure and manage Telerik NuGet feeds in your repo's nuget.config file.
|
||||
required_binaries:
|
||||
- pwsh
|
||||
- dotnet
|
||||
author: Lance McCarthy
|
||||
homepage: https://github.com/DevOpsExamples/.github
|
||||
source: 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.
|
||||
|
||||
```powershell
|
||||
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:
|
||||
|
||||
```powershell
|
||||
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.
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
name: github-actions-failure-debugging
|
||||
description: Guide for debugging failing GitHub Actions workflows. Use this when asked to debug failing GitHub Actions workflows.
|
||||
version: 1.0.0
|
||||
author: Lance McCarthy
|
||||
homepage: https://github.com/DevOpsExamples/.github
|
||||
source: https://github.com/DevOpsExamples/.github/tree/main/skills/github-actions-failure-debugging
|
||||
---
|
||||
|
||||
To debug failing GitHub Actions workflows in a pull request, follow this process, using tools provided from the GitHub MCP Server:
|
||||
|
||||
1. Use the `list_workflow_runs` tool to look up recent workflow runs for the pull request and their status
|
||||
2. Use the `summarize_job_log_failures` tool to get an AI summary of the logs for failed jobs, to understand what went wrong without filling your context windows with thousands of lines of logs
|
||||
3. If you still need more information, use the `get_job_logs` or `get_workflow_run_logs` tool to get the full, detailed failure logs
|
||||
4. Try to reproduce the failure yourself in your own environment.
|
||||
5. Fix the failing build. If you were able to reproduce the failure yourself, make sure it is fixed before committing your changes.ng to use environment variable expansion instead of hardcoded API key values.
|
||||
- Added `version` field to frontmatter.
|
||||
Reference in New Issue
Block a user