Skip to content

Take development to master for version 1.6.0 release #558

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 134 commits into from
Jun 7, 2016
Merged

Conversation

kapilmb
Copy link

@kapilmb kapilmb commented Jun 7, 2016

This change is Reviewable

Kapil Borle and others added 30 commits March 23, 2016 11:59
The class does not implement IScriptExtent interface anymore.
The purpose of CorrectionExtent is to emit violation extent
and the correction text but this behaviour is not consistent with
the IScriptExtent interface.
…-sample2

Changed section on Profile support to use Setting instead.
Hashtable keys were compared in case-sensitive manner to lower case valid
keys while adding values to the lists of severity, rule inclusion and rule
exclusion.

This commit also remove the relevant code duplication in ParseProfileHashtable
and ParseProfileString while adding the values to the respective lists.
* Changes the name to AddProfileItem
* Adds input argument validation
Moves the module manifest testing logic to a separate method in the Helper class. This will enable reuse of the functionality by other rules.
Suggest corrections to FunctionsToExport and AliasesToExport when their values are set to '*' or '$null', e.g., FunctionsToExport = '*'. This does not support wildcard in an array, eg @('Set-Foo', 'Get-*').
The new extent includes only the region between the username and password parameters rather than the entire function.
…ramsExtent

Fix extent of AvoidUsernameAndPasswordParams rule
Fixes search logic to find the function name in a function definition.

Prior to the fix, if the function definition started on the first line of a script, the extent would include the entire function definition. This commit fixes that bug.
Whenever Helper.SuppressRule encounters any error, it invokes Cmdlet.WriteError. When running script rules, SuppressRule is called from rule execution threads. As such, Cmdlet.WriteError gets called from the rule execution threads. This results in an InvalidOperationException because this method can be called only from within BeginProcessing, ProcessRecord and EndProcessing and only within the main program thread.
Fix extents of UseSingularNoun and UseApprovedVerbs
Fix invoking WriteError from rule execution threads
Kapil Borle and others added 26 commits May 26, 2016 09:48
The error was caused by Hashtables being cast to DiagnosticRecord arrays. This commit fixes these errors caused when Pester is invoked on CustomizedRule.Tests.ps1

Consider the following example.

$result = [Microsoft.Windows.Powershell.ScriptAnalyzer.Generic.DiagnosticRecord[]]@{"Message"  = "this is help";
                                            "Extent"   = $ast.Extent;
                                            "RuleName" = $PSCmdlet.MyInvocation.InvocationName;
                                            "Severity" = "Warning"}

In PowerShell v4, this gives the following error.

Cannot convert value "System.Collections.Hashtable" to type
"Microsoft.Windows.PowerShell.ScriptAnalyzer.Generic.DiagnosticRecord[]". Error: "Cannot create object of type
"Microsoft.Windows.PowerShell.ScriptAnalyzer.Generic.DiagnosticRecord". "Extent" is a ReadOnly property."
At line:1 char:1
+ $result = [Microsoft.Windows.Powershell.ScriptAnalyzer.Generic.DiagnosticRecord[ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvalidCastExceptionScalarToArray
…rRule

Fix null reference exception in MissingModuleManifestField rule
Loading an external rule module with version errors out on PSv4. But it works on PSv5. So we remove the sample rule with version from the glob pattern by renaming it.
Visual Studio 2015 image runs on Windows Server 2012 R2. Hence, this will help us test ScriptAnalyzer on PowerShell v4
Visual Studio version in the solution file was changed by mistake to 14.0 in commit b82733. This commit reverts the version to 12.0
Fix build and test issues on PowerShell v4
The recommended type has a typo.

The 'wrong' and 'correct' examples are inconsistent and include unnecessary extra parameters which (in my opinion) distract from the point being conveyed. Also fixed up spacing.
Two rules in the CommunityAnalzyerRules module use StaticParameterBinder
class. This class was introduced in PowerShell version 4.0.
Documentation fixes for AvoidUsingPlainTextForPassword.md
Update change log for next version release
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants