Appcircle MCP Server
resmiAppcircle'ın resmi MCP Sunucusu
Appcircle MCP ile neler yapabilirsiniz?
- Derleme profillerini listele ve ara — Sayfalandırılmış derleme profillerini alın ve
get_build_profilesile ada göre filtreleyin. - Derleme yapılandırmalarını ve iş akışlarını incele — Belirli bir derleme profili, yapılandırmaları ve iş akışları için ayrıntıları
get_build_profile_details,get_build_configuration_detailsveget_workflow_detailkullanarak getirin. - İmzalama kimliklerini gözden geçir — Sertifikaları, anahtar depolarını, sağlama profillerini ve paket tanımlayıcılarını
get_certificates,get_keystores,get_provisioning_profilesveget_bundle_identifiersaracılığıyla listeleyin. - Test ve kurumsal dağıtım durumunu kontrol et —
get_distribution_profilesveget_distribution_profile_detailsile dağıtım profillerini ve uygulama sürümlerini alın veyaget_store_profilesile kurumsal mağaza profillerini inceleyin. - CI/CD sağlık ve derleme geçmişi raporları oluştur — Toplu eğilimler ve kök neden analizi için
get_build_insights_reportveya ham derleme kayıtları içinget_build_history_reportkullanın.
Dokümantasyon
Appcircle MCP Sunucusu
Appcircle için MCP sunucusu: Derleme, İmzalama Kimlikleri, Test Dağıtımı, Kurumsal Uygulama Mağazası, Mağazalara Yayınlama ve Raporlama araçlarını MCP özellikli herhangi bir istemciye (Claude Desktop, Cursor, VS Code vb.) sunar. Appcircle MCP Sunucusu, yapay zeka araçları ile Appcircle arasında bir köprü görevi görür; böylece yapay zeka ajanları, asistanları ve sohbet botları, yapılandırılmış, yönetilen ve görev düzeyinde araçlar aracılığıyla Appcircle kaynaklarına güvenli bir şekilde erişebilir ve etkileşimde bulunabilir.
Kullanım Alanları
- CI/CD ve İş Akışı Zekası: İşlem hattı çalışmalarını izleyin, sürüm durumunu takip edin ve mobil CI/CD iş akışlarınız hakkında içgörüler edinin.
- Yapılandırma ve Ortam İçgörüleri: Bir projenin nasıl yapılandırıldığını ve sorunların nereden kaynaklanabileceğini anlamak için derleme yapılandırmalarını ve imzalama kurulumunu sorgulayın.
- Raporlama ve Operasyonel İçgörüler: CI kararlılığı, yinelenen sorunlar, işlem hattı performansı ve genel CI/CD sağlığı hakkında özetler oluşturun.
Çalışma Modları
MCP sunucusunu dört şekilde kullanabilirsiniz:
| Mod | Özet |
|---|---|
| 1. Uzak ana bilgisayar | https://mcp.appcircle.io. adresine bağlanın. Yerel kurulum gerekmez; istemciniz her istekte Appcircle jetonunuzu (örn. Authorization: Bearer <token>) gönderir. |
| 2. Yerel (stdio) | Sunucuyu kaynaktan çalıştırın: depoyu klonlayın, isteğe bağlı olarak bir venv kullanın, ardından appcircle-mcp komutunu çalıştırın (varsayılan aktarım stdio'dur). Python ve pip gerektirir. Ortamda APPCIRCLE_ACCESS_TOKEN değerini ayarlayın. MCP istemciniz sunucuyu bir alt süreç olarak çalıştırır. |
| 3. Yerel (streamable-http) | Sunucuyu HTTP üzerinden yerel olarak çalıştırın: --transport streamable-http ve isteğe bağlı olarak --host / --port kullanın (örn. appcircle-mcp --transport streamable-http --host 127.0.0.1 --port 8000). İstemciler bu URL'ye bağlanır ve jetonlarını istekte gönderir. |
| 4. Yerel (Docker) | Resmi Docker imajını makinenizde çalıştırın. Docker gerektirir. İmajın varsayılan bağlantı noktasını kullanın veya --port ile geçersiz kılın; tam kullanım için imaj belgelerine bakın. |
Ayrıntılı istemci yapılandırması (Cursor, Claude vb.) özel kurulum kılavuzlarında bulunur; bu bölüm yalnızca üst düzey bir özettir.
Kurulum
İstemciye özel kurulum kılavuzları:
- Claude Uygulamaları - Claude Desktop ve Claude Code CLI için kurulum kılavuzu.
- Cursor IDE - Cursor IDE için kurulum kılavuzu.
- Codex - Codex uygulaması ve Codex CLI için kurulum kılavuzu.
- Antigravity IDE - Antigravity IDE için kurulum kılavuzu.
- VS Code (GitHub Copilot) - GitHub Copilot ile VS Code için kurulum kılavuzu.
- Windsurf IDE - Windsurf IDE için kurulum kılavuzu.
- Gemini CLI - Gemini CLI için kurulum kılavuzu.
- GitHub Copilot CLI - GitHub Copilot CLI için kurulum kılavuzu.
Yapılandırma (Ortam Değişkenleri)
| Değişken | Gerekli | Açıklama |
|---|---|---|
APPCIRCLE_ACCESS_TOKEN | Evet (yalnızca stdio) | Appcircle API erişim jetonu. stdio aktarımı kullanılırken gereklidir. streamable-http için her istemci kendi jetonunu gönderir. Nasıl alınacağı için Jeton edinme bölümüne bakın. |
APPCIRCLE_API_URL | Hayır | API temel URL'si (varsayılan: https://api.appcircle.io, kendi sunucusunda barındıran kullanıcılar için farklı olabilir). |
APPCIRCLE_MCP_ALLOWED_HOST | Hayır (yalnızca streamable-http) | MCP sunucusu için genel ana bilgisayar adı (örn. mcp.appcircle.io). Sunucunun istemcilerden gelen Host başlığını kabul etmesi için ters proxy arkasında dağıtım yaparken bunu ayarlayın. Yerel ana bilgisayar için atlayın. |
APPCIRCLE_MCP_PORT | Hayır (yalnızca streamable-http) | HTTP sunucusu için bağlantı noktası (varsayılan: 8000). Sağlanırsa --port tarafından geçersiz kılınır. Belirli bir bağlantı noktası gerektiğinde şirket içi veya Docker için kullanışlıdır. |
LOG_LEVEL | Hayır | Günlük kaydı seviyesi, örn. DEBUG, INFO (varsayılan: INFO). |
APPCIRCLE_EXCLUDED_TOOLSETS | Hayır | Hariç tutulacak virgülle ayrılmış araç setleri (örn. build_module,report). Aşağıdaki Araç Setleri bölümüne bakın. |
Bunları kabuğunuzda veya MCP istemcinizin yapılandırmasında ayarlayın.
Araç Setleri
Kullanılabilir Araç Setleri
Aşağıdaki araç setleri mevcuttur:
| Araç Seti | Açıklama |
|---|---|
build_module | Derleme profilleri, yapılandırmaları, iş akışları, commit'ler ve işlem hattı işlemleri |
signing_identities | İmzalama kimlikleri ve paket tanımlayıcıları |
testing_distribution | Test dağıtım profilleri ve dağıtım ayrıntıları |
publish_to_stores | Yayınlama profilleri ve mağaza yayınlama işlemleri |
enterprise_app_store | Kurumsal uygulama mağazası profilleri ve mağaza ayrıntıları |
report | Raporlama: derleme geçmişi, dağıtım, imzalama, yayınlama durumu ve ilgili raporlar |
Araçlarının kaydedilmemesi için bir veya daha fazla araç setini hariç tutabilirsiniz. Hariç tutmalar CLI argümanları veya APPCIRCLE_EXCLUDED_TOOLSETS ortam değişkeni aracılığıyla ayarlanabilir; her ikisi de birleştirilir (birleşim).
- CLI:
--exclude toolset1 toolset2veya--exclude-toolsets toolset1,toolset2 - Ortam:
APPCIRCLE_EXCLUDED_TOOLSETS=build_module,report
Hariç tutmalarla örnek MCP yapılandırması (Cursor / Claude Desktop):
{
"mcpServers": {
"appcircle": {
"command": "appcircle-mcp",
"args": ["--exclude", "report"]
}
}
}
Araçlar
Araçlar MCP tools/list aracılığıyla sunulur. Aşağıdaki referans, tüm araçları araç setine göre listeler; yanıt şekli ve örnekler için docs/tool_contract.md dosyasına bakın.
Derleme
-
get_build_profiles - Mevcut organizasyon için derleme profillerini alır (sayfalandırmalı). İsteğe bağlı olarak profil adına göre filtreleyin.
- Erişim seviyesi: okuma
page: Sayfa numarası (1 tabanlı). Varsayılan: 1. (sayı, isteğe bağlı)size: Sayfa boyutu (1-100). Varsayılan: 25. 100'ün üzerindeki değerler 100 ile sınırlandırılır. (sayı, isteğe bağlı)search: Profilleri ada göre filtrelemek için isteğe bağlı arama terimi (büyük/küçük harf duyarsız kısmi eşleşme). (dize, isteğe bağlı)
-
get_build_profile_details - Kimliğe göre tek bir derleme profilini, isteğe bağlı olarak derleme yapılandırmalarıyla birlikte alır.
- Erişim seviyesi: okuma
profile_id: Derleme profili kimliği (örn. UUID). (dize, gerekli)configurations: true ise, profilin derleme yapılandırmalarını da getirir. Varsayılan: false. (boolean, isteğe bağlı)
-
get_build_configuration_details - Profil kimliği ve yapılandırma kimliğine göre tek bir derleme yapılandırmasını alır.
- Erişim seviyesi: okuma
profile_id: Derleme profili kimliği (örn. UUID). (dize, gerekli)configuration_id: Derleme yapılandırması kimliği (örn. UUID). (dize, gerekli)
-
get_build_profile_workflows - Profil kimliğine göre bir derleme profili için iş akışlarını alır.
- Erişim seviyesi: okuma
profile_id: Derleme profili kimliği (örn. UUID). (dize, gerekli)
-
get_workflow_detail - Derleme profili kimliği ve iş akışı kimliğine göre tek bir iş akışını alır.
- Erişim seviyesi: okuma
profile_id: Derleme profili kimliği (örn. UUID). (dize, gerekli)workflow_id: İş akışı kimliği (örn. UUID). (dize, gerekli)
-
get_commits_by_branch - Bir derleme dalı için commit'leri alır (sayfalandırmalı).
- Erişim seviyesi: okuma
branch_id: Dal kimliği (örn. UUID). (dize, gerekli)page: Sayfa numarası (1 tabanlı). Boyut ile birlikte sağlanırsa sayfalandırmayı etkinleştirir. Varsayılan: 1. (sayı, isteğe bağlı)size: Sayfa boyutu. Sayfa ile birlikte sağlanırsa sayfalandırmayı etkinleştirir. Varsayılan: 25, maksimum 100. (sayı, isteğe bağlı)
-
get_commit_details - Commit kimliğine (UUID) veya commit hash'ine (git SHA) göre tek bir commit alır. commit_id veya commit_hash'ten yalnızca birini sağlayın, ikisini birden değil.
- Erişim seviyesi: okuma
commit_id: Commit kimliği (UUID). (dize, isteğe bağlı)commit_hash: Commit hash'i (git SHA). (dize, isteğe bağlı)
İmzalama Kimlikleri
-
get_bundle_identifiers - Organizasyon için tüm paket tanımlayıcılarını alır (iOS/macOS uygulama paket kimlikleri).
- Erişim seviyesi: okuma
- Parametre yok.
-
get_certificates - Organizasyon için tüm imzalama sertifikalarını alır. Hassas alanlar (p12Password, p12Binary, metaData, thumbprint) atlanır.
- Erişim seviyesi: okuma
- Parametre yok.
-
get_keystores - Organizasyon için tüm anahtar depolarını alır (örn. Android imzalama anahtar depoları). Hassas alanlar (password, aliasPassword, binary, checkSum, sha256FingerPrint) atlanır.
- Erişim seviyesi: okuma
- Parametre yok.
-
get_provisioning_profiles - Organizasyon için sağlama profillerini alır (örn. iOS/macOS). Hassas/büyük alanlar (binary, metaData, certificateThumbPrints, provisionedDevices, connectApiKeyId) atlanır. İsteğe bağlı olarak uygulama (paket) kimliğine göre filtreleyin.
- Erişim seviyesi: okuma
app_id: Sağlama profillerini filtrelemek için isteğe bağlı uygulama (paket) kimliği (örn. com.example.app). (dize, isteğe bağlı)
Test Dağıtımı
-
get_distribution_profiles - Mevcut organizasyon için test dağıtım profillerini alır (sayfalandırmalı). İsteğe bağlı olarak profil adına göre filtreleyin.
- Erişim seviyesi: okuma
page: Sayfa numarası (1 tabanlı). Varsayılan: 1. (sayı, isteğe bağlı)size: Sayfa boyutu (1-100). Varsayılan: 25, maksimum 100. (sayı, isteğe bağlı)search: Profilleri ada göre filtrelemek için isteğe bağlı arama terimi. (dize, isteğe bağlı)
-
get_distribution_profile_details - Kimliğe göre tek bir test dağıtım profilini alır (isteğe bağlı uygulama sürümleri sayfalandırması ile).
- Erişim seviyesi: okuma
profile_id: Dağıtım profili kimliği (örn. UUID). (dize, gerekli)page: Uygulama sürümleri için sayfa numarası (1 tabanlı). Varsayılan: 1. (sayı, isteğe bağlı)size: Uygulama sürümleri için sayfa boyutu (1-100). Varsayılan: 25, maksimum 100. (sayı, isteğe bağlı)
Mağazalara Yayınla
-
get_publish_profiles - Belirli bir platform türü için mevcut organizasyona ait yayınlama profillerini alır (sayfalandırmalı). İsteğe bağlı olarak akış durumuna göre filtreleyin.
- Erişim seviyesi: okuma
platform_type: Yayınlama profillerinin platform türü ("ios" veya "android"). (dize, gerekli)page: Sayfa numarası (1 tabanlı). Varsayılan: 1. (sayı, isteğe bağlı)size: Sayfa boyutu (1-100). Varsayılan: 25, maksimum 100. (sayı, isteğe bağlı)flow_status: Filtrelemek için isteğe bağlı akış durum kodu (örn. 0=Başarılı, 1=Başarısız, 91=Çalışıyor). (sayı, isteğe bağlı)
-
get_publish_profile_details - Platform türü ve kimliğe göre tek bir yayınlama profilini alır (isteğe bağlı uygulama sürümleri sayfalandırması ile).
- Erişim seviyesi: okuma
platform_type: Platform türü ("ios" veya "android"). (dize, gerekli)profile_id: Yayınlama profili kimliği (örn. UUID). (dize, gerekli)page: Uygulama sürümleri için sayfa numarası (1 tabanlı). Varsayılan: 1. (sayı, isteğe bağlı)size: Uygulama sürümleri için sayfa boyutu (1-100). Varsayılan: 25, maksimum 100. (sayı, isteğe bağlı)
Kurumsal Uygulama Mağazası
-
get_store_profiles - Mevcut organizasyon için kurumsal uygulama mağazası profillerini alır (sayfalandırmalı).
- Erişim seviyesi: okuma
page: Sayfa numarası (1 tabanlı). Varsayılan: 1. (sayı, isteğe bağlı)size: Sayfa boyutu (1-100). Varsayılan: 25, maksimum 100. (sayı, isteğe bağlı)
-
get_store_profile_details - Kimliğe göre tek bir kurumsal uygulama mağazası profilini alır (isteğe bağlı uygulama sürümleri sayfalandırması ile).
- Erişim seviyesi: okuma
profile_id: Kurumsal uygulama mağazası profili kimliği (örn. UUID). (dize, gerekli)page: Uygulama sürümleri için sayfa numarası (1 tabanlı). Varsayılan: 1. (sayı, isteğe bağlı)size: Uygulama sürümleri için sayfa boyutu (1-100). Varsayılan: 25, maksimum 100. (sayı, isteğe bağlı)
Rapor
- **get_build_history_report** - Tarih aralığı, derleme profili ve organizasyona göre isteğe bağlı olarak filtrelenmiş derleme geçmişi raporunu alır. Sayfalandırılmıştır. - **Erişim seviyesi:** okuma - `start_date`: İsteğe bağlı başlangıç tarihi (YYYY-AA-GG). (string, isteğe bağlı) - `end_date`: İsteğe bağlı bitiş tarihi (YYYY-AA-GG). (string, isteğe bağlı) - `page`: Sayfa numarası (varsayılan: 1). (number, isteğe bağlı) - `size`: Sayfa başına öğe sayısı (1-100, varsayılan: 50). (number, isteğe bağlı) - `build_profile_name`: Derleme profili adına göre filtrele. (string, isteğe bağlı) - `organization_id`: Organizasyon UUID'sine göre filtrele. (string, isteğe bağlı)-
get_build_insights_report - Derleme geçmişi üzerinden sunucu tarafında toplanmış, hesaplanmış bir Derleme İçgörüleri Raporu (Sağlık Anlık Görüntüsü + Eğilimler, Kök Neden, Artifact Sağlığı, İş Akışı Kalitesi, Kuyruk Süresi ve Olgunluk Değerlendirmesi analizi) alır. get_build_history_report'un aksine, bu dahili olarak her sayfayı getirir ve ham kayıtlar yerine küçük, önceden toplanmış sonuçlar döndürür.
- Erişim seviyesi: okuma
start_date: Mevcut dönem için isteğe bağlı başlangıç tarihi (YYYY-AA-GG). Varsayılan: son 30 gün. (string, isteğe bağlı)end_date: Mevcut dönem için isteğe bağlı bitiş tarihi (YYYY-AA-GG). (string, isteğe bağlı)sections: Hesaplanacak isteğe bağlı bölüm listesi:health_snapshot,root_cause,artifact_health,workflow_quality,queue_time,maturity_assessment. Varsayılan: altısı da. (array of strings, isteğe bağlı)include_sub_orgs: true ise, geçmişten türetilen metriklerde token'ın kendi organizasyonuna filtrelemek yerine organizasyonlar arası derleme kayıtlarını tutar. Varsayılan: false. (boolean, isteğe bağlı)
-
get_distribution_app_version_report - Dağıtılan uygulama sürümleri için günlük kullanım raporunu alır. Sayfalandırılmıştır; profil, işletim sistemi, organizasyona göre filtreleri destekler.
- Erişim seviyesi: okuma
start_date: İsteğe bağlı başlangıç tarihi (YYYY-AA-GG). (string, isteğe bağlı)end_date: İsteğe bağlı bitiş tarihi (YYYY-AA-GG). (string, isteğe bağlı)page: Sayfa numarası (varsayılan: 1). (number, isteğe bağlı)size: Sayfa başına öğe sayısı (1-100, varsayılan: 50). (number, isteğe bağlı)profile_name: Dağıtım profili adına göre filtrele. (string, isteğe bağlı)os: İşletim sistemine göre filtrele ("ios" veya "android"). (string, isteğe bağlı)organization_id: Organizasyon UUID'sine göre filtrele. (string, isteğe bağlı)
-
get_distribution_sent_report - Dağıtılan uygulama paylaşımı için günlük kullanım raporunu alır. Sayfalandırılmıştır; profil, işletim sistemi, organizasyona göre filtreleri destekler.
- Erişim seviyesi: okuma
start_date: İsteğe bağlı başlangıç tarihi (YYYY-AA-GG). (string, isteğe bağlı)end_date: İsteğe bağlı bitiş tarihi (YYYY-AA-GG). (string, isteğe bağlı)page: Sayfa numarası (varsayılan: 1). (number, isteğe bağlı)size: Sayfa başına öğe sayısı (1-100, varsayılan: 50). (number, isteğe bağlı)profile_name: Dağıtım profili adına göre filtrele. (string, isteğe bağlı)os: İşletim sistemine göre filtrele ("ios" veya "android"). (string, isteğe bağlı)organization_id: Organizasyon UUID'sine göre filtrele. (string, isteğe bağlı)
-
get_enterprise_app_store_app_usage_report - Kurumsal uygulama mağazası için uygulama kullanım raporunu alır. start_date ve end_date zorunludur. Sayfalandırılmıştır.
- Erişim seviyesi: okuma
start_date: Başlangıç tarihi (YYYY-AA-GG). (string, zorunlu)end_date: Bitiş tarihi (YYYY-AA-GG). (string, zorunlu)page: Sayfa numarası (varsayılan: 1). (number, isteğe bağlı)size: Sayfa başına öğe sayısı (1-100, varsayılan: 50). (number, isteğe bağlı)organization_id: Organizasyon UUID'sine göre isteğe bağlı filtre. (string, isteğe bağlı)
-
get_publish_resign_report - Tarih aralığı, uygulama adı, organizasyon ve duruma göre isteğe bağlı olarak filtrelenmiş yayınlama yeniden imzalama raporunu alır. Sayfalandırılmıştır.
- Erişim seviyesi: okuma
start_date: İsteğe bağlı başlangıç tarihi (YYYY-AA-GG). (string, isteğe bağlı)end_date: İsteğe bağlı bitiş tarihi (YYYY-AA-GG). (string, isteğe bağlı)page: Sayfa numarası (varsayılan: 1). (number, isteğe bağlı)size: Sayfa başına öğe sayısı (1-100, varsayılan: 50). (number, isteğe bağlı)app_name: Uygulama adına göre filtrele. (string, isteğe bağlı)organization_id: Organizasyon UUID'sine göre filtrele. (string, isteğe bağlı)status: Yeniden imzalama durumuna göre filtrele (0=bekliyor, 1=işleniyor, 2=başarılı, 3=başarısız, 4=iptal edildi, 5=zaman aşımı). (number, isteğe bağlı)
-
get_publish_status_report - Tarih aralığı, uygulama adı, organizasyon ve duruma göre isteğe bağlı olarak filtrelenmiş yayınlama durum raporunu alır. Sayfalandırılmıştır.
- Erişim seviyesi: okuma
start_date: İsteğe bağlı başlangıç tarihi (YYYY-AA-GG). (string, isteğe bağlı)end_date: İsteğe bağlı bitiş tarihi (YYYY-AA-GG). (string, isteğe bağlı)page: Sayfa numarası (varsayılan: 1). (number, isteğe bağlı)size: Sayfa başına öğe sayısı (1-100, varsayılan: 50). (number, isteğe bağlı)app_name: Uygulama adına göre filtrele. (string, isteğe bağlı)organization_id: Organizasyon UUID'sine göre filtrele. (string, isteğe bağlı)status: Yayınlama durumuna göre filtrele (örn. 0=Başarılı, 1=Başarısız, 91=Çalışıyor). (number, isteğe bağlı)
-
get_signing_report - Tarih aralığı, organizasyon, işletim sistemi ve derleme durumuna göre isteğe bağlı olarak filtrelenmiş imzalama raporunu alır. Sayfalandırılmıştır.
- Erişim seviyesi: okuma
start_date: İsteğe bağlı başlangıç tarihi (YYYY-AA-GG). (string, isteğe bağlı)end_date: İsteğe bağlı bitiş tarihi (YYYY-AA-GG). (string, isteğe bağlı)page: Sayfa numarası (varsayılan: 1). (number, isteğe bağlı)size: Sayfa başına öğe sayısı (1-100, varsayılan: 50). (number, isteğe bağlı)organization_id: Organizasyon UUID'sine göre filtrele. (string, isteğe bağlı)os: İşletim sistemine göre filtrele ("ios" veya "android"). (string, isteğe bağlı)build_status: Derleme durumuna göre filtrele (örn. 0=Başarılı, 1=Başarısız, 91=Çalışıyor). (number, isteğe bağlı)
Sunucuyu çalıştırma
Depo kök dizininden:
python -m src.server
Veya pip install -e . işleminden sonra:
appcircle-mcp
Sunucu stdio üzerinden (veya istemcinizin başlatma şekline bağlı olarak SSE/HTTP) çalışır.
Yanıt formatı
Her araç bir standart zarf döndürür:
- Başarı:
{ "success": true, "data": <payload>, "meta": { ... } }
dataaraç sonucudur;metaisteğe bağlıdır (örn.count,page,filters). - Hata:
{ "success": false, "error": { "tool", "type", "message", "details" } }
Tüm araçlar için aynı şekil, böylece istemciler hataları tutarlı bir şekilde ayrıştırabilir.
Tam belirtim: docs/tool_contract.md.
Test etme
Geliştirme bağımlılıklarıyla kurun:
pip install -e ".[dev]"
Birim testleri (varsayılan)
Sahte bir API kullanır; APPCIRCLE_ACCESS_TOKEN gerekmez. Varsayılan pytest yalnızca bunları çalıştırır (bkz. pyproject.toml içindeki testpaths):
pytest test/unit/ -v
- Tek dosya:
pytest test/unit/tools/build_module/test_get_build_profiles.py -v - Kapsam ile:
pytest test/unit/ --cov=src --cov-report=term-missing
Entegrasyon testleri
Gerçek Appcircle API'sini çağırır. Ortamda APPCIRCLE_ACCESS_TOKEN ayarlayın, ardından çalıştırın:
pytest test/integration/ -v
- Tüm entegrasyon testleri:
pytest test/integration/ -v - Araca göre:
pytest test/integration/build_module/ -v,pytest test/integration/report/ -v, vb. - İşaretleyiciye göre:
pytest -m integration -v(depo kökünden çalıştırırken; hem birim hem de entegrasyon toplanmışsa yalnızca entegrasyon testlerini içerir)
Eğer APPCIRCLE_ACCESS_TOKEN ayarlanmamışsa, entegrasyon testleri atlanır (hata oluşmaz).
Entegrasyon testleri için isteğe bağlı ortam değişkenleri (keşif başarısız olduğunda veya testler gerçek kimliklere ihtiyaç duyduğunda; bu testleri atlamak için boş bırakın):
| Değişken | Açıklama |
|---|---|
APPCIRCLE_TEST_ORGANIZATION_ID | Organizasyon UUID'si. test_with_organization_id (kurumsal uygulama mağazası uygulama kullanım raporu) tarafından kullanılır. |
APPCIRCLE_TEST_BRANCH_ID | Dal UUID'si. API'den hiçbir dal keşfedilemediğinde get_commits_by_branch ve ilgili testler tarafından kullanılır. |
APPCIRCLE_TEST_COMMIT_ID | Commit UUID'si. API'den hiçbir commit keşfedilemediğinde get_commit_details testleri tarafından kullanılır. |
Güvenlik
Bu proje, pyproject.toml içinde listelenen üçüncü taraf açık kaynak paketlere bağlıdır. Bağımlılık sürüm aralıklarını sabitlesek ve kriptografik karmalar içeren bir kilit dosyası (uv.lock) göndersek de, bu paketler bağımsız olarak sürdürülür ve "olduğu gibi" sağlanır. Appcircle, üçüncü taraf bağımlılıkların güvenliği veya güvenilirliği konusunda hiçbir garanti vermez.
Kullanmadan önce yüklü paketleri denetlemenizi öneririz:
uv run pip-audit