PowerShell / PowerShell/PSScriptAnalyzer

Suggestion for new rule - Ensure that variables used in a function is always declared in the local scope

Aberta
#632 3 comentários 1 reação 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Issue - Discussion
Linguagem predominante
C#
Estrelas
2.2k
Forks
414
Merge médio
13h 1min
PRs com merge (30d)
2

Descrição

In order to reduce the number of hard to debug errors, we run our PowerShell scripts with Set-StrictMode -Version Latest. This lets us catch issues where we e.g. have misspelled a variable name (or forgot to assign it before using it) during runtime. But it would be immensely useful to catch these kinds of errors before we run the scripts, e.g. during an automated build.

We have deployment scripts that run for quite a long time (several hours), and silly misspelled variable names or misplaced variable assignments then costs quite a bit of development time. Catching these errors early would be immensely useful.

Example of something that should cause an error:

function Get-Foobar()
{
    if ($b + 2 -gt 5)
    {
        return $b
    }

    return 5
}

This would be OK:

function Get-Foobar($b)
{
    if ($b + 2 -gt 5)
    {
        return $b
    }

    return 5
}

As would this:

function Get-Foobar()
{
    $b = 123;
    if ($b + 2 -gt 5)
    {
        return $b
    }

    return 5
}

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece pelos dois exemplos de PowerShell na issue e inspecione as regras e os testes de analyzer existentes no repositório para determinar onde uma nova regra deve ficar. Defina como parâmetros, atribuições e referências a variáveis devem ser tratados; o trabalho estará concluído quando o exemplo com a variável não declarada for reportado, enquanto ambos os exemplos válidos passarem, com cobertura para o comportamento escolhido.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
powershell
Domínio
devtools
Tipo de issue
Funcionalidade
Dificuldade
5/5
Tempo estimado
Mais de uma semana
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
30/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.