-
Notifications
You must be signed in to change notification settings - Fork 0
Sprint 3 Parte 2: AllowedCities Admin CRUD + Automações + Integração Providers ↔ ServiceCatalogs #71
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
Sprint 3 Parte 2: AllowedCities Admin CRUD + Automações + Integração Providers ↔ ServiceCatalogs #71
Changes from 56 commits
Commits
Show all changes
70 commits
Select commit
Hold shift + click to select a range
ef5414a
docs(roadmap): atualizar para Sprint 3 Parte 2
a57c34c
feat(locations): adicionar endpoints CRUD admin para AllowedCities
313a622
wip: migrar Commands/Queries/Handlers para implementação própria do M…
b0cb72f
test(locations): adicionar testes unitários e de integração para Allo…
ce1f3fa
test(locations): adicionar testes E2E para endpoints AllowedCities
2f81213
fix(locations): registrar handlers no DI container e corrigir parâmet…
4cbde3a
refactor(locations): IbgeService agora usa banco de dados ao invés de…
ea1a963
feat(locations): implementar exception handling com status codes HTTP…
0c48b7a
fix(locations): remover 15 warnings do módulo Locations
0f7ff0a
docs(roadmap): atualizar progresso do Sprint 3 Parte 2
d1ce745
fix: corrigir erros de compilação e exception handling em E2E tests
c21e2c3
docs: adicionar tarefas originais do roadmap à Sprint 3 Parte 4
e8683c0
refactor: substituir NSubstitute por Moq para padronização
0a44810
refactor: substituir Guid.CreateVersion7() por UuidGenerator.NewId()
1de5dc1
build: migrar solução para formato .slnx (.NET 9+)
ae6ef2d
feat(docs): automação completa de OpenAPI e GitHub Pages
ae65929
feat(scripts): adicionar scripts de seeding de dados
fe5a964
feat(shared): implementar seeding automático de dados de desenvolvimento
3d2b260
feat(aspire): migrar migrations para Aspire AppHost e remover Migrati…
53943da
feat(providers): implementar integração Providers ↔ ServiceCatalogs
32f854a
Merge branch 'master' into sprint3-parte2-admin-endpoints
e334c4d
fix: resolve build errors and code quality issues
7b37dc6
docs(roadmap): atualizar Sprint 3 como 100% completo
f4fac92
fix: ajustes finais em testes e cache service
fe94741
fix: corrigir assinaturas dos métodos de seeding
fe216b9
fix: corrigir erros de compilação e formatar código
5c16c0c
fix: implementar tuple (value, isCached) no ICacheService.GetAsync e …
7c2c0ea
fix: implementar melhorias do PR review
27e9113
feat: adicionar Bruno Collections completas para ServiceCatalogs
b09fcc8
fix: resolver feedback de code review e testes de integração
9bfa947
fix: usar idMap nos services + documentar scripts de coverage
b0b9470
docs: auditoria completa e documentação de todos os scripts
ef3aa47
refactor: simplificar scripts - remover redundâncias e over-engineering
afb3b17
refactor: simplificar infrastructure - remover redundâncias
18550b0
fix: aplicar correções de code review
618d193
chore: aplicar dotnet format e remover documento de trabalho
5b0d74a
fix: corrigir issues de code review
c5f79b4
fix(ci): corrigir falso positivo no check de formatação
fa50798
fix(ci): corrigir check de formatação em ambos workflows
d8bb00d
refactor: resolve SonarQube warnings (S1135 TODOs, S2139 exception ha…
dd768d0
fix(ci): resolve pr-validation workflow issues - fix trailing whitesp…
2a349f5
fix: apply code review feedback - improve cancellation handling, cach…
302c5e0
docs(roadmap): atualizar Sprint 3 como 100% concluída - todas as 4 pa…
9f7b09a
refactor: remover ExampleSchemaFilter problemático e seus testes
2559cb8
fix: corrigir erros de compilação críticos
5543174
fix: aplicar correções do code review
311a6fe
refactor: remover overengineering - ModuleTagsDocumentFilter e CacheW…
2e9e085
fix(ci): focar dotnet format apenas em style (não code quality analyz…
72115b6
fix(tests): UserProfileUpdatedDomainEventHandler deve re-lançar exceç…
6ca7dcc
fix(tests): Providers event handlers devem re-lançar exceção original
c76bc62
fix(code-review): apply GitHub bot suggestions - security, robustness…
4e26c1a
fix(tests): UserProfileUpdatedDomainEventHandler test deve esperar ex…
da56552
fix(code-review): aplicar sugestões críticas do CodeRabbit
0a666cf
fix(build): DapperConnection.HandleDapperError deve retornar exceção
bc2d0e9
fix(warnings): resolve critical SonarQube warnings without pragma sup…
0fd9c0c
fix(warnings): resolve all actionable warnings without pragma suppres…
0506176
fix(tests): update AzureBlobStorageService test name to match excepti…
8f5ff20
fix(editorconfig): add trailing newline to comply with insert_final_n…
95436e2
fix(code-quality): address security, exception handling, and document…
15d1263
fix(exceptions): preserve exception types to maintain HTTP status cod…
3bfede4
fix(security,performance,tests): prevent PII leakage, optimize token …
ff1fe58
fix(tests): update RequestLoggingMiddleware test for unwrapped except…
f88b246
fix(warnings,migrations,api): resolve build warnings and environment …
c9f268c
fix(security,tests): remove PII from logs and update ArgumentExceptio…
213bf76
fix(auth,tests): use dynamic token expiry and update ArgumentExceptio…
29543fd
fix(auth,security): correct HybridCache factory signature and prevent…
8b5d0f4
fix(auth,security): correct HybridCache factory signature and prevent…
3b67333
refactor(auth): simplify HybridCache factory with async ValueTask lambda
184ce63
fix(auth): use dynamic token expiration and improve cache factory sig…
3cbb5f8
fix(auth): remove redundant token fetch before cache check
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,269 @@ | ||
| # EditorConfig é incrível: https://EditorConfig.org | ||
|
|
||
| # Arquivo principal | ||
| root = true | ||
|
|
||
| [*] | ||
| charset = utf-8 | ||
| end_of_line = lf | ||
| insert_final_newline = true | ||
| trim_trailing_whitespace = true | ||
|
|
||
| # Arquivos C# e .NET | ||
| [*.{cs,csx,vb,vbx,csproj,fsproj,vbproj,props,targets}] | ||
| indent_style = space | ||
| indent_size = 4 | ||
|
|
||
| # Arquivos de configuração e dados | ||
| [*.{json,js,jsx,ts,tsx,xml,yml,yaml}] | ||
| indent_style = space | ||
| indent_size = 2 | ||
|
|
||
| # Arquivos Markdown | ||
| [*.md] | ||
| trim_trailing_whitespace = false | ||
|
|
||
| # Shell scripts | ||
| [*.sh] | ||
| end_of_line = lf | ||
|
|
||
| # PowerShell scripts | ||
| [*.ps1] | ||
| end_of_line = lf | ||
|
|
||
| # Docker files | ||
| [Dockerfile] | ||
| end_of_line = lf | ||
|
|
||
| # ===================================== | ||
| # REGRAS DE ANÁLISE DE CÓDIGO C# - PRODUÇÃO | ||
| # ===================================== | ||
| [*.cs] | ||
|
|
||
| # Regras básicas de qualidade | ||
| dotnet_diagnostic.CA1515.severity = none # Consider making public types internal | ||
| dotnet_diagnostic.CA1848.severity = none # Use LoggerMessage delegates instead of LoggerExtensions methods | ||
|
|
||
| # CRÍTICAS DE SEGURANÇA - RIGOROSAS EM PRODUÇÃO | ||
| # CA2007: ConfigureAwait(false) - importante em bibliotecas, opcional em aplicações ASP.NET Core | ||
| dotnet_diagnostic.CA2007.severity = suggestion # Consider calling ConfigureAwait on the awaited task | ||
|
|
||
| # CA1031: Catch específico - importante para diagnóstico, mas permite exceções genéricas em pontos de entrada | ||
| dotnet_diagnostic.CA1031.severity = suggestion # Modify to catch a more specific allowed exception type | ||
|
|
||
| # CA1062: Validação de null - crítico para APIs públicas | ||
| dotnet_diagnostic.CA1062.severity = warning # Validate parameter is non-null before using it | ||
|
|
||
| # CA2000: Dispose de recursos - crítico para vazamentos de memória | ||
| dotnet_diagnostic.CA2000.severity = warning # Call System.IDisposable.Dispose on object | ||
|
|
||
| # CA5394: Random inseguro - CRÍTICO para segurança criptográfica | ||
| dotnet_diagnostic.CA5394.severity = error # Random is an insecure random number generator | ||
|
|
||
| # CA2100: SQL Injection - CRÍTICO para segurança de dados | ||
| dotnet_diagnostic.CA2100.severity = error # Review if the query string accepts any user input | ||
|
|
||
| # Parameter naming conflicts with reserved keywords | ||
| dotnet_diagnostic.CA1716.severity = none # Rename parameter so that it no longer conflicts with reserved keywords | ||
|
|
||
| # Regras de estilo menos críticas | ||
| dotnet_diagnostic.CA1305.severity = none # Specify IFormatProvider | ||
| dotnet_diagnostic.CA1307.severity = none # Specify StringComparison for clarity | ||
| dotnet_diagnostic.CA1310.severity = none # Specify StringComparison for performance | ||
| dotnet_diagnostic.CA1304.severity = none # Specify CultureInfo | ||
| dotnet_diagnostic.CA1308.severity = none # Normalize strings to uppercase | ||
|
|
||
| # Performance (sugestões) | ||
| dotnet_diagnostic.CA1863.severity = suggestion # Cache CompositeFormat for repeated use | ||
| dotnet_diagnostic.CA1869.severity = suggestion # Cache and reuse JsonSerializerOptions instances | ||
| dotnet_diagnostic.CA1860.severity = suggestion # Prefer comparing Count to 0 rather than using Any() | ||
| dotnet_diagnostic.CA1851.severity = suggestion # Possible multiple enumerations of IEnumerable | ||
| dotnet_diagnostic.CA1859.severity = suggestion # Change return type for improved performance | ||
| dotnet_diagnostic.CA1822.severity = suggestion # Member does not access instance data and can be marked as static | ||
|
|
||
| # Type sealing e organização | ||
| dotnet_diagnostic.CA1852.severity = none # Type can be sealed because it has no subtypes | ||
| dotnet_diagnostic.CA1812.severity = none # Internal class that is apparently never instantiated | ||
| dotnet_diagnostic.CA1050.severity = none # Declare types in namespaces (Program class) | ||
| dotnet_diagnostic.CA1052.severity = none # Static holder types should be static (Program class) | ||
|
|
||
| # Configurações de API | ||
| dotnet_diagnostic.CA2227.severity = none # Collection properties should be read-only (configuration POCOs) | ||
| dotnet_diagnostic.CA1002.severity = none # Do not expose generic lists (configuration POCOs) | ||
| dotnet_diagnostic.CA1056.severity = none # Use Uri instead of string for URL properties (configuration classes) | ||
|
|
||
| # Exception handling específico | ||
| dotnet_diagnostic.CA1032.severity = none # Exception constructors (custom exceptions) | ||
| dotnet_diagnostic.CA1040.severity = none # Avoid empty interfaces (marker interfaces) | ||
|
|
||
| # Domain naming conventions | ||
| dotnet_diagnostic.CA1720.severity = none # Identifiers contain type names (domain naming) | ||
| dotnet_diagnostic.CA1711.severity = none # Types end with reserved suffixes (domain naming) | ||
| dotnet_diagnostic.CA1724.severity = none # Type name conflicts with namespace name | ||
| dotnet_diagnostic.CA1725.severity = none # Parameter name should match interface declaration | ||
|
|
||
| # Operadores e conversões | ||
| dotnet_diagnostic.CA2225.severity = none # Operator overloads provide named alternatives (value objects) | ||
| dotnet_diagnostic.CA1866.severity = suggestion # Use char overloads for StartsWith | ||
| dotnet_diagnostic.CA2234.severity = none # Use URI overload instead of string overload | ||
|
|
||
| # Generics | ||
| dotnet_diagnostic.CA1000.severity = none # Do not declare static members on generic types | ||
| dotnet_diagnostic.CA2955.severity = none # Use comparison to default(T) instead | ||
|
|
||
| # ===================================== | ||
| # REGRAS ESPECÍFICAS PARA TESTES | ||
| # ===================================== | ||
| [**/*Test*.cs,**/Tests/**/*.cs,**/tests/**/*.cs,**/MeAjudaAi.*.Tests/**/*.cs,**/Modules/**/Tests/**/*.cs] | ||
|
|
||
| # Relaxar regras críticas APENAS em testes | ||
| dotnet_diagnostic.CA2007.severity = none # ConfigureAwait não necessário em testes | ||
| dotnet_diagnostic.CA1031.severity = none # Catch genérico OK em testes | ||
| dotnet_diagnostic.CA1062.severity = none # Validação de null menos crítica em testes | ||
| dotnet_diagnostic.CA5394.severity = suggestion # Random pode ser usado em dados de teste | ||
| dotnet_diagnostic.CA2100.severity = suggestion # SQL dinâmico pode ser usado em testes | ||
|
|
||
| # Nullable warnings em testes (intencionalmente testando cenários null) | ||
| dotnet_diagnostic.CS8604.severity = none # Possible null reference argument - OK em testes de validação | ||
| dotnet_diagnostic.CS8625.severity = none # Cannot convert null literal to non-nullable reference - OK em testes | ||
|
|
||
| # Test-specific warnings (noise in test context) | ||
| dotnet_diagnostic.CA1707.severity = none # Remove underscores from member names (common in test methods) | ||
| dotnet_diagnostic.CA1303.severity = none # Use resource tables instead of literal strings (console logging in tests) | ||
| dotnet_diagnostic.CA1054.severity = none # Use Uri instead of string for URL parameters (test helpers) | ||
| dotnet_diagnostic.CA1816.severity = none # Call GC.SuppressFinalize in DisposeAsync (test infrastructure) | ||
| dotnet_diagnostic.CA1311.severity = none # Specify culture for string operations (test data) | ||
| dotnet_diagnostic.CA1823.severity = none # Unused fields (test assemblies) | ||
| dotnet_diagnostic.CA1508.severity = none # Dead code conditions (test scenarios) | ||
| dotnet_diagnostic.CA1034.severity = none # Do not nest types (test factories) | ||
| dotnet_diagnostic.CA1051.severity = none # Do not declare visible instance fields (test fixtures) | ||
| dotnet_diagnostic.CA2213.severity = none # Disposable fields not disposed (test containers) | ||
| dotnet_diagnostic.CA1819.severity = none # Properties should not return arrays (test data) | ||
| dotnet_diagnostic.CA1024.severity = none # Use properties where appropriate (test helpers) | ||
| dotnet_diagnostic.CA2263.severity = none # Prefer generic overloads (test assertions) | ||
| dotnet_diagnostic.CA5351.severity = suggestion # Broken cryptographic algorithms OK for test data | ||
| dotnet_diagnostic.CA2201.severity = none # Exception type System.Exception is not sufficiently specific (test mocks) | ||
|
|
||
| # Performance and code quality (relaxed for tests) | ||
| dotnet_diagnostic.CA1827.severity = none # Use Any() instead of Count() (test validations) | ||
| dotnet_diagnostic.CA1829.severity = none # Use Count property instead of Enumerable.Count (test validations) | ||
| dotnet_diagnostic.CA1826.severity = none # Use indexable collections directly (test data) | ||
| dotnet_diagnostic.CA1861.severity = none # Prefer static readonly fields over constant arrays (micro-optimization) | ||
| dotnet_diagnostic.CA1063.severity = none # Implement IDisposable correctly (test infrastructure) | ||
| dotnet_diagnostic.CA1721.severity = none # Property names confusing with methods (test mocks) | ||
| dotnet_diagnostic.CA2214.severity = none # Do not call overridable methods in constructors (test base classes) | ||
| dotnet_diagnostic.CA2254.severity = none # Logging message template should not vary (test logging) | ||
| dotnet_diagnostic.CA2208.severity = none # Argument exception parameter names (test scenarios) | ||
| dotnet_diagnostic.CA2215.severity = none # Dispose methods should call base.Dispose (test infrastructure) | ||
|
|
||
| # xUnit specific suppressions (globally disabled to reduce noise during .NET 10 migration) | ||
| dotnet_diagnostic.xUnit1012.severity = none # Null should not be used for type parameter (common in test data) | ||
| dotnet_diagnostic.xUnit1051.severity = none # Use TestContext.Current.CancellationToken (755+ warnings, intentionally disabled) | ||
|
|
||
| # Code analysis suppressions for test code | ||
| dotnet_diagnostic.CA2000.severity = none # Dispose objects before losing scope (false positives in test code like StringContent) | ||
|
|
||
| # ===================================== | ||
| # IDE STYLE RULES (TODOS OS ARQUIVOS) | ||
| # ===================================== | ||
| [*.cs] | ||
|
|
||
| # IDE style warnings (non-critical formatting) | ||
| dotnet_diagnostic.IDE0057.severity = suggestion # Substring can be simplified | ||
| dotnet_diagnostic.IDE0130.severity = none # Namespace does not match folder structure (legacy projects) | ||
| dotnet_diagnostic.IDE0010.severity = suggestion # Populate switch | ||
| dotnet_diagnostic.IDE0040.severity = none # Accessibility modifiers required (interface members are public by default) | ||
| dotnet_diagnostic.IDE0039.severity = none # Use local function instead of lambda (style preference) | ||
| dotnet_diagnostic.IDE0061.severity = none # Use block body for local function (style preference) | ||
| dotnet_diagnostic.IDE0062.severity = none # Local function can be made static (micro-optimization) | ||
| dotnet_diagnostic.IDE0036.severity = none # Modifiers are not ordered (cosmetic) | ||
| dotnet_diagnostic.IDE0022.severity = none # Use block body for method (endpoint style preference) | ||
| dotnet_diagnostic.IDE0120.severity = none # Simplify LINQ expression (test scenarios) | ||
| dotnet_diagnostic.IDE0060.severity = none # Remove unused parameter | ||
| dotnet_diagnostic.IDE0059.severity = none # Unnecessary assignment of a value | ||
| dotnet_diagnostic.IDE0200.severity = none # Lambda expression can be removed | ||
| dotnet_diagnostic.IDE0290.severity = none # Use primary constructor | ||
| dotnet_diagnostic.IDE0301.severity = none # Collection initialization can be simplified | ||
| dotnet_diagnostic.IDE0305.severity = none # Collection initialization can be simplified | ||
| dotnet_diagnostic.IDE0052.severity = none # Private member can be removed as the value assigned is never read | ||
| dotnet_diagnostic.IDE0078.severity = none # Use pattern matching | ||
| dotnet_diagnostic.IDE0005.severity = none # Using directive is unnecessary | ||
|
|
||
| # ===================================== | ||
| # SONAR/THIRD-PARTY ANALYZER RULES | ||
| # ===================================== | ||
| [*.cs] | ||
|
|
||
| # SonarSource rules | ||
| dotnet_diagnostic.S1118.severity = none # Utility classes should not have public constructors | ||
| dotnet_diagnostic.S3903.severity = none # Types should be declared in named namespaces | ||
| dotnet_diagnostic.S3267.severity = none # Loops should be simplified using LINQ (readability preference) | ||
| dotnet_diagnostic.S1066.severity = none # Mergeable if statements (readability preference) | ||
| dotnet_diagnostic.S6610.severity = none # StartsWith overloads | ||
| dotnet_diagnostic.S6608.severity = none # Use indexing instead of LINQ Last | ||
| dotnet_diagnostic.S3246.severity = none # Generic type parameter covariance | ||
| dotnet_diagnostic.S2326.severity = none # Unused type parameters | ||
| dotnet_diagnostic.S3260.severity = none # Record classes should be sealed | ||
| dotnet_diagnostic.S4487.severity = none # Unread private fields (metrics fields) | ||
| dotnet_diagnostic.S1135.severity = none # TODO comments | ||
| dotnet_diagnostic.S1133.severity = none # Deprecated code comments | ||
| dotnet_diagnostic.S1186.severity = none # Empty methods (migration methods) | ||
| dotnet_diagnostic.S3427.severity = none # Method signature overlap | ||
| dotnet_diagnostic.S1144.severity = none # Unused private methods | ||
| dotnet_diagnostic.S125.severity = none # Remove commented code | ||
| dotnet_diagnostic.S3400.severity = none # Methods that return constants | ||
| dotnet_diagnostic.S3875.severity = none # Remove this overload of operator | ||
| dotnet_diagnostic.S1481.severity = none # Remove the unused local variable | ||
| dotnet_diagnostic.S1172.severity = none # Remove this unused method parameter | ||
| dotnet_diagnostic.S1854.severity = none # Remove this useless assignment to local variable | ||
| dotnet_diagnostic.S2139.severity = none # Either log this exception and handle it, or rethrow it | ||
| dotnet_diagnostic.S2234.severity = none # Parameters have the same names but not the same order | ||
| dotnet_diagnostic.S2325.severity = none # Make this method static | ||
| dotnet_diagnostic.S2955.severity = none # Use comparison to default(T) instead | ||
| dotnet_diagnostic.S3358.severity = none # Extract this nested ternary operation | ||
| dotnet_diagnostic.S6667.severity = none # Logging in a catch clause should pass the caught exception | ||
| dotnet_diagnostic.S927.severity = none # Rename parameter to match interface declaration | ||
|
|
||
| # ===================================== | ||
| # COMPILER WARNINGS | ||
| # ===================================== | ||
| [*.cs] | ||
|
|
||
| # Compiler warnings (less critical in test context) | ||
| dotnet_diagnostic.CS1570.severity = none # XML comment malformed (test documentation) | ||
| dotnet_diagnostic.CS1998.severity = none # Async method lacks await (test methods) | ||
| dotnet_diagnostic.CS8321.severity = none # Local function declared but never used (test helpers) | ||
|
|
||
| # ===================================== | ||
| # NUGET E BUILD WARNINGS | ||
| # ===================================== | ||
| [*.cs] | ||
|
|
||
| # NuGet package warnings | ||
| dotnet_diagnostic.NU1603.severity = none # Package dependency version conflicts | ||
| dotnet_diagnostic.NU1605.severity = none # Package downgrade warnings | ||
|
|
||
| # ===================================== | ||
| # ORGANIZAÇÃO E FORMATAÇÃO | ||
| # ===================================== | ||
| [*.cs] | ||
|
|
||
| # Organização de usings | ||
| dotnet_sort_system_directives_first = true | ||
| dotnet_separate_import_directive_groups = false | ||
|
|
||
| # Preferências de qualidade de código | ||
| dotnet_analyzer_diagnostic.category-roslynator.severity = warning | ||
|
|
||
| # ===================================== | ||
| # REGRAS ESPECÍFICAS PARA MIGRATIONS | ||
| # ===================================== | ||
| [**/Migrations/**/*.cs] | ||
|
|
||
| # Relaxar todas as regras em migrations (código gerado) | ||
| dotnet_diagnostic.CA1062.severity = none | ||
| dotnet_diagnostic.CA2000.severity = none | ||
| dotnet_diagnostic.CA5394.severity = none | ||
| dotnet_diagnostic.CA2100.severity = none | ||
| dotnet_diagnostic.CA1031.severity = none | ||
| dotnet_diagnostic.CA2007.severity = none | ||
frigini marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.