Ir para o conteúdo principal

SonarQube

Quality Gate

O Sonarqube possui um quality gate padrão, que possui diversas regras e padrões de código, mas como nossa mãe sempre diz "você não é todo mundo", então fizemos ajustes para atender aspectos usuais da SETIC.

As regras de exclusões no quality gate personalizado foram definidas em conversa entre os desenvolvedores e a liderança técnica. Sugestões de personalização do quality gate são sempre bem-vindas, sintam-se a vontade para sugerir.

C#

Exclusões de Security Hotspots, Code Smells, Bugs e Duplicidades

**/obj/**, **/bin/**, **/*Language.Designer.cs, **/*.generated.cs:

Classes, diretórios e arquivos gerados pelo Visual Studio que podem não ter sido ignorados no gitignore acidentalmente

**/Migrations/**:

Diretório de migrations gerados pelo Entity Framework

**/*.jpg:

Imagens

**/Seeds/**:

Diretório onde se encontram arquivos de preenchimento de dados para o banco de dados

**/InjecaoDeDependencia.cs:

Arquivo de configuração da injeção de dependência

**/wwwroot/lib/**:

Diretório onde se encontram bibliotecas frontend de terceiros

**/OpenShiftEnvironment.cs, **/Openshift.cs:

Classe de configuração do OpenShift. Essa classe não é mais necessárias nos projetos visto que foi criado uma biblioteca encapsulando a mesma

Exclusões de Duplicidade

**/Mapeamento/**, **/mapeamento/**, **/Mapping/**, **/mapping/**:

Diretório onde se encontram arquivos de mapeamentos Classe-Tabela do ORM

**/*_Layout*.cshtml

Arquivo de layout

Exclusões de Testes

**/obj/**, **/bin/**, **/*Language.Designer.cs, **/*.generated.cs:

Classes, diretórios e arquivos gerados pelo Visual Studio que podem não ter sido ignorados no gitignore acidentalmente

**/*.xml:

Arquivos XML

**/Migrations/**:

Diretório de migrations gerados pelo Entity Framework

**/OpenShiftEnvironment.cs, **/Openshift.cs:

Classe de configuração do OpenShift

**/Program.cs, **/Startup.cs:

Classes de inicialização e configuração do projeto

**/*.html, **/*.cshtml:

Arquivos de linguagem de marcação

**/*.js:

Arquivo de scripts

**/*.css:

Arquivo de estilo

**/Controllers/**:

Controllers são apenas orquestradores, não devem possuir regras de negócio

**/wwwroot/**:

Diretório que possui arquivos estáticos como arquivos de estilos, logos, ícones...

**/Contexto/**, **/contexto/**:

Diretório onde se encontram os contextos (classes de configuração do ORM)

**/Mapeamento/**, **/mapeamento/**, **/Mapping/**, **/mapping/**:

Diretório onde se encontram arquivos de mapeamentos Classe-Tabela do ORM

**/Persistencias/**, **/persistencias/**, **/Repositorios/**, **/Repository/**, **/Repositories/**:

Diretório onde se encontram as classes de consulta, não devem possuir regras de negócio

**/*HostedService.cs:

HostedServices devem apenas servir como orquestrador de uma rotina, não deve possuir regra de negócio

**/*DTO.cs, **/*Dto.cs:

Classes de transferência de dados, não devem possuir regras de negócio

**/*ViewModel.cs:

Classes que representam dados de uma view, não devem possuir regras de negócio