Pular para o conteúdo
Skillpedia
Diversos280 mil · #109

quarkus-verification

Ajuda seu agente a verificar a qualidade de projetos Quarkus. Ele executa testes, análises de segurança e compilação para garantir que tudo esteja pronto antes de enviar para revisão ou implantação.

O que ela faz

Verifica se um projeto Quarkus está pronto para ser enviado ou implantado. Ele compila o código, analisa a qualidade, executa testes, verifica a segurança e testa a versão compilada para produção.

Quando usar

  • ✓Antes de enviar alterações para revisão.
  • ✓Após fazer grandes mudanças no código ou atualizar bibliotecas.
  • ✓Antes de colocar o programa no ar (produção).

Exemplo do que pedir para a IA

“Verifique meu projeto Quarkus antes de enviar.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/affaan-m/ECC/blob/main/pi/core/skills/quarkus-verification/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/affaan-m/ECC/blob/main/pi/core/skills/quarkus-verification/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

O agente compila seu código, verifica se há erros de programação e segurança, executa todos os testes para garantir que tudo funciona e testa a versão final que será usada.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add affaan-m/ECC --skill quarkus-verification

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/pi/core/skills/quarkus-verification/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Loop de Verificação do Quarkus

Execute antes de PRs, após grandes mudanças e pré-implantação.

Quando Ativar

  • Antes de abrir um pull request para um serviço Quarkus
  • Após refatoração importante ou atualizações de dependência
  • Verificação pré-implantação para staging ou produção
  • Executando o pipeline completo de build → lint → test → security scan → compilação nativa
  • Validando se a cobertura de testes atende aos limites (80%+)
  • Testando a compatibilidade da imagem nativa

Fase 1: Build

# Maven
mvn clean verify -DskipTests

# Gradle
./gradlew clean assemble -x test

Se o build falhar, pare e corrija os erros de compilação.

Fase 2: Análise Estática

Checkstyle, PMD, SpotBugs (Maven)

mvn checkstyle:check pmd:check spotbugs:check

SonarQube (se configurado)

mvn sonar:sonar \
  -Dsonar.projectKey=my-quarkus-project \
  -Dsonar.host.url=http://localhost:9000 \
  -Dsonar.login=${SONAR_TOKEN}

Problemas Comuns a Resolver

  • Importações ou variáveis não utilizadas
  • Métodos complexos (alta complexidade ciclomática)
  • Potenciais desreferenciamentos de ponteiro nulo
  • Problemas de segurança sinalizados pelo SpotBugs

Fase 3: Testes + Cobertura

# Run all tests
mvn clean test

# Generate coverage report
mvn jacoco:report

# Enforce coverage threshold (80%)
mvn jacoco:check

# Or with Gradle
./gradlew test jacocoTestReport jacocoTestCoverageVerification

Categorias de Teste

Testes Unitários

Teste a lógica do serviço com dependências mockadas:

@ExtendWith(MockitoExtension.class)
class UserServiceTest {
  @Mock UserRepository userRepository;
  @InjectMocks UserService userService;

  @Test
  void createUser_validInput_returnsUser() {
    var dto = new CreateUserDto("Alice", "alice@example.com");

    // Panache persist() is void — use doNothing + verify
    doNothing().when(userRepository).persist(any(User.class));

    User result = userService.create(dto);

    assertThat(result.name).isEqualTo("Alice");
    verify(userRepository).persist(any(User.class));
  }
}

Testes de Integração

Teste com banco de dados real (Testcontainers):

@QuarkusTest
@QuarkusTestResource(PostgresTestResource.class)
class UserRepositoryIntegrationTest {

  @Inject
  UserRepository userRepository;

  @Test
  @Transactional
  void findByEmail_existingUser_returnsUser() {
    User user = new User();
    user.name = "Alice";
    user.email = "alice@example.com";
    userRepository.persist(user);

    Optional<User> found = userRepository.findByEmail("alice@example.com");

    assertThat(found).isPresent();
    assertThat(found.get().name).isEqualTo("Alice");
  }
}

Testes de API

Teste endpoints REST com REST Assured:

@QuarkusTest
class UserResourceTest {

  @Test
  void createUser_validInput_returns201() {
    given()
        .contentType(ContentType.JSON)
        .body("""
            {"name": "Alice", "email": "alice@example.com"}
            """)
        .when().post("/api/users")
        .then()
        .statusCode(201)
        .body("name", equalTo("Alice"));
  }

  @Test
  void createUser_invalidEmail_returns400() {
    given()
        .contentType(ContentType.JSON)
        .body("""
            {"name": "Alice", "email": "invalid"}
            """)
        .when().post("/api/users")
        .then()
        .statusCode(400);
  }
}

Relatório de Cobertura

Verifique target/site/jacoco/index.html para cobertura detalhada:

  • Cobertura geral de linhas (meta: 80%+)
  • Cobertura de branches (meta: 70%+)
  • Identifique caminhos críticos não cobertos

Fase 4: Verificação de Segurança

Vulnerabilidades de Dependência (Maven)

mvn org.owasp:dependency-check-maven:check

Revise target/dependency-check-report.html para CVEs.

Auditoria de Segurança Quarkus

# Check vulnerable extensions
mvn quarkus:audit

# List all extensions
mvn quarkus:list-extensions

OWASP ZAP (Testes de Segurança de API)

docker run -t ghcr.io/zaproxy/zaproxy:stable zap-api-scan.py \
  -t http://localhost:8080/q/openapi \
  -f openapi

Verificações Comuns de Segurança

  • Todos os segredos em variáveis de ambiente (não no código)
  • Validação de entrada em todos os endpoints
  • Autenticação/autorização configurada
  • CORS configurado corretamente
  • Cabeçalhos de segurança definidos
  • Senhas hasheadas com BCrypt
  • Proteção contra injeção de SQL (consultas parametrizadas)
  • Limitação de taxa em endpoints públicos

Fase 5: Compilação Nativa

Teste a compatibilidade da imagem nativa GraalVM:

# Construir executável nativo
mvn package -Dnative

# Ou com container

…
Perguntas frequentes

O que é Quarkus?

É um framework para criar aplicações Java mais rápidas e leves.

O que são 'testes de cobertura'?

É uma métrica que mostra qual porcentagem do seu código foi testada. O ideal é que seja alta, como 80% ou mais.

O que é 'compilação nativa'?

É um processo que transforma o código Java em um executável mais rápido e que consome menos recursos, parecido com programas feitos em outras linguagens.

Detalhes

Descrição original do autor

Verification loop for Quarkus projects: build, static analysis (Checkstyle, PMD, SpotBugs), tests with JaCoCo coverage, OWASP dependency and container security scans, GraalVM native compilation, health checks, and config validation. Use when verifying a Quarkus service before a PR, after major refactoring or dependency upgrades, or pre-deploy.

repo: affaan-m/ECC

Popularidade

Estrelas no GitHub
280 mil
Posição no ranking
#109
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas