PowerShell / PowerShell/PSScriptAnalyzer
Transient RULE_ERROR
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- C#
- Estrellas
- 2.2k
- Forks
- 414
- Merge medio
- 13 h 1 min
- PR fusionados (30 d)
- 2
Descripción
I wish I could provide more information, but the error is transient and therefore cannot be deterministically reproed.
PowerShell version: 6.2.1
PSScriptAnalyzer version: 1.18.3
OS Version: Ubuntu 1604
PSScriptAnalyzer is failing occasionally with the following error:
Invoke-ScriptAnalyzer : Object reference not set to an instance of an object.
At /source/.build/Assert-ValidStyle.ps1:21 char:11
+ $issues = Invoke-ScriptAnalyzer -Path "$PSScriptRoot\.." -Recurse
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (/source/.build/powershell-helpers.psm1:String) [Invoke-ScriptAnalyzer], NullReferenceException
+ FullyQualifiedErrorId : RULE_ERROR,Microsoft.Windows.PowerShell.ScriptAnalyzer.Commands.InvokeScriptAnalyzerCommand
Contents of powershell-helpers.psm1:
# execute a command block and display stderr output without throwing powershell exceptions
# Taken from https://mnaoumov.wordpress.com/2015/01/11/execution-of-external-commands-in-powershell-done-right
function Invoke-Script {
[CmdletBinding()]
[Alias('exec')]
param
(
[ScriptBlock] $ScriptBlock,
[string] $StderrPrefix = "",
[int[]] $AllowedExitCodes = @(0)
)
$backupErrorActionPreference = $script:ErrorActionPreference
$script:ErrorActionPreference = "Continue"
try {
& $ScriptBlock *>&1 | ForEach-Object -Process `
{
if ($_ -is [System.Management.Automation.ErrorRecord]) {
"$StderrPrefix$_"
}
else {
"$_"
}
}
if ($AllowedExitCodes -notcontains $LASTEXITCODE) {
throw "Execution failed with exit code $LASTEXITCODE"
}
}
finally {
$script:ErrorActionPreference = $backupErrorActionPreference
}
}
function Get-File {
param(
[string]$Uri,
[string]$Path,
[string]$Hash
)
New-Item -ItemType Directory -Path (Split-Path $path -Parent) -Force | Out-Null
Invoke-WebRequest -Uri $uri -OutFile $path
$actual = Get-FileHash -Path $path -Algorithm SHA256 | Select-Object -ExpandProperty Hash
if ($actual -ne $hash) {
throw "File $path with hash $actual doesn't match expected hash $hash"
}
}
function Invoke-InDirectory {
Param(
[ValidateScript( { Test-Path $_ -PathType Container } )]
[string]$Path,
[ValidateNotNullOrEmpty()]
[scriptblock]$ScriptBlock
)
Push-Location $Path
try {
&$ScriptBlock
}
finally {
Pop-Location
}
}
Export-ModuleMember -Alias * -Function *
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con .build/Assert-ValidStyle.ps1 y la llamada a Invoke-ScriptAnalyzer; después, inspecciona powershell-helpers.psm1 y el contexto de RULE_ERROR informado. Intenta ejecutar el comando contra el repositorio con PowerShell 6.2.1 y PSScriptAnalyzer 1.18.3; se considera completado cuando se haya identificado y prevenido el fallo intermitente de referencia nula.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- powershell
- Área
- devtools
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Tranquilo
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 35/100