Appcircle MCP Server

resmi

Appcircle'ın resmi MCP Sunucusu

Appcircle MCP ile neler yapabilirsiniz?

  • Derleme profillerini listele ve ara — Sayfalandırılmış derleme profillerini alın ve get_build_profiles ile 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_details ve get_workflow_detail kullanarak 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_profiles ve get_bundle_identifiers aracılığıyla listeleyin.
  • Test ve kurumsal dağıtım durumunu kontrol etget_distribution_profiles ve get_distribution_profile_details ile dağıtım profillerini ve uygulama sürümlerini alın veya get_store_profiles ile 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_report veya ham derleme kayıtları için get_build_history_report kullanı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 bilgisayarhttps://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ı:

Yapılandırma (Ortam Değişkenleri)

DeğişkenGerekliAçıklama
APPCIRCLE_ACCESS_TOKENEvet (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_URLHayırAPI temel URL'si (varsayılan: https://api.appcircle.io, kendi sunucusunda barındıran kullanıcılar için farklı olabilir).
APPCIRCLE_MCP_ALLOWED_HOSTHayı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_PORTHayı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_LEVELHayırGünlük kaydı seviyesi, örn. DEBUG, INFO (varsayılan: INFO).
APPCIRCLE_EXCLUDED_TOOLSETSHayırHariç 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ç SetiAçıklama
build_moduleDerleme 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_distributionTest dağıtım profilleri ve dağıtım ayrıntıları
publish_to_storesYayınlama profilleri ve mağaza yayınlama işlemleri
enterprise_app_storeKurumsal uygulama mağazası profilleri ve mağaza ayrıntıları
reportRaporlama: 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 toolset2 veya --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": { ... } }
    data araç sonucudur; meta isteğ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şkenAçıklama
APPCIRCLE_TEST_ORGANIZATION_IDOrganizasyon UUID'si. test_with_organization_id (kurumsal uygulama mağazası uygulama kullanım raporu) tarafından kullanılır.
APPCIRCLE_TEST_BRANCH_IDDal 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_IDCommit 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