affaan-m/ECC

quarkus-verification

Verification loop for Quarkus projects: build, static analysis, tests with coverage, security scans, native compilation, and diff review before release or PR.

78CollectingNetwork accessRuns scripts
See how to use itView GitHub source
npx skills add https://github.com/affaan-m/ECC --skill "docs/tr/skills/quarkus-verification"
Automated source guide

Source checked Jul 28, 2026·Refresh due Oct 26, 2026

Reorganized from the pinned upstream SKILL.md

Turn quarkus-verification's source instructions into a guide you can follow

According to the pinned SKILL.md from affaan-m/ECC: PR'lardan önce, büyük değişikliklerden sonra ve deployment öncesi çalıştırın.

npx skills add https://github.com/affaan-m/ECC --skill "docs/tr/skills/quarkus-verification"
Check the pinned source

Best fit

  • Verification loop for Quarkus projects: build, static analysis, tests with coverage, security scans, native compilation, and diff review before release or PR.

Bring this context

  • A concrete task that matches the documented purpose of quarkus-verification.
  • The files, examples, or context the task depends on.
  • Your constraints, target environment, and definition of done.

Expected outputs

  • A result that follows the pinned quarkus-verification instructions.
  • A concise record of assumptions, inputs used, and unresolved questions.
  • A final check against the source workflow and relevant permission signals.

Key source sections

Read quarkus-verification through these 5 source sections

Sections are extracted automatically from the pinned SKILL.md and link back to the source.

01

Ne Zaman Aktif Edilir

Quarkus servisi için pull request açmadan önce

SKILL.md · Ne Zaman Aktif Edilir
Quarkus servisi için pull request açmadan önceBüyük refactoring veya bağımlılık yükseltmelerinden sonraStaging veya production için deployment öncesi doğrulama
02

Faz 1: Build

Review the “Faz 1: Build” section in the pinned source before continuing.

SKILL.md · Faz 1: Build
Review and apply the “Faz 1: Build” source section.
04

Gradle

./gradlew clean assemble -x test bash mvn checkstyle:check pmd:check spotbugs:check bash mvn sonar:sonar \ -Dsonar.projectKey=my-quarkus-project \ -Dsonar.host.url=http://localhost:9000 \ -Dsonar.login=${SONARTOKEN} bash

SKILL.md · Gradle
./gradlew clean assemble -x test bash mvn checkstyle:check pmd:check spotbugs:check bash mvn sonar:sonar \ -Dsonar.projectKey=my-quarkus-project \ -Dsonar.host.url=http://localhost:9000 \ -Dsonar.login=${SONARTOKEN} bash
05

Faz 2: Static Analiz

Kullanılmayan import'lar veya değişkenler

SKILL.md · Faz 2: Static Analiz
Kullanılmayan import'lar veya değişkenlerKarmaşık metodlar (yüksek cyclomatic complexity)Potansiyel null pointer dereference'ları

SkillSignal prompt templates

Provide the task, context, and acceptance criteria

These prompts were written by SkillSignal from the source structure; they are not upstream text.

Task-start prompt

Confirm source fit, inputs, and outputs before acting.

Use quarkus-verification to help me with: [specific task]. Context: [files, data, or background]. Constraints: [environment, scope, and prohibited actions]. Before acting, check the pinned SKILL.md and explain which sections apply, what inputs are still missing, and what you will deliver.

Source-guided execution

Make the Agent explicitly follow the key extracted sections.

Apply the pinned quarkus-verification source to [task]. Pay particular attention to these source sections: “Ne Zaman Aktif Edilir”, “Faz 1: Build”, “Maven”, “Gradle”, “Faz 2: Static Analiz”. Preserve the important decision at each step. Mark facts not covered by the source as “needs confirmation” instead of inventing them. Then verify the result against my acceptance criteria: [criteria].

Result-review prompt

Check omissions, permissions, and source drift before delivery.

Review the current quarkus-verification result: (1) does it satisfy the original task; (2) were any applicable steps or limits in the pinned SKILL.md missed; (3) did it perform any unauthorized file, command, network, or data action; and (4) which conclusions remain unverified? List issues first, then fix only what the source or user authorization supports.

Output checklist

Verify each item before delivery

The task matches the purpose documented in the SKILL.md.

The source section “Ne Zaman Aktif Edilir” has been checked.

The source section “Faz 1: Build” has been checked.

The source section “Maven” has been checked.

The source section “Gradle” has been checked.

Inputs, constraints, and acceptance criteria are explicit.

Unverified facts, compatibility, and outcome claims are clearly marked.

Any file, command, network, or data action has been reviewed.

Choose a different workflow

When another Skill is the better fit

FAQ

What does quarkus-verification do?

PR'lardan önce, büyük değişikliklerden sonra ve deployment öncesi çalıştırın.

How do I start using quarkus-verification?

The catalog detected this source-specific install command: npx skills add https://github.com/affaan-m/ECC --skill "docs/tr/skills/quarkus-verification". Inspect the command and pinned source before running it.

Which Agent platforms does it declare?

No dedicated Agent platform is declared in the pinned source record.

Repository stars
234,327
Repository forks
35,711
Quality
78/100
Source repository last pushed

Quality breakdown

Based on traceable docs and repository signals; stars are not treated as quality.

78/100
Documentation29/30
Specificity16/25
Maintenance20/20
Trust signals13/25
View original Skill.mdThis page is parsed directly from the repository SKILL.md without editorial rewriting. Collected: Jul 28, 2026 · about 3 min

Quarkus Doğrulama Döngüsü

PR'lardan önce, büyük değişikliklerden sonra ve deployment öncesi çalıştırın.

Ne Zaman Aktif Edilir

  • Quarkus servisi için pull request açmadan önce
  • Büyük refactoring veya bağımlılık yükseltmelerinden sonra
  • Staging veya production için deployment öncesi doğrulama
  • Tam build → lint → test → güvenlik taraması → native derleme pipeline'ı çalıştırma
  • Test kapsamının eşikleri karşıladığını doğrulama (%80+)
  • Native image uyumluluğunu test etme

Faz 1: Build

# Maven
mvn clean verify -DskipTests

# Gradle
./gradlew clean assemble -x test

Build başarısız olursa, durdurun ve derleme hatalarını düzeltin.

Faz 2: Static Analiz

Checkstyle, PMD, SpotBugs (Maven)

mvn checkstyle:check pmd:check spotbugs:check

SonarQube (yapılandırılmışsa)

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

Ele Alınacak Yaygın Sorunlar

  • Kullanılmayan import'lar veya değişkenler
  • Karmaşık metodlar (yüksek cyclomatic complexity)
  • Potansiyel null pointer dereference'ları
  • SpotBugs tarafından işaretlenen güvenlik sorunları

Faz 3: Testler + Kapsam

# Tüm testleri çalıştır
mvn clean test

# Kapsam raporu oluştur
mvn jacoco:report

# Kapsam eşiğini zorla (%80)
mvn jacoco:check

# Veya Gradle ile
./gradlew test jacocoTestReport jacocoTestCoverageVerification

Test Kategorileri

Unit Testler

Mock'lanmış bağımlılıklarla servis mantığını test edin:

@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() void döndürür — doNothing + verify kullanın
    doNothing().when(userRepository).persist(any(User.class));

    User result = userService.create(dto);

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

Entegrasyon Testleri

Gerçek veritabanıyla (Testcontainers) test edin:

@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");
  }
}

API Testleri

REST Assured ile REST endpoint'lerini test edin:

@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);
  }
}

Kapsam Raporu

Ayrıntılı kapsam için target/site/jacoco/index.html sayfasını kontrol edin:

  • Genel satır kapsamı (hedef: %80+)
  • Branch kapsamı (hedef: %70+)
  • Kapsanmamış kritik yolları belirleyin

Faz 4: Güvenlik Taraması

Bağımlılık Güvenlik Açıkları (Maven)

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

CVE'ler için target/dependency-check-report.html raporunu inceleyin.

Quarkus Güvenlik Denetimi

# Güvenlik açığı olan extension'ları kontrol et
mvn quarkus:audit

# Tüm extension'ları listele
mvn quarkus:list-extensions

OWASP ZAP (API Güvenlik Testi)

docker run -t owasp/zap2docker-stable zap-api-scan.py \
  -t http://localhost:8080/q/openapi \
  -f openapi

Yaygın Güvenlik Kontrolleri

  • Tüm gizli bilgiler ortam değişkenlerinde (kodda değil)
  • Tüm endpoint'lerde girdi doğrulama
  • Kimlik doğrulama/yetkilendirme yapılandırılmış
  • CORS düzgün yapılandırılmış
  • Güvenlik başlıkları ayarlanmış
  • Parolalar BCrypt ile hash'lenmiş
  • SQL injection koruması (parametreli sorgular)
  • Genel endpoint'lerde rate limiting

Faz 5: Native Derleme

GraalVM native image uyumluluğunu test edin:

# Native executable oluştur
mvn package -Dnative

# Veya container ile
mvn package -Dnative -Dquarkus.native.container-build=true

# Native executable'ı test et
./target/*-runner

# Temel smoke testleri çalıştır
curl http://localhost:8080/q/health/live
curl http://localhost:8080/q/health/ready

Native Image Sorun Giderme

Yaygın sorunlar:

  • Reflection: Dinamik sınıflar için reflection yapılandırması ekleyin
  • Resources: quarkus.native.resources.includes ile kaynakları dahil edin
  • JNI: Native kütüphaneler kullanıyorsanız JNI sınıflarını kaydedin

Örnek reflection yapılandırması:

@RegisterForReflection(targets = {MyDynamicClass.class})
public class ReflectionConfiguration {}

Faz 6: Performans Testi

K6 ile Yük Testi

// load-test.js
import http from 'k6/http';
import { check } from 'k6';

export const options = {
  stages: [
    { duration: '30s', target: 50 },
    { duration: '1m', target: 100 },
    { duration: '30s', target: 0 },
  ],
};

export default function () {
  const res = http.get('http://localhost:8080/api/markets');
  check(res, {
    'status is 200': (r) => r.status === 200,
    'response time < 200ms': (r) => r.timings.duration < 200,
  });
}

Çalıştırın:

k6 run load-test.js

İzlenecek Metrikler

  • Yanıt süresi (p50, p95, p99)
  • Throughput (istek/saniye)
  • Hata oranı
  • Bellek kullanımı
  • CPU kullanımı

Faz 7: Sağlık Kontrolleri

# Liveness
curl http://localhost:8080/q/health/live

# Readiness
curl http://localhost:8080/q/health/ready

# Tüm sağlık kontrolleri
curl http://localhost:8080/q/health

# Metrikler (etkinleştirilmişse)
curl http://localhost:8080/q/metrics

Beklenen yanıtlar:

{
  "status": "UP",
  "checks": [
    {
      "name": "Database connection",
      "status": "UP"
    }
  ]
}

Faz 8: Container Image Build

# Container image oluştur
mvn package -Dquarkus.container-image.build=true

# Veya belirli registry ile
mvn package \
  -Dquarkus.container-image.build=true \
  -Dquarkus.container-image.registry=docker.io \
  -Dquarkus.container-image.group=myorg \
  -Dquarkus.container-image.tag=1.0.0

# Container'ı test et
docker run -p 8080:8080 myorg/my-quarkus-app:1.0.0

Container Güvenlik Taraması

# Trivy
trivy image myorg/my-quarkus-app:1.0.0

# Grype
grype myorg/my-quarkus-app:1.0.0

Faz 9: Yapılandırma Doğrulama

# Tüm yapılandırma özelliklerini kontrol et
mvn quarkus:info

# Tüm yapılandırma kaynaklarını listele
curl http://localhost:8080/q/dev/io.quarkus.quarkus-vertx-http/config

Ortama Özgü Kontroller

  • Veritabanı URL'leri ortam başına yapılandırılmış
  • Gizli bilgiler dışsallaştırılmış (Vault, ortam değişkenleri)
  • Loglama seviyeleri uygun
  • CORS origin'leri doğru ayarlanmış
  • Rate limiting yapılandırılmış
  • İzleme/tracing etkinleştirilmiş

Faz 10: Dokümantasyon İncelemesi

  • OpenAPI/Swagger dokümanları güncel (/q/swagger-ui)
  • README kurulum talimatlarını içeriyor
  • API değişiklikleri belgelenmiş
  • Breaking change'ler için migration rehberi
  • Yapılandırma özellikleri belgelenmiş

OpenAPI spec oluşturun:

curl http://localhost:8080/q/openapi -o openapi.json

Doğrulama Kontrol Listesi

Kod Kalitesi

  • Build uyarısız geçiyor
  • Static analiz temiz (yüksek/orta sorun yok)
  • Kod ekip kurallarını takip ediyor
  • PR'da yorum satırına alınmış kod veya TODO yok

Test

  • Tüm testler geçiyor
  • Kod kapsamı ≥ %80
  • Gerçek veritabanıyla entegrasyon testleri
  • Güvenlik testleri geçiyor
  • Performans kabul edilebilir sınırlar içinde

Güvenlik

  • Bağımlılık güvenlik açığı yok
  • Kimlik doğrulama/yetkilendirme test edilmiş
  • Girdi doğrulama tamamlanmış
  • Gizli bilgiler kaynak kodda değil
  • Güvenlik başlıkları yapılandırılmış

Deployment

  • Native derleme başarılı
  • Container image oluşturuluyor
  • Sağlık kontrolleri doğru yanıt veriyor
  • Hedef ortam için yapılandırma geçerli

Native Image

  • Native executable oluşturuluyor
  • Native testler geçiyor
  • Başlangıç süresi < 100ms
  • Bellek ayak izi kabul edilebilir

Otomatik Doğrulama Script'i

#!/bin/bash
set -e

echo "=== Faz 1: Build ==="
mvn clean verify -DskipTests

echo "=== Faz 2: Static Analiz ==="
mvn checkstyle:check pmd:check spotbugs:check

echo "=== Faz 3: Testler + Kapsam ==="
mvn test jacoco:report jacoco:check

echo "=== Faz 4: Güvenlik Taraması ==="
mvn org.owasp:dependency-check-maven:check

echo "=== Faz 5: Native Derleme ==="
mvn package -Dnative -Dquarkus.native.container-build=true

echo "=== Tüm Fazlar Tamamlandı ==="
echo "Raporları inceleyin:"
echo "  - Kapsam: target/site/jacoco/index.html"
echo "  - Güvenlik: target/dependency-check-report.html"
echo "  - Native: target/*-runner"

CI/CD Entegrasyonu

GitHub Actions Örneği

name: Verification

on: [push, pull_request]

jobs:
  verify:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Set up JDK 21
        uses: actions/setup-java@v3
        with:
          java-version: '21'
          distribution: 'temurin'

      - name: Cache Maven packages
        uses: actions/cache@v3
        with:
          path: ~/.m2
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}

      - name: Build
        run: mvn clean verify -DskipTests

      - name: Test with Coverage
        run: mvn test jacoco:report jacoco:check

      - name: Security Scan
        run: mvn org.owasp:dependency-check-maven:check

      - name: Upload Coverage
        uses: codecov/codecov-action@v3
        with:
          files: target/site/jacoco/jacoco.xml

En İyi Uygulamalar

  • Her PR öncesi doğrulama döngüsünü çalıştırın
  • CI/CD pipeline'ında otomatize edin
  • Sorunları hemen düzeltin; borç biriktirmeyin
  • Kapsamı %80'in üzerinde tutun
  • Bağımlılıkları düzenli olarak güncelleyin
  • Native derlemeyi periyodik olarak test edin
  • Performans trendlerini izleyin
  • Breaking change'leri belgeleyin
  • Güvenlik tarama sonuçlarını inceleyin
  • Her ortam için yapılandırmayı doğrulayın
Source repo
affaan-m/ECC
Skill path
docs/tr/skills/quarkus-verification/SKILL.md
Commit SHA
4e973d3eaf92
Repository license
MIT
Data collected