affaan-m/ECC/docs/tr/skills/quarkus-verification/SKILL.md
quarkus-verification
Verification loop for Quarkus projects: build, static analysis, tests with coverage, security scans, native compilation, and diff review before release or PR.
- Source repository stars
- 234,327
- Declared platforms
- 0
- Static risk flags
- 2
- Last source update
- 2026-07-27
- Source checked
- 2026-07-28
Decision brief
What it does—and where it fits
PR'lardan önce, büyük değişikliklerden sonra ve deployment öncesi çalıştırın.
Not for
- Tasks that require unconfirmed production actions or broad system permissions.
- Environments where the pinned source and install steps cannot be inspected.
Compatibility matrix
Platform support, with evidence labels
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
Inspect first. Install second.
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/affaan-m/ECC --skill "docs/tr/skills/quarkus-verification"Inspect the Agent Skill "quarkus-verification" from https://github.com/affaan-m/ECC/blob/4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38/docs/tr/skills/quarkus-verification/SKILL.md at commit 4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
What the source asks the agent to do
- 01
Ne Zaman Aktif Edilir
Quarkus servisi için pull request açmadan önce
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.
Review and apply the “Faz 1: Build” source section. - 03
Maven
mvn clean verify -DskipTests
mvn clean verify -DskipTests - 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
./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
Kullanılmayan import'lar veya değişkenlerKarmaşık metodlar (yüksek cyclomatic complexity)Potansiyel null pointer dereference'ları
Permission review
Static risk signals and limitations
Network access
The documentation includes network, browsing, or remote request actions.
Dsonar.host.url=http://localhost:9000 \Runs scripts
The documentation asks the agent to run terminal commands or scripts.
docker run -t owasp/zap2docker-stable zap-api-scan.py \Network access
The documentation includes network, browsing, or remote request actions.
t http://localhost:8080/q/openapi \Runs scripts
The documentation asks the agent to run terminal commands or scripts.
docker run -p 8080:8080 myorg/my-quarkus-app:1.0.0Evidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 78/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 234,327 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Provenance and original SKILL.md
- Repository
- affaan-m/ECC
- Skill path
- docs/tr/skills/quarkus-verification/SKILL.md
- Commit
- 4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38
- License
- MIT
- Collected
- 2026-07-28
- Default branch
- main
View the original SKILL.md
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.includesile 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
Alternatives
Compare before choosing
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.
affaan-m/ECC
quarkus-verification
Use it for testing and documentation tasks; the detail page covers purpose, installation, and practical steps.
K-Dense-AI/scientific-agent-skills
simpy
Build, inspect, test, and analyze bounded process-based discrete-event simulations with SimPy, including events, resources, interrupts, monitoring, replications, warm-up, and reproducible output analysis.
affaan-m/ECC
django-verification
Verification loop for Django projects: migrations, linting, tests with coverage, security scans, and deployment readiness checks before release or PR.