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