From 4ae65f0e1bfd2ce68f4d8cf57f4c87d5a7c13d50 Mon Sep 17 00:00:00 2001 From: Gary Ewan Park Date: Mon, 31 Aug 2020 14:05:17 -0700 Subject: [PATCH] (GH-285) Stylecop and editorconfig all the things --- .editorconfig | 151 +++++++--- .vscode/settings.json | 6 +- src/.editorconfig | 276 ++++++------------ src/Directory.Build.props | 4 +- .../GitReleaseManager.Cli.csproj | 1 + .../GlobalSuppressions.cs | 1 - src/GitReleaseManager.Cli/Program.cs | 4 +- .../Commands/AddAssetsCommandTests.cs | 18 +- .../Commands/CloseCommandTests.cs | 16 +- .../Commands/CreateCommandTests.cs | 20 +- .../Commands/DiscardCommandTests.cs | 16 +- .../Commands/ExportCommandTests.cs | 18 +- .../Commands/InitCommandTests.cs | 20 +- .../Commands/LabelCommandTests.cs | 16 +- .../Commands/OpenCommandTests.cs | 16 +- .../Commands/PublishCommandTests.cs | 16 +- .../Commands/ShowConfigCommandTests.cs | 18 +- .../EnsureTests.cs | 10 +- .../GitReleaseManager.Core.Tests.csproj | 7 +- .../Provider/GitHubProviderTests.cs | 54 ++-- .../VcsServiceTests.cs | 42 +-- .../Commands/AddAssetsCommand.cs | 8 +- .../Commands/CloseCommand.cs | 8 +- .../Commands/CreateCommand.cs | 10 +- .../Commands/DiscardCommand.cs | 8 +- .../Commands/ExportCommand.cs | 10 +- .../Commands/ICommand.cs | 6 +- .../Commands/InitCommand.cs | 14 +- .../Commands/LabelCommand.cs | 8 +- .../Commands/OpenCommand.cs | 8 +- .../Commands/PublishCommand.cs | 8 +- .../Commands/ShowConfigCommand.cs | 14 +- src/GitReleaseManager.Core/Ensure.cs | 6 +- .../Exceptions/ApiException.cs | 6 +- .../Exceptions/ForbiddenException.cs | 6 +- .../Exceptions/NotFoundException.cs | 6 +- .../GitReleaseManager.Core.csproj | 1 + .../Model/IssueComment.cs | 4 +- src/GitReleaseManager.Core/Model/ItemState.cs | 2 +- .../Model/ItemStateFilter.cs | 2 +- src/GitReleaseManager.Core/Model/Label.cs | 6 +- src/GitReleaseManager.Core/Model/RateLimit.cs | 10 +- .../Model/ReleaseAssetUpload.cs | 4 +- .../Options/BaseVcsSubOptions.cs | 2 +- .../Options/DiscardSubOptions.cs | 2 +- .../Provider/GitHubProvider.cs | 40 +-- .../Provider/IVcsProvider.cs | 8 +- .../ReleaseNotes/IReleaseNotesBuilder.cs | 4 +- .../ReleaseNotes/IReleaseNotesExporter.cs | 6 +- .../GitHubProviderIntegrationTests.cs | 27 +- .../GitReleaseManager.IntegrationTests.csproj | 7 +- .../GitReleaseManager.Tests.csproj | 5 +- .../ReleaseNotesBuilderTests.cs | 7 +- .../GitReleaseManager.Tool.csproj | 1 + src/GitReleaseManager.ruleset | 27 -- src/GitReleaseManager.sln | 3 + src/GlobalSuppressions.cs | 10 + src/stylecop.json | 21 +- 58 files changed, 517 insertions(+), 538 deletions(-) delete mode 100644 src/GitReleaseManager.ruleset create mode 100644 src/GlobalSuppressions.cs diff --git a/.editorconfig b/.editorconfig index 407b825f..3ee2668e 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,41 +1,110 @@ -; This file is for unifying the coding style for different editors and IDEs. -; More information at http://EditorConfig.org - -root = true - -[*] -charset = utf-8 # Just for consistency -# Indentation and spacing -indent_size = 4 -indent_style = space -tab_width = 4 - -# New line preferences -end_of_line = crlf -insert_final_newline = false -trim_trailing_whitespace = true - -[*.sh] -end_of_line = lf - -[*.sln] -# Visual studio defaults -insert_final_newline = true -indent_style = tab - -[*.md] -trim_trailing_whitespace = false -insert_final_newline = true # Conflicts with markdownlint when false -indent_size = 2 # Incorrect indentation happens when this is not 2 - -[*.{yml,yaml}] -indent_size = 2 # Incorrect indentation happens when this is not 2 - -[*.ps1] -charset = utf-8-bom -indent_style = space -indent_size = 2 - -[*.js] -indent_style = tab -indent_size = 2 \ No newline at end of file +root = false + +[*.cs] +# IDE0055: Fix formatting +dotnet_diagnostic.IDE0055.severity = warning + +# SA1101: Prefix local calls with this +dotnet_diagnostic.SA1101.severity = none + +# SA1633: File should have header +dotnet_diagnostic.SA1633.severity = none + +# SA1200: Using directive should appear within a namespace declaration +dotnet_diagnostic.SA1200.severity = error + +# SA1201: Elements should appear in the correct order +dotnet_diagnostic.SA1201.severity = none + +# SA1202: Public members should come before private members +dotnet_diagnostic.SA1202.severity = none + +# SA1210: Using directives should be ordered alphabetically by the namespaces +dotnet_diagnostic.SA1210.severity = error + +# SA1309: Field names should not begin with underscore +dotnet_diagnostic.SA1309.severity = none + +# SA1310: Field names should not contain an underscore +dotnet_diagnostic.SA1310.severity = none + +# SA1404: Code analysis suppressions should have justification +dotnet_diagnostic.SA1404.severity = none + +# SA1507: Code should not contain multiple blank lines in a row +dotnet_diagnostic.SA1507.severity = error + +# SA1516: Elements should be separated by a blank line +dotnet_diagnostic.SA1516.severity = none + +# CA1303: Do not pass literals as localized parameters +dotnet_diagnostic.CA1303.severity = none + +# CSA1204: Static members should appear before non-static members +dotnet_diagnostic.SA1204.severity = none + +#SA1413: Use trailing comma in multi-line initializers +dotnet_diagnostic.SA1413.severity = error + +# IDE0052: Remove unread private members +dotnet_diagnostic.IDE0052.severity = warning + +# IDE0063: Use simple 'using' statement +csharp_prefer_simple_using_statement = false:suggestion + +# IDE0018: Variable declaration can be inlined +dotnet_diagnostic.IDE0018.severity = warning + +# SA1623: The property's documentation summary text should begin with: 'Gets or sets' +dotnet_diagnostic.SA1623.severity = warning + +# SA1625: Element documenation should not be copied and pasted +dotnet_diagnostic.SA1625.severity = none + +# IDE0005: Using directive is unnecessary +dotnet_diagnostic.IDE0005.severity = warning + +# SA1117: Parameters should be on same line or separate lines +dotnet_diagnostic.SA1117.severity = none + +# SA1122: Use string.Empty for empty strings +dotnet_diagnostic.SA1122.severity = error + +# SA1404: Code analysis suppression should have justification +dotnet_diagnostic.SA1404.severity = none + +# SA1101: Prefix local calls with this +dotnet_diagnostic.SA1101.severity = none + +# SA1633: File should have header +dotnet_diagnostic.SA1633.severity = none + +# SA1638: File header file name documentation should match file name +dotnet_diagnostic.SA1638.severity = error + +# SA1649: File name should match first type name +dotnet_diagnostic.SA1649.severity = none + +# SA1402: File may only contain a single type +dotnet_diagnostic.SA1402.severity = none + +# CA1814: Prefer jagged arrays over multidimensional +dotnet_diagnostic.CA1814.severity = none + +# RCS1194: Implement exception constructors. +dotnet_diagnostic.RCS1194.severity = none + +# CA1032: Implement standard exception constructors +dotnet_diagnostic.CA1032.severity = none + +# CA1826: Do not use Enumerable methods on indexable collections. Instead use the collection directly +dotnet_diagnostic.CA1826.severity = none + +# RCS1079: Throwing of new NotImplementedException. +dotnet_diagnostic.RCS1079.severity = warning + +# RCS1057: Add empty line between declarations. +dotnet_diagnostic.RCS1057.severity = none + +# IDE0004: Remove Unnecessary Cast +dotnet_diagnostic.IDE0004.severity = warning \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 63837142..19655ed8 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,13 +1,17 @@ { "editor.rulers": [80], "cSpell.words": [ + "Usings", "addasset", "buildartifacts", "choco", "gitreleasemanager", "nupkg", "psake", + "readonly", "releasenotes", "showconfig" - ] + ], + "omnisharp.enableEditorConfigSupport": true, + "omnisharp.enableRoslynAnalyzers": true } \ No newline at end of file diff --git a/src/.editorconfig b/src/.editorconfig index 1edc9f8c..c7304ba3 100644 --- a/src/.editorconfig +++ b/src/.editorconfig @@ -1,194 +1,86 @@ -# C# files +root = false + [*.cs] +# IDE0055: Fix formatting +dotnet_diagnostic.IDE0055.severity = warning + +# SA1101: Prefix local calls with this +dotnet_diagnostic.SA1101.severity = none + +# SA1633: File should have header +dotnet_diagnostic.SA1633.severity = none + +# SA1201: Elements should appear in the correct order +dotnet_diagnostic.SA1201.severity = none + +# SA1202: Public members should come before private members +dotnet_diagnostic.SA1202.severity = none + +# SA1309: Field names should not begin with underscore +dotnet_diagnostic.SA1309.severity = none + +# SA1404: Code analysis suppressions should have justification +dotnet_diagnostic.SA1404.severity = none + +# SA1516: Elements should be separated by a blank line +dotnet_diagnostic.SA1516.severity = none + +# CA1303: Do not pass literals as localized parameters +dotnet_diagnostic.CA1303.severity = none + +# CSA1204: Static members should appear before non-static members +dotnet_diagnostic.SA1204.severity = none + +# IDE0052: Remove unread private members +dotnet_diagnostic.IDE0052.severity = warning + +# IDE0063: Use simple 'using' statement +csharp_prefer_simple_using_statement = false:suggestion + +# IDE0018: Variable declaration can be inlined +dotnet_diagnostic.IDE0018.severity = warning + +# SA1625: Element documenation should not be copied and pasted +dotnet_diagnostic.SA1625.severity = none + +# IDE0005: Using directive is unnecessary +dotnet_diagnostic.IDE0005.severity = warning + +# SA1117: Parameters should be on same line or separate lines +dotnet_diagnostic.SA1117.severity = none + +# SA1404: Code analysis suppression should have justification +dotnet_diagnostic.SA1404.severity = none + +# SA1101: Prefix local calls with this +dotnet_diagnostic.SA1101.severity = none + +# SA1633: File should have header +dotnet_diagnostic.SA1633.severity = none + +# SA1649: File name should match first type name +dotnet_diagnostic.SA1649.severity = none + +# SA1402: File may only contain a single type +dotnet_diagnostic.SA1402.severity = none + +# CA1814: Prefer jagged arrays over multidimensional +dotnet_diagnostic.CA1814.severity = none + +# RCS1194: Implement exception constructors. +dotnet_diagnostic.RCS1194.severity = none + +# CA1032: Implement standard exception constructors +dotnet_diagnostic.CA1032.severity = none + +# CA1826: Do not use Enumerable methods on indexable collections. Instead use the collection directly +dotnet_diagnostic.CA1826.severity = none + +# RCS1079: Throwing of new NotImplementedException. +dotnet_diagnostic.RCS1079.severity = warning + +# RCS1057: Add empty line between declarations. +dotnet_diagnostic.RCS1057.severity = none -#### Core EditorConfig Options #### - -#### .NET Coding Conventions #### - -# Organize usings -dotnet_separate_import_directive_groups = false -dotnet_sort_system_directives_first = true - -# this. and Me. preferences -dotnet_style_qualification_for_event = false:silent -dotnet_style_qualification_for_field = false:silent -dotnet_style_qualification_for_method = false:silent -dotnet_style_qualification_for_property = false:error - -# Language keywords vs BCL types preferences -dotnet_style_predefined_type_for_locals_parameters_members = true:silent -dotnet_style_predefined_type_for_member_access = true:silent - -# Parentheses preferences -dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent -dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent -dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent -dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent - -# Modifier preferences -dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent - -# Expression-level preferences -csharp_style_deconstructed_variable_declaration = true:suggestion -csharp_style_inlined_variable_declaration = true:suggestion -csharp_style_throw_expression = true:suggestion -dotnet_style_coalesce_expression = true:suggestion -dotnet_style_collection_initializer = true:suggestion -dotnet_style_explicit_tuple_names = true:suggestion -dotnet_style_null_propagation = true:suggestion -dotnet_style_object_initializer = true:suggestion -dotnet_style_prefer_auto_properties = true:silent -dotnet_style_prefer_compound_assignment = true:suggestion -dotnet_style_prefer_conditional_expression_over_assignment = true:silent -dotnet_style_prefer_conditional_expression_over_return = true:silent -dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion -dotnet_style_prefer_inferred_tuple_names = true:suggestion -dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion - -# Field preferences -dotnet_style_readonly_field = true:suggestion - -# Parameter preferences -dotnet_code_quality_unused_parameters = all:suggestion - -#### C# Coding Conventions #### - -# var preferences -csharp_style_var_elsewhere = false:silent -csharp_style_var_for_built_in_types = false:silent -csharp_style_var_when_type_is_apparent = false:silent - -# Expression-bodied members -csharp_style_expression_bodied_accessors = true:silent -csharp_style_expression_bodied_constructors = false:silent -csharp_style_expression_bodied_indexers = true:silent -csharp_style_expression_bodied_lambdas = true:silent -csharp_style_expression_bodied_local_functions = false:silent -csharp_style_expression_bodied_methods = false:silent -csharp_style_expression_bodied_operators = false:silent -csharp_style_expression_bodied_properties = true:silent - -# Pattern matching preferences -csharp_style_pattern_matching_over_as_with_null_check = true:suggestion -csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion -csharp_style_prefer_switch_expression = true:suggestion - -# Null-checking preferences -csharp_style_conditional_delegate_call = true:suggestion - -# Modifier preferences -csharp_prefer_static_local_function = true:suggestion -csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async - -# Code-block preferences -csharp_prefer_braces = true:silent -csharp_prefer_simple_using_statement = true:silent - -# Expression-level preferences -csharp_prefer_simple_default_expression = true:suggestion -csharp_style_pattern_local_over_anonymous_function = true:suggestion -csharp_style_prefer_index_operator = true:suggestion -csharp_style_prefer_range_operator = true:suggestion -csharp_style_unused_value_assignment_preference = discard_variable:suggestion -csharp_style_unused_value_expression_statement_preference = discard_variable:silent - -# 'using' directive preferences -csharp_using_directive_placement = outside_namespace:silent - -#### C# Formatting Rules #### - -# New line preferences -csharp_new_line_before_catch = true -csharp_new_line_before_else = true -csharp_new_line_before_finally = true -csharp_new_line_before_members_in_anonymous_types = true -csharp_new_line_before_members_in_object_initializers = true -csharp_new_line_before_open_brace = all -csharp_new_line_between_query_expression_clauses = true - -# Indentation preferences -csharp_indent_block_contents = true -csharp_indent_braces = false -csharp_indent_case_contents = true -csharp_indent_case_contents_when_block = true -csharp_indent_labels = one_less_than_current -csharp_indent_switch_labels = true - -# Space preferences -csharp_space_after_cast = false -csharp_space_after_colon_in_inheritance_clause = true -csharp_space_after_comma = true -csharp_space_after_dot = false -csharp_space_after_keywords_in_control_flow_statements = true -csharp_space_after_semicolon_in_for_statement = true -csharp_space_around_binary_operators = before_and_after -csharp_space_around_declaration_statements = false -csharp_space_before_colon_in_inheritance_clause = true -csharp_space_before_comma = false -csharp_space_before_dot = false -csharp_space_before_open_square_brackets = false -csharp_space_before_semicolon_in_for_statement = false -csharp_space_between_empty_square_brackets = false -csharp_space_between_method_call_empty_parameter_list_parentheses = false -csharp_space_between_method_call_name_and_opening_parenthesis = false -csharp_space_between_method_call_parameter_list_parentheses = false -csharp_space_between_method_declaration_empty_parameter_list_parentheses = false -csharp_space_between_method_declaration_name_and_open_parenthesis = false -csharp_space_between_method_declaration_parameter_list_parentheses = false -csharp_space_between_parentheses = false -csharp_space_between_square_brackets = false - -# Wrapping preferences -csharp_preserve_single_line_blocks = true -csharp_preserve_single_line_statements = true - -#### Naming styles #### - -# Naming rules - -dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion -dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface -dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i - -dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion -dotnet_naming_rule.types_should_be_pascal_case.symbols = types -dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case - -dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion -dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members -dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case - -# Symbol specifications - -dotnet_naming_symbols.interface.applicable_kinds = interface -dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected -dotnet_naming_symbols.interface.required_modifiers = - -dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum -dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected -dotnet_naming_symbols.types.required_modifiers = - -dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method -dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected -dotnet_naming_symbols.non_field_members.required_modifiers = - -# Naming styles - -dotnet_naming_style.pascal_case.required_prefix = -dotnet_naming_style.pascal_case.required_suffix = -dotnet_naming_style.pascal_case.word_separator = -dotnet_naming_style.pascal_case.capitalization = pascal_case - -dotnet_naming_style.begins_with_i.required_prefix = I -dotnet_naming_style.begins_with_i.required_suffix = -dotnet_naming_style.begins_with_i.word_separator = -dotnet_naming_style.begins_with_i.capitalization = pascal_case - -# CA1305: Specify IFormatProvider -dotnet_diagnostic.CA1305.severity = none - -# CA1031: Do not catch general exception types -dotnet_diagnostic.CA1031.severity = silent - -# CA1707: Identifiers should not contain underscores -dotnet_diagnostic.CA1707.severity = silent \ No newline at end of file +# IDE0004: Remove Unnecessary Cast +dotnet_diagnostic.IDE0004.severity = warning \ No newline at end of file diff --git a/src/Directory.Build.props b/src/Directory.Build.props index d22699b8..59fef33d 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,6 +1,5 @@ - $(MSBuildThisFileDirectory)\GitReleaseManager.ruleset pdbonly true CS1591 @@ -23,5 +22,8 @@ runtime; build; native; contentfiles; analyzers; buildtransitive all + + All + \ No newline at end of file diff --git a/src/GitReleaseManager.Cli/GitReleaseManager.Cli.csproj b/src/GitReleaseManager.Cli/GitReleaseManager.Cli.csproj index d8ed82d3..496b8747 100644 --- a/src/GitReleaseManager.Cli/GitReleaseManager.Cli.csproj +++ b/src/GitReleaseManager.Cli/GitReleaseManager.Cli.csproj @@ -7,6 +7,7 @@ GitReleaseManager.Cli Create release notes in markdown given a milestone false + $(NoWarn);CA1707; diff --git a/src/GitReleaseManager.Cli/GlobalSuppressions.cs b/src/GitReleaseManager.Cli/GlobalSuppressions.cs index abe2d6ef..6c0044e0 100644 --- a/src/GitReleaseManager.Cli/GlobalSuppressions.cs +++ b/src/GitReleaseManager.Cli/GlobalSuppressions.cs @@ -13,5 +13,4 @@ // Code Analysis results, point to "Suppress Message", and click // "In Suppression File". // You do not need to add suppressions to this file manually. - [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Wrong Usage", "DF0037:Marks undisposed objects assinged to a property, originated from a method invocation.", Justification = "Cleanup happens at the end of the application.", Scope = "member", Target = "~M:GitReleaseManager.Cli.Program.ConfigureLogging(GitReleaseManager.Cli.Options.BaseSubOptions)")] \ No newline at end of file diff --git a/src/GitReleaseManager.Cli/Program.cs b/src/GitReleaseManager.Cli/Program.cs index b6eb6c16..239d0f22 100644 --- a/src/GitReleaseManager.Cli/Program.cs +++ b/src/GitReleaseManager.Cli/Program.cs @@ -130,9 +130,9 @@ private static void CreateFiglet(BaseSubOptions options) } var version = Assembly.GetEntryAssembly().GetCustomAttribute().InformationalVersion; - if (version.IndexOf('+') >= 0) + if (version.Contains("+", StringComparison.Ordinal)) { - version = version.Substring(0, version.IndexOf('+')); + version = version.Substring(0, version.IndexOf("+", StringComparison.Ordinal)); } // The following ugly formats is to prevent incorrect indentation diff --git a/src/GitReleaseManager.Core.Tests/Commands/AddAssetsCommandTests.cs b/src/GitReleaseManager.Core.Tests/Commands/AddAssetsCommandTests.cs index f3b0cc62..2838d5f7 100644 --- a/src/GitReleaseManager.Core.Tests/Commands/AddAssetsCommandTests.cs +++ b/src/GitReleaseManager.Core.Tests/Commands/AddAssetsCommandTests.cs @@ -4,17 +4,17 @@ // // ----------------------------------------------------------------------- -using System.Collections.Generic; -using System.Threading.Tasks; -using GitReleaseManager.Core.Commands; -using GitReleaseManager.Core.Options; -using NSubstitute; -using NUnit.Framework; -using Serilog; -using Shouldly; - namespace GitReleaseManager.Core.Tests.Commands { + using System.Collections.Generic; + using System.Threading.Tasks; + using GitReleaseManager.Core.Commands; + using GitReleaseManager.Core.Options; + using NSubstitute; + using NUnit.Framework; + using Serilog; + using Shouldly; + [TestFixture] public class AddAssetsCommandTests { diff --git a/src/GitReleaseManager.Core.Tests/Commands/CloseCommandTests.cs b/src/GitReleaseManager.Core.Tests/Commands/CloseCommandTests.cs index d8a28f44..6812ea44 100644 --- a/src/GitReleaseManager.Core.Tests/Commands/CloseCommandTests.cs +++ b/src/GitReleaseManager.Core.Tests/Commands/CloseCommandTests.cs @@ -4,16 +4,16 @@ // // ----------------------------------------------------------------------- -using System.Threading.Tasks; -using GitReleaseManager.Core.Commands; -using GitReleaseManager.Core.Options; -using NSubstitute; -using NUnit.Framework; -using Serilog; -using Shouldly; - namespace GitReleaseManager.Core.Tests.Commands { + using System.Threading.Tasks; + using GitReleaseManager.Core.Commands; + using GitReleaseManager.Core.Options; + using NSubstitute; + using NUnit.Framework; + using Serilog; + using Shouldly; + [TestFixture] public class CloseCommandTests { diff --git a/src/GitReleaseManager.Core.Tests/Commands/CreateCommandTests.cs b/src/GitReleaseManager.Core.Tests/Commands/CreateCommandTests.cs index 2e7ae476..8029b764 100644 --- a/src/GitReleaseManager.Core.Tests/Commands/CreateCommandTests.cs +++ b/src/GitReleaseManager.Core.Tests/Commands/CreateCommandTests.cs @@ -4,18 +4,18 @@ // // ----------------------------------------------------------------------- -using System.Collections.Generic; -using System.Threading.Tasks; -using GitReleaseManager.Core.Commands; -using GitReleaseManager.Core.Model; -using GitReleaseManager.Core.Options; -using NSubstitute; -using NUnit.Framework; -using Serilog; -using Shouldly; - namespace GitReleaseManager.Core.Tests.Commands { + using System.Collections.Generic; + using System.Threading.Tasks; + using GitReleaseManager.Core.Commands; + using GitReleaseManager.Core.Model; + using GitReleaseManager.Core.Options; + using NSubstitute; + using NUnit.Framework; + using Serilog; + using Shouldly; + [TestFixture] public class CreateCommandTests { diff --git a/src/GitReleaseManager.Core.Tests/Commands/DiscardCommandTests.cs b/src/GitReleaseManager.Core.Tests/Commands/DiscardCommandTests.cs index c0e0aa88..55af356d 100644 --- a/src/GitReleaseManager.Core.Tests/Commands/DiscardCommandTests.cs +++ b/src/GitReleaseManager.Core.Tests/Commands/DiscardCommandTests.cs @@ -4,16 +4,16 @@ // // ----------------------------------------------------------------------- -using System.Threading.Tasks; -using GitReleaseManager.Core.Commands; -using GitReleaseManager.Core.Options; -using NSubstitute; -using NUnit.Framework; -using Serilog; -using Shouldly; - namespace GitReleaseManager.Core.Tests.Commands { + using System.Threading.Tasks; + using GitReleaseManager.Core.Commands; + using GitReleaseManager.Core.Options; + using NSubstitute; + using NUnit.Framework; + using Serilog; + using Shouldly; + [TestFixture] public class DiscardCommandTests { diff --git a/src/GitReleaseManager.Core.Tests/Commands/ExportCommandTests.cs b/src/GitReleaseManager.Core.Tests/Commands/ExportCommandTests.cs index fc8988b3..bd59a626 100644 --- a/src/GitReleaseManager.Core.Tests/Commands/ExportCommandTests.cs +++ b/src/GitReleaseManager.Core.Tests/Commands/ExportCommandTests.cs @@ -4,17 +4,17 @@ // // ----------------------------------------------------------------------- -using System.IO; -using System.Threading.Tasks; -using GitReleaseManager.Core.Commands; -using GitReleaseManager.Core.Options; -using NSubstitute; -using NUnit.Framework; -using Serilog; -using Shouldly; - namespace GitReleaseManager.Core.Tests.Commands { + using System.IO; + using System.Threading.Tasks; + using GitReleaseManager.Core.Commands; + using GitReleaseManager.Core.Options; + using NSubstitute; + using NUnit.Framework; + using Serilog; + using Shouldly; + [TestFixture] public class ExportCommandTests { diff --git a/src/GitReleaseManager.Core.Tests/Commands/InitCommandTests.cs b/src/GitReleaseManager.Core.Tests/Commands/InitCommandTests.cs index 4e8fcac1..58591f66 100644 --- a/src/GitReleaseManager.Core.Tests/Commands/InitCommandTests.cs +++ b/src/GitReleaseManager.Core.Tests/Commands/InitCommandTests.cs @@ -4,18 +4,18 @@ // // ----------------------------------------------------------------------- -using System.IO; -using System.Threading.Tasks; -using GitReleaseManager.Core.Commands; -using GitReleaseManager.Core.Helpers; -using GitReleaseManager.Core.Options; -using NSubstitute; -using NUnit.Framework; -using Serilog; -using Shouldly; - namespace GitReleaseManager.Core.Tests.Commands { + using System.IO; + using System.Threading.Tasks; + using GitReleaseManager.Core.Commands; + using GitReleaseManager.Core.Helpers; + using GitReleaseManager.Core.Options; + using NSubstitute; + using NUnit.Framework; + using Serilog; + using Shouldly; + [TestFixture] public class InitCommandTests { diff --git a/src/GitReleaseManager.Core.Tests/Commands/LabelCommandTests.cs b/src/GitReleaseManager.Core.Tests/Commands/LabelCommandTests.cs index f1f13a4a..eae7ac5a 100644 --- a/src/GitReleaseManager.Core.Tests/Commands/LabelCommandTests.cs +++ b/src/GitReleaseManager.Core.Tests/Commands/LabelCommandTests.cs @@ -4,16 +4,16 @@ // // ----------------------------------------------------------------------- -using System.Threading.Tasks; -using GitReleaseManager.Core.Commands; -using GitReleaseManager.Core.Options; -using NSubstitute; -using NUnit.Framework; -using Serilog; -using Shouldly; - namespace GitReleaseManager.Core.Tests.Commands { + using System.Threading.Tasks; + using GitReleaseManager.Core.Commands; + using GitReleaseManager.Core.Options; + using NSubstitute; + using NUnit.Framework; + using Serilog; + using Shouldly; + [TestFixture] public class LabelCommandTests { diff --git a/src/GitReleaseManager.Core.Tests/Commands/OpenCommandTests.cs b/src/GitReleaseManager.Core.Tests/Commands/OpenCommandTests.cs index c9b660c7..e6161307 100644 --- a/src/GitReleaseManager.Core.Tests/Commands/OpenCommandTests.cs +++ b/src/GitReleaseManager.Core.Tests/Commands/OpenCommandTests.cs @@ -4,16 +4,16 @@ // // ----------------------------------------------------------------------- -using System.Threading.Tasks; -using GitReleaseManager.Core.Commands; -using GitReleaseManager.Core.Options; -using NSubstitute; -using NUnit.Framework; -using Serilog; -using Shouldly; - namespace GitReleaseManager.Core.Tests.Commands { + using System.Threading.Tasks; + using GitReleaseManager.Core.Commands; + using GitReleaseManager.Core.Options; + using NSubstitute; + using NUnit.Framework; + using Serilog; + using Shouldly; + [TestFixture] public class OpenCommandTests { diff --git a/src/GitReleaseManager.Core.Tests/Commands/PublishCommandTests.cs b/src/GitReleaseManager.Core.Tests/Commands/PublishCommandTests.cs index 5a585a36..be6563d7 100644 --- a/src/GitReleaseManager.Core.Tests/Commands/PublishCommandTests.cs +++ b/src/GitReleaseManager.Core.Tests/Commands/PublishCommandTests.cs @@ -4,16 +4,16 @@ // // ----------------------------------------------------------------------- -using System.Threading.Tasks; -using GitReleaseManager.Core.Commands; -using GitReleaseManager.Core.Options; -using NSubstitute; -using NUnit.Framework; -using Serilog; -using Shouldly; - namespace GitReleaseManager.Core.Tests.Commands { + using System.Threading.Tasks; + using GitReleaseManager.Core.Commands; + using GitReleaseManager.Core.Options; + using NSubstitute; + using NUnit.Framework; + using Serilog; + using Shouldly; + [TestFixture] public class PublishCommandTests { diff --git a/src/GitReleaseManager.Core.Tests/Commands/ShowConfigCommandTests.cs b/src/GitReleaseManager.Core.Tests/Commands/ShowConfigCommandTests.cs index dd9bc627..7d0ad081 100644 --- a/src/GitReleaseManager.Core.Tests/Commands/ShowConfigCommandTests.cs +++ b/src/GitReleaseManager.Core.Tests/Commands/ShowConfigCommandTests.cs @@ -4,17 +4,17 @@ // // ----------------------------------------------------------------------- -using System.Threading.Tasks; -using GitReleaseManager.Core.Commands; -using GitReleaseManager.Core.Helpers; -using GitReleaseManager.Core.Options; -using NSubstitute; -using NUnit.Framework; -using Serilog; -using Shouldly; - namespace GitReleaseManager.Core.Tests.Commands { + using System.Threading.Tasks; + using GitReleaseManager.Core.Commands; + using GitReleaseManager.Core.Helpers; + using GitReleaseManager.Core.Options; + using NSubstitute; + using NUnit.Framework; + using Serilog; + using Shouldly; + [TestFixture] public class ShowConfigCommandTests { diff --git a/src/GitReleaseManager.Core.Tests/EnsureTests.cs b/src/GitReleaseManager.Core.Tests/EnsureTests.cs index 87963e90..38ee9e9f 100644 --- a/src/GitReleaseManager.Core.Tests/EnsureTests.cs +++ b/src/GitReleaseManager.Core.Tests/EnsureTests.cs @@ -4,13 +4,13 @@ // // ----------------------------------------------------------------------- -using System; -using System.IO; -using NUnit.Framework; -using Shouldly; - namespace GitReleaseManager.Core.Tests { + using System; + using System.IO; + using NUnit.Framework; + using Shouldly; + [TestFixture] public class EnsureTests { diff --git a/src/GitReleaseManager.Core.Tests/GitReleaseManager.Core.Tests.csproj b/src/GitReleaseManager.Core.Tests/GitReleaseManager.Core.Tests.csproj index 3dde0329..a847feb7 100644 --- a/src/GitReleaseManager.Core.Tests/GitReleaseManager.Core.Tests.csproj +++ b/src/GitReleaseManager.Core.Tests/GitReleaseManager.Core.Tests.csproj @@ -1,11 +1,14 @@ - + 8.0 net472;netcoreapp2.2 GitReleaseManager.Core.Tests Test Project for GitReleaseManager.Core - $(NoWarn);CA1707 + $(NoWarn);CA1707;Serilog004; + + + diff --git a/src/GitReleaseManager.Core.Tests/Provider/GitHubProviderTests.cs b/src/GitReleaseManager.Core.Tests/Provider/GitHubProviderTests.cs index fb7cb093..4a296f9f 100644 --- a/src/GitReleaseManager.Core.Tests/Provider/GitHubProviderTests.cs +++ b/src/GitReleaseManager.Core.Tests/Provider/GitHubProviderTests.cs @@ -4,32 +4,32 @@ // // ----------------------------------------------------------------------- -using System; -using System.Collections; -using System.Collections.Generic; -using System.Net; -using System.Threading.Tasks; -using AutoMapper; -using GitReleaseManager.Core.Provider; -using NSubstitute; -using NSubstitute.ExceptionExtensions; -using NUnit.Framework; -using Octokit; -using Shouldly; -using ApiException = GitReleaseManager.Core.Exceptions.ApiException; -using Issue = GitReleaseManager.Core.Model.Issue; -using IssueComment = GitReleaseManager.Core.Model.IssueComment; -using ItemState = GitReleaseManager.Core.Model.ItemState; -using ItemStateFilter = GitReleaseManager.Core.Model.ItemStateFilter; -using Label = GitReleaseManager.Core.Model.Label; -using Milestone = GitReleaseManager.Core.Model.Milestone; -using NotFoundException = GitReleaseManager.Core.Exceptions.NotFoundException; -using RateLimit = GitReleaseManager.Core.Model.RateLimit; -using Release = GitReleaseManager.Core.Model.Release; -using ReleaseAssetUpload = GitReleaseManager.Core.Model.ReleaseAssetUpload; - namespace GitReleaseManager.Core.Tests.Provider { + using System; + using System.Collections; + using System.Collections.Generic; + using System.Net; + using System.Threading.Tasks; + using AutoMapper; + using GitReleaseManager.Core.Provider; + using NSubstitute; + using NSubstitute.ExceptionExtensions; + using NUnit.Framework; + using Octokit; + using Shouldly; + using ApiException = GitReleaseManager.Core.Exceptions.ApiException; + using Issue = GitReleaseManager.Core.Model.Issue; + using IssueComment = GitReleaseManager.Core.Model.IssueComment; + using ItemState = GitReleaseManager.Core.Model.ItemState; + using ItemStateFilter = GitReleaseManager.Core.Model.ItemStateFilter; + using Label = GitReleaseManager.Core.Model.Label; + using Milestone = GitReleaseManager.Core.Model.Milestone; + using NotFoundException = GitReleaseManager.Core.Exceptions.NotFoundException; + using RateLimit = GitReleaseManager.Core.Model.RateLimit; + using Release = GitReleaseManager.Core.Model.Release; + using ReleaseAssetUpload = GitReleaseManager.Core.Model.ReleaseAssetUpload; + [TestFixture] public class GitHubProviderTests { @@ -216,15 +216,15 @@ public static IEnumerable GetCommitsUrl_TestCases() var typeArgumentNullException = typeof(ArgumentNullException); yield return new TestCaseData(null, null, null, "owner", typeArgumentNullException); - yield return new TestCaseData("", null, null, "owner", typeArgumentException); + yield return new TestCaseData(string.Empty, null, null, "owner", typeArgumentException); yield return new TestCaseData(" ", null, null, "owner", typeArgumentException); yield return new TestCaseData("owner", null, null, "repository", typeArgumentNullException); - yield return new TestCaseData("owner", "", null, "repository", typeArgumentException); + yield return new TestCaseData("owner", string.Empty, null, "repository", typeArgumentException); yield return new TestCaseData("owner", " ", null, "repository", typeArgumentException); yield return new TestCaseData("owner", "repository", null, "head", typeArgumentNullException); - yield return new TestCaseData("owner", "repository", "", "head", typeArgumentException); + yield return new TestCaseData("owner", "repository", string.Empty, "head", typeArgumentException); yield return new TestCaseData("owner", "repository", " ", "head", typeArgumentException); } diff --git a/src/GitReleaseManager.Core.Tests/VcsServiceTests.cs b/src/GitReleaseManager.Core.Tests/VcsServiceTests.cs index 0bdfd4e8..dfed7651 100644 --- a/src/GitReleaseManager.Core.Tests/VcsServiceTests.cs +++ b/src/GitReleaseManager.Core.Tests/VcsServiceTests.cs @@ -4,29 +4,29 @@ // // ----------------------------------------------------------------------- -using System; -using System.Collections; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using GitReleaseManager.Core.Configuration; -using GitReleaseManager.Core.Model; -using GitReleaseManager.Core.Provider; -using GitReleaseManager.Core.ReleaseNotes; -using NSubstitute; -using NUnit.Framework; -using Serilog; -using Shouldly; -using ItemState = GitReleaseManager.Core.Model.ItemState; -using ItemStateFilter = GitReleaseManager.Core.Model.ItemStateFilter; -using Label = GitReleaseManager.Core.Model.Label; -using Milestone = GitReleaseManager.Core.Model.Milestone; -using NotFoundException = GitReleaseManager.Core.Exceptions.NotFoundException; -using Release = GitReleaseManager.Core.Model.Release; - namespace GitReleaseManager.Core.Tests { + using System; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Threading.Tasks; + using GitReleaseManager.Core.Configuration; + using GitReleaseManager.Core.Model; + using GitReleaseManager.Core.Provider; + using GitReleaseManager.Core.ReleaseNotes; + using NSubstitute; + using NUnit.Framework; + using Serilog; + using Shouldly; + using ItemState = GitReleaseManager.Core.Model.ItemState; + using ItemStateFilter = GitReleaseManager.Core.Model.ItemStateFilter; + using Label = GitReleaseManager.Core.Model.Label; + using Milestone = GitReleaseManager.Core.Model.Milestone; + using NotFoundException = GitReleaseManager.Core.Exceptions.NotFoundException; + using Release = GitReleaseManager.Core.Model.Release; + public class VcsServiceTests { private const string _owner = "owner"; diff --git a/src/GitReleaseManager.Core/Commands/AddAssetsCommand.cs b/src/GitReleaseManager.Core/Commands/AddAssetsCommand.cs index 6b4cc28b..7a4cdb2b 100644 --- a/src/GitReleaseManager.Core/Commands/AddAssetsCommand.cs +++ b/src/GitReleaseManager.Core/Commands/AddAssetsCommand.cs @@ -4,12 +4,12 @@ // // ----------------------------------------------------------------------- -using System.Threading.Tasks; -using GitReleaseManager.Core.Options; -using Serilog; - namespace GitReleaseManager.Core.Commands { + using System.Threading.Tasks; + using GitReleaseManager.Core.Options; + using Serilog; + public class AddAssetsCommand : ICommand { private readonly IVcsService _vcsService; diff --git a/src/GitReleaseManager.Core/Commands/CloseCommand.cs b/src/GitReleaseManager.Core/Commands/CloseCommand.cs index ba042558..a4521c1a 100644 --- a/src/GitReleaseManager.Core/Commands/CloseCommand.cs +++ b/src/GitReleaseManager.Core/Commands/CloseCommand.cs @@ -4,12 +4,12 @@ // // ----------------------------------------------------------------------- -using System.Threading.Tasks; -using GitReleaseManager.Core.Options; -using Serilog; - namespace GitReleaseManager.Core.Commands { + using System.Threading.Tasks; + using GitReleaseManager.Core.Options; + using Serilog; + public class CloseCommand : ICommand { private readonly IVcsService _vcsService; diff --git a/src/GitReleaseManager.Core/Commands/CreateCommand.cs b/src/GitReleaseManager.Core/Commands/CreateCommand.cs index dec71694..d9c535f8 100644 --- a/src/GitReleaseManager.Core/Commands/CreateCommand.cs +++ b/src/GitReleaseManager.Core/Commands/CreateCommand.cs @@ -4,13 +4,13 @@ // // ----------------------------------------------------------------------- -using System.Threading.Tasks; -using GitReleaseManager.Core.Model; -using GitReleaseManager.Core.Options; -using Serilog; - namespace GitReleaseManager.Core.Commands { + using System.Threading.Tasks; + using GitReleaseManager.Core.Model; + using GitReleaseManager.Core.Options; + using Serilog; + public class CreateCommand : ICommand { private readonly IVcsService _vcsService; diff --git a/src/GitReleaseManager.Core/Commands/DiscardCommand.cs b/src/GitReleaseManager.Core/Commands/DiscardCommand.cs index 8e3de615..ae7624cf 100644 --- a/src/GitReleaseManager.Core/Commands/DiscardCommand.cs +++ b/src/GitReleaseManager.Core/Commands/DiscardCommand.cs @@ -4,12 +4,12 @@ // // ----------------------------------------------------------------------- -using System.Threading.Tasks; -using GitReleaseManager.Core.Options; -using Serilog; - namespace GitReleaseManager.Core.Commands { + using System.Threading.Tasks; + using GitReleaseManager.Core.Options; + using Serilog; + public class DiscardCommand : ICommand { private readonly IVcsService _vcsService; diff --git a/src/GitReleaseManager.Core/Commands/ExportCommand.cs b/src/GitReleaseManager.Core/Commands/ExportCommand.cs index 859f3ca2..6b760e2f 100644 --- a/src/GitReleaseManager.Core/Commands/ExportCommand.cs +++ b/src/GitReleaseManager.Core/Commands/ExportCommand.cs @@ -4,13 +4,13 @@ // // ----------------------------------------------------------------------- -using System.IO; -using System.Threading.Tasks; -using GitReleaseManager.Core.Options; -using Serilog; - namespace GitReleaseManager.Core.Commands { + using System.IO; + using System.Threading.Tasks; + using GitReleaseManager.Core.Options; + using Serilog; + public class ExportCommand : ICommand { private readonly IVcsService _vcsService; diff --git a/src/GitReleaseManager.Core/Commands/ICommand.cs b/src/GitReleaseManager.Core/Commands/ICommand.cs index 78bcac8f..6e3ae251 100644 --- a/src/GitReleaseManager.Core/Commands/ICommand.cs +++ b/src/GitReleaseManager.Core/Commands/ICommand.cs @@ -4,11 +4,11 @@ // // ----------------------------------------------------------------------- -using System.Threading.Tasks; -using GitReleaseManager.Core.Options; - namespace GitReleaseManager.Core.Commands { + using System.Threading.Tasks; + using GitReleaseManager.Core.Options; + public interface ICommand where TOptions : BaseSubOptions { diff --git a/src/GitReleaseManager.Core/Commands/InitCommand.cs b/src/GitReleaseManager.Core/Commands/InitCommand.cs index e9327e5b..c701e42a 100644 --- a/src/GitReleaseManager.Core/Commands/InitCommand.cs +++ b/src/GitReleaseManager.Core/Commands/InitCommand.cs @@ -4,15 +4,15 @@ // // ----------------------------------------------------------------------- -using System; -using System.Threading.Tasks; -using GitReleaseManager.Core.Configuration; -using GitReleaseManager.Core.Helpers; -using GitReleaseManager.Core.Options; -using Serilog; - namespace GitReleaseManager.Core.Commands { + using System; + using System.Threading.Tasks; + using GitReleaseManager.Core.Configuration; + using GitReleaseManager.Core.Helpers; + using GitReleaseManager.Core.Options; + using Serilog; + public class InitCommand : ICommand { private readonly IFileSystem _fileSystem; diff --git a/src/GitReleaseManager.Core/Commands/LabelCommand.cs b/src/GitReleaseManager.Core/Commands/LabelCommand.cs index d4d44797..e0e984b4 100644 --- a/src/GitReleaseManager.Core/Commands/LabelCommand.cs +++ b/src/GitReleaseManager.Core/Commands/LabelCommand.cs @@ -4,12 +4,12 @@ // // ----------------------------------------------------------------------- -using System.Threading.Tasks; -using GitReleaseManager.Core.Options; -using Serilog; - namespace GitReleaseManager.Core.Commands { + using System.Threading.Tasks; + using GitReleaseManager.Core.Options; + using Serilog; + public class LabelCommand : ICommand { private readonly IVcsService _vcsService; diff --git a/src/GitReleaseManager.Core/Commands/OpenCommand.cs b/src/GitReleaseManager.Core/Commands/OpenCommand.cs index eee73d71..c55d2981 100644 --- a/src/GitReleaseManager.Core/Commands/OpenCommand.cs +++ b/src/GitReleaseManager.Core/Commands/OpenCommand.cs @@ -4,12 +4,12 @@ // // ----------------------------------------------------------------------- -using System.Threading.Tasks; -using GitReleaseManager.Core.Options; -using Serilog; - namespace GitReleaseManager.Core.Commands { + using System.Threading.Tasks; + using GitReleaseManager.Core.Options; + using Serilog; + public class OpenCommand : ICommand { private readonly IVcsService _vcsService; diff --git a/src/GitReleaseManager.Core/Commands/PublishCommand.cs b/src/GitReleaseManager.Core/Commands/PublishCommand.cs index cc44f483..dac55207 100644 --- a/src/GitReleaseManager.Core/Commands/PublishCommand.cs +++ b/src/GitReleaseManager.Core/Commands/PublishCommand.cs @@ -4,12 +4,12 @@ // // ----------------------------------------------------------------------- -using System.Threading.Tasks; -using GitReleaseManager.Core.Options; -using Serilog; - namespace GitReleaseManager.Core.Commands { + using System.Threading.Tasks; + using GitReleaseManager.Core.Options; + using Serilog; + public class PublishCommand : ICommand { private readonly IVcsService _vcsService; diff --git a/src/GitReleaseManager.Core/Commands/ShowConfigCommand.cs b/src/GitReleaseManager.Core/Commands/ShowConfigCommand.cs index b618c92e..616a1c5f 100644 --- a/src/GitReleaseManager.Core/Commands/ShowConfigCommand.cs +++ b/src/GitReleaseManager.Core/Commands/ShowConfigCommand.cs @@ -4,15 +4,15 @@ // // ----------------------------------------------------------------------- -using System; -using System.Threading.Tasks; -using GitReleaseManager.Core.Configuration; -using GitReleaseManager.Core.Helpers; -using GitReleaseManager.Core.Options; -using Serilog; - namespace GitReleaseManager.Core.Commands { + using System; + using System.Threading.Tasks; + using GitReleaseManager.Core.Configuration; + using GitReleaseManager.Core.Helpers; + using GitReleaseManager.Core.Options; + using Serilog; + public class ShowConfigCommand : ICommand { private readonly IFileSystem _fileSystem; diff --git a/src/GitReleaseManager.Core/Ensure.cs b/src/GitReleaseManager.Core/Ensure.cs index 1944a0d6..21361463 100644 --- a/src/GitReleaseManager.Core/Ensure.cs +++ b/src/GitReleaseManager.Core/Ensure.cs @@ -4,11 +4,11 @@ // // ----------------------------------------------------------------------- -using System; -using System.IO; - namespace GitReleaseManager.Core { + using System; + using System.IO; + /// /// Provides static methods that help a constructor or method to verify correct arguments and /// state. diff --git a/src/GitReleaseManager.Core/Exceptions/ApiException.cs b/src/GitReleaseManager.Core/Exceptions/ApiException.cs index 29b17828..159a44fa 100644 --- a/src/GitReleaseManager.Core/Exceptions/ApiException.cs +++ b/src/GitReleaseManager.Core/Exceptions/ApiException.cs @@ -4,11 +4,11 @@ // // ----------------------------------------------------------------------- -using System; -using System.Runtime.Serialization; - namespace GitReleaseManager.Core.Exceptions { + using System; + using System.Runtime.Serialization; + [Serializable] public class ApiException : Exception { diff --git a/src/GitReleaseManager.Core/Exceptions/ForbiddenException.cs b/src/GitReleaseManager.Core/Exceptions/ForbiddenException.cs index e703ad41..78dacbda 100644 --- a/src/GitReleaseManager.Core/Exceptions/ForbiddenException.cs +++ b/src/GitReleaseManager.Core/Exceptions/ForbiddenException.cs @@ -4,11 +4,11 @@ // // ----------------------------------------------------------------------- -using System; -using System.Runtime.Serialization; - namespace GitReleaseManager.Core.Exceptions { + using System; + using System.Runtime.Serialization; + [Serializable] public class ForbiddenException : Exception { diff --git a/src/GitReleaseManager.Core/Exceptions/NotFoundException.cs b/src/GitReleaseManager.Core/Exceptions/NotFoundException.cs index 3a059dbe..bf336a57 100644 --- a/src/GitReleaseManager.Core/Exceptions/NotFoundException.cs +++ b/src/GitReleaseManager.Core/Exceptions/NotFoundException.cs @@ -4,11 +4,11 @@ // // ----------------------------------------------------------------------- -using System; -using System.Runtime.Serialization; - namespace GitReleaseManager.Core.Exceptions { + using System; + using System.Runtime.Serialization; + [Serializable] public class NotFoundException : Exception { diff --git a/src/GitReleaseManager.Core/GitReleaseManager.Core.csproj b/src/GitReleaseManager.Core/GitReleaseManager.Core.csproj index 1d625e9d..a807a4e6 100644 --- a/src/GitReleaseManager.Core/GitReleaseManager.Core.csproj +++ b/src/GitReleaseManager.Core/GitReleaseManager.Core.csproj @@ -5,6 +5,7 @@ GitReleaseManager.Core Create release notes in markdown given a milestone false + $(NoWarn);CA1707; diff --git a/src/GitReleaseManager.Core/Model/IssueComment.cs b/src/GitReleaseManager.Core/Model/IssueComment.cs index a724554e..024efa17 100644 --- a/src/GitReleaseManager.Core/Model/IssueComment.cs +++ b/src/GitReleaseManager.Core/Model/IssueComment.cs @@ -9,12 +9,12 @@ namespace GitReleaseManager.Core.Model public class IssueComment { /// - /// The issue comment Id. + /// Gets or sets the issue comment Id. /// public int Id { get; set; } /// - /// Details about the issue comment. + /// Gets or sets details about the issue comment. /// public string Body { get; set; } } diff --git a/src/GitReleaseManager.Core/Model/ItemState.cs b/src/GitReleaseManager.Core/Model/ItemState.cs index c67b6b33..0437d3aa 100644 --- a/src/GitReleaseManager.Core/Model/ItemState.cs +++ b/src/GitReleaseManager.Core/Model/ItemState.cs @@ -16,6 +16,6 @@ public enum ItemState /// /// Items that are closed /// - Closed = 1 + Closed = 1, } } \ No newline at end of file diff --git a/src/GitReleaseManager.Core/Model/ItemStateFilter.cs b/src/GitReleaseManager.Core/Model/ItemStateFilter.cs index 351ab1e5..5be5499b 100644 --- a/src/GitReleaseManager.Core/Model/ItemStateFilter.cs +++ b/src/GitReleaseManager.Core/Model/ItemStateFilter.cs @@ -21,6 +21,6 @@ public enum ItemStateFilter /// /// All the items. /// - All = 2 + All = 2, } } \ No newline at end of file diff --git a/src/GitReleaseManager.Core/Model/Label.cs b/src/GitReleaseManager.Core/Model/Label.cs index 01988836..0263de66 100644 --- a/src/GitReleaseManager.Core/Model/Label.cs +++ b/src/GitReleaseManager.Core/Model/Label.cs @@ -9,17 +9,17 @@ namespace GitReleaseManager.Core.Model public sealed class Label { /// - /// Name of the label (required). + /// Gets or sets the name of the label (required). /// public string Name { get; set; } /// - /// Color of the label (required). + /// Gets or sets the color of the label (required). /// public string Color { get; set; } /// - /// A short description of the label (optional). + /// Gets or sets a short description of the label (optional). /// public string Description { get; set; } } diff --git a/src/GitReleaseManager.Core/Model/RateLimit.cs b/src/GitReleaseManager.Core/Model/RateLimit.cs index dd503917..1dc6380c 100644 --- a/src/GitReleaseManager.Core/Model/RateLimit.cs +++ b/src/GitReleaseManager.Core/Model/RateLimit.cs @@ -4,24 +4,24 @@ // // ----------------------------------------------------------------------- -using System; - namespace GitReleaseManager.Core.Model { + using System; + public class RateLimit { /// - /// The maximum number of requests that the consumer is permitted to make per hour. + /// Gets or sets the maximum number of requests that the consumer is permitted to make per hour. /// public int Limit { get; set; } /// - /// The number of requests remaining in the current rate limit window. + /// Gets or sets the number of requests remaining in the current rate limit window. /// public int Remaining { get; set; } /// - /// The date and time at which the current rate limit window resets. + /// Gets or sets the date and time at which the current rate limit window resets. /// public DateTimeOffset Reset { get; set; } } diff --git a/src/GitReleaseManager.Core/Model/ReleaseAssetUpload.cs b/src/GitReleaseManager.Core/Model/ReleaseAssetUpload.cs index 03f20fba..099d937b 100644 --- a/src/GitReleaseManager.Core/Model/ReleaseAssetUpload.cs +++ b/src/GitReleaseManager.Core/Model/ReleaseAssetUpload.cs @@ -4,10 +4,10 @@ // // ----------------------------------------------------------------------- -using System.IO; - namespace GitReleaseManager.Core.Model { + using System.IO; + public class ReleaseAssetUpload { /// diff --git a/src/GitReleaseManager.Core/Options/BaseVcsSubOptions.cs b/src/GitReleaseManager.Core/Options/BaseVcsSubOptions.cs index 99270f8b..57ad1893 100644 --- a/src/GitReleaseManager.Core/Options/BaseVcsSubOptions.cs +++ b/src/GitReleaseManager.Core/Options/BaseVcsSubOptions.cs @@ -1,4 +1,4 @@ -// +// // Copyright (c) 2015 - Present - GitTools Contributors // //----------------------------------------------------------------------- diff --git a/src/GitReleaseManager.Core/Options/DiscardSubOptions.cs b/src/GitReleaseManager.Core/Options/DiscardSubOptions.cs index bd2cc950..ede0bada 100644 --- a/src/GitReleaseManager.Core/Options/DiscardSubOptions.cs +++ b/src/GitReleaseManager.Core/Options/DiscardSubOptions.cs @@ -1,5 +1,5 @@ //----------------------------------------------------------------------- -// +// // Copyright (c) 2015 - Present - GitTools Contributors // //----------------------------------------------------------------------- diff --git a/src/GitReleaseManager.Core/Provider/GitHubProvider.cs b/src/GitReleaseManager.Core/Provider/GitHubProvider.cs index d13d0d3a..dc71b6ce 100644 --- a/src/GitReleaseManager.Core/Provider/GitHubProvider.cs +++ b/src/GitReleaseManager.Core/Provider/GitHubProvider.cs @@ -4,28 +4,28 @@ // // ----------------------------------------------------------------------- -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using System.Threading.Tasks; -using AutoMapper; -using Octokit; -using ApiException = GitReleaseManager.Core.Exceptions.ApiException; -using ForbiddenException = GitReleaseManager.Core.Exceptions.ForbiddenException; -using Issue = GitReleaseManager.Core.Model.Issue; -using IssueComment = GitReleaseManager.Core.Model.IssueComment; -using ItemState = GitReleaseManager.Core.Model.ItemState; -using ItemStateFilter = GitReleaseManager.Core.Model.ItemStateFilter; -using Label = GitReleaseManager.Core.Model.Label; -using Milestone = GitReleaseManager.Core.Model.Milestone; -using NotFoundException = GitReleaseManager.Core.Exceptions.NotFoundException; -using RateLimit = GitReleaseManager.Core.Model.RateLimit; -using Release = GitReleaseManager.Core.Model.Release; -using ReleaseAssetUpload = GitReleaseManager.Core.Model.ReleaseAssetUpload; - namespace GitReleaseManager.Core.Provider { + using System; + using System.Collections.Generic; + using System.Globalization; + using System.Linq; + using System.Threading.Tasks; + using AutoMapper; + using Octokit; + using ApiException = GitReleaseManager.Core.Exceptions.ApiException; + using ForbiddenException = GitReleaseManager.Core.Exceptions.ForbiddenException; + using Issue = GitReleaseManager.Core.Model.Issue; + using IssueComment = GitReleaseManager.Core.Model.IssueComment; + using ItemState = GitReleaseManager.Core.Model.ItemState; + using ItemStateFilter = GitReleaseManager.Core.Model.ItemStateFilter; + using Label = GitReleaseManager.Core.Model.Label; + using Milestone = GitReleaseManager.Core.Model.Milestone; + using NotFoundException = GitReleaseManager.Core.Exceptions.NotFoundException; + using RateLimit = GitReleaseManager.Core.Model.RateLimit; + using Release = GitReleaseManager.Core.Model.Release; + using ReleaseAssetUpload = GitReleaseManager.Core.Model.ReleaseAssetUpload; + public class GitHubProvider : IVcsProvider { private const int _pageSize = 100; diff --git a/src/GitReleaseManager.Core/Provider/IVcsProvider.cs b/src/GitReleaseManager.Core/Provider/IVcsProvider.cs index dfecf557..f3b67cb6 100644 --- a/src/GitReleaseManager.Core/Provider/IVcsProvider.cs +++ b/src/GitReleaseManager.Core/Provider/IVcsProvider.cs @@ -4,12 +4,12 @@ // //----------------------------------------------------------------------- -using System.Collections.Generic; -using System.Threading.Tasks; -using GitReleaseManager.Core.Model; - namespace GitReleaseManager.Core.Provider { + using System.Collections.Generic; + using System.Threading.Tasks; + using GitReleaseManager.Core.Model; + public interface IVcsProvider { Task DeleteAssetAsync(string owner, string repository, int id); diff --git a/src/GitReleaseManager.Core/ReleaseNotes/IReleaseNotesBuilder.cs b/src/GitReleaseManager.Core/ReleaseNotes/IReleaseNotesBuilder.cs index 30014a3f..8bac46de 100644 --- a/src/GitReleaseManager.Core/ReleaseNotes/IReleaseNotesBuilder.cs +++ b/src/GitReleaseManager.Core/ReleaseNotes/IReleaseNotesBuilder.cs @@ -4,10 +4,10 @@ // //----------------------------------------------------------------------- -using System.Threading.Tasks; - namespace GitReleaseManager.Core.ReleaseNotes { + using System.Threading.Tasks; + public interface IReleaseNotesBuilder { Task BuildReleaseNotes(string user, string repository, string milestoneTitle, string templateText); diff --git a/src/GitReleaseManager.Core/ReleaseNotes/IReleaseNotesExporter.cs b/src/GitReleaseManager.Core/ReleaseNotes/IReleaseNotesExporter.cs index cc0667dc..5b27f953 100644 --- a/src/GitReleaseManager.Core/ReleaseNotes/IReleaseNotesExporter.cs +++ b/src/GitReleaseManager.Core/ReleaseNotes/IReleaseNotesExporter.cs @@ -4,11 +4,11 @@ // //----------------------------------------------------------------------- -using System.Collections.Generic; -using GitReleaseManager.Core.Model; - namespace GitReleaseManager.Core.ReleaseNotes { + using System.Collections.Generic; + using GitReleaseManager.Core.Model; + public interface IReleaseNotesExporter { string ExportReleaseNotes(IEnumerable releases); diff --git a/src/GitReleaseManager.IntegrationTests/GitHubProviderIntegrationTests.cs b/src/GitReleaseManager.IntegrationTests/GitHubProviderIntegrationTests.cs index 1bc412eb..bcfe54cd 100644 --- a/src/GitReleaseManager.IntegrationTests/GitHubProviderIntegrationTests.cs +++ b/src/GitReleaseManager.IntegrationTests/GitHubProviderIntegrationTests.cs @@ -4,21 +4,21 @@ // // ----------------------------------------------------------------------- -using System; -using System.Linq; -using System.Threading.Tasks; -using AutoMapper; -using GitReleaseManager.Core; -using GitReleaseManager.Core.Provider; -using NUnit.Framework; -using Octokit; -using Serilog; -using Shouldly; -using Issue = GitReleaseManager.Core.Model.Issue; -using Milestone = GitReleaseManager.Core.Model.Milestone; - namespace GitReleaseManager.IntegrationTests { + using System; + using System.Linq; + using System.Threading.Tasks; + using AutoMapper; + using GitReleaseManager.Core; + using GitReleaseManager.Core.Provider; + using NUnit.Framework; + using Octokit; + using Serilog; + using Shouldly; + using Issue = GitReleaseManager.Core.Model.Issue; + using Milestone = GitReleaseManager.Core.Model.Milestone; + [TestFixture] [Explicit] public class GitHubProviderIntegrationTests @@ -37,7 +37,6 @@ public class GitHubProviderIntegrationTests private Issue _issue; private Milestone _milestone; - [OneTimeSetUp] public void OneTimeSetUp() { diff --git a/src/GitReleaseManager.IntegrationTests/GitReleaseManager.IntegrationTests.csproj b/src/GitReleaseManager.IntegrationTests/GitReleaseManager.IntegrationTests.csproj index cc1250e2..6f359a3c 100644 --- a/src/GitReleaseManager.IntegrationTests/GitReleaseManager.IntegrationTests.csproj +++ b/src/GitReleaseManager.IntegrationTests/GitReleaseManager.IntegrationTests.csproj @@ -1,11 +1,14 @@ - + 8.0 net472;netcoreapp2.1 GitReleaseManager.IntegrationTests Integration Test Project for GitReleaseManager - $(NoWarn);CA1707 + $(NoWarn);CA1707;Serilog004; + + + diff --git a/src/GitReleaseManager.Tests/GitReleaseManager.Tests.csproj b/src/GitReleaseManager.Tests/GitReleaseManager.Tests.csproj index 867de8cb..9827552b 100644 --- a/src/GitReleaseManager.Tests/GitReleaseManager.Tests.csproj +++ b/src/GitReleaseManager.Tests/GitReleaseManager.Tests.csproj @@ -4,8 +4,11 @@ net472;netcoreapp2.1 GitReleaseManager.Tests Test Project for GitReleaseManager - $(NoWarn);CA1707 + $(NoWarn);CA1707;Serilog004; + + + diff --git a/src/GitReleaseManager.Tests/ReleaseNotesBuilderTests.cs b/src/GitReleaseManager.Tests/ReleaseNotesBuilderTests.cs index 34a25702..ece0c875 100644 --- a/src/GitReleaseManager.Tests/ReleaseNotesBuilderTests.cs +++ b/src/GitReleaseManager.Tests/ReleaseNotesBuilderTests.cs @@ -4,19 +4,18 @@ // //----------------------------------------------------------------------- -using System.Collections.Generic; -using System.Threading.Tasks; -using GitReleaseManager.Core.ReleaseNotes; - namespace GitReleaseManager.Tests { using System; + using System.Collections.Generic; using System.Linq; + using System.Threading.Tasks; using ApprovalTests; using GitReleaseManager.Core.Configuration; using GitReleaseManager.Core.Helpers; using GitReleaseManager.Core.Model; using GitReleaseManager.Core.Provider; + using GitReleaseManager.Core.ReleaseNotes; using NSubstitute; using NUnit.Framework; using Serilog; diff --git a/src/GitReleaseManager.Tool/GitReleaseManager.Tool.csproj b/src/GitReleaseManager.Tool/GitReleaseManager.Tool.csproj index 015cfd96..def2138b 100644 --- a/src/GitReleaseManager.Tool/GitReleaseManager.Tool.csproj +++ b/src/GitReleaseManager.Tool/GitReleaseManager.Tool.csproj @@ -22,6 +22,7 @@ https://github.com/GitTools/GitReleaseManager/releases git https://github.com/GitTools/GitReleaseManager.git + $(NoWarn);CA1707; diff --git a/src/GitReleaseManager.ruleset b/src/GitReleaseManager.ruleset deleted file mode 100644 index f9a98327..00000000 --- a/src/GitReleaseManager.ruleset +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/GitReleaseManager.sln b/src/GitReleaseManager.sln index 651aafe3..e4b67429 100644 --- a/src/GitReleaseManager.sln +++ b/src/GitReleaseManager.sln @@ -10,7 +10,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GitReleaseManager.Core", "G EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C87778A7-B100-4D05-A050-BA37BD59058C}" ProjectSection(SolutionItems) = preProject + .editorconfig = .editorconfig Directory.Build.props = Directory.Build.props + Directory.Build.targets = Directory.Build.targets + stylecop.json = stylecop.json EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GitReleaseManager.IntegrationTests", "GitReleaseManager.IntegrationTests\GitReleaseManager.IntegrationTests.csproj", "{53D8DA02-2BF8-454A-997C-B6BE62F90F9E}" diff --git a/src/GlobalSuppressions.cs b/src/GlobalSuppressions.cs new file mode 100644 index 00000000..76449507 --- /dev/null +++ b/src/GlobalSuppressions.cs @@ -0,0 +1,10 @@ +// This file is used by Code Analysis to maintain SuppressMessage +// attributes that are applied to this project. +// Project-level suppressions either have no target or are given +// a specific target and scoped to a namespace, type, member, etc. + +using System.Diagnostics.CodeAnalysis; + +[assembly: SuppressMessage("General", "RCS1079:Throwing of new NotImplementedException.", Justification = "", Scope = "NamespaceAndDescendants", Target = "GitReleaseManager.Tests")] +[assembly: SuppressMessage("General", "RCS1079:Throwing of new NotImplementedException.", Justification = "", Scope = "NamespaceAndDescendants", Target = "GitReleaseManager.IntegrationTests")] +[assembly: SuppressMessage("General", "RCS1079:Throwing of new NotImplementedException.", Justification = "", Scope = "NamespaceAndDescendants", Target = "GitReleaseManager.Core.Tests")] diff --git a/src/stylecop.json b/src/stylecop.json index 5c66a74a..4ecdec17 100644 --- a/src/stylecop.json +++ b/src/stylecop.json @@ -2,13 +2,30 @@ "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", "settings": { "documentationRules": { - "documentExposedElements": false, // Should be changed to true before publishing a library - "documentInterfaces": false, // Should be changed to true before publishing a library + "documentExposedElements": false, + "documentInterfaces": false, "documentInternalElements": false, + "documentPrivateElements": false, + "documentPrivateFields": false, "headerDecoration": "-----------------------------------------------------------------------", "copyrightText": "Copyright (c) 2015 - Present - GitTools Contributors", "companyName": "GitTools Contributors", "xmlHeader": true + }, + "layoutRules": { + "newlineAtEndOfFile": "allow", + "allowConsecutiveUsings": true + }, + "orderingRules": { + "usingDirectivesPlacement": "insideNamespace", + "systemUsingDirectivesFirst": true, + "elementOrder": [ + "kind", + "accessibility", + "constant", + "static", + "readonly" + ] } } } \ No newline at end of file