Shipyard
resmiShipyard CLI, aracıların Shipyard ortamlarını doğrudan yönetmesi için bir MCP sunucusu sağlar: günlükleri çekme, dalları karşılaştırma, testleri çalıştırma ve ortamları durdurma/başlatma gibi işlemlerle.
Shipyard MCP ile neler yapabilirsiniz?
- Liste ortamları filtrelerle — Repo, dal veya pull request'e göre filtrelenmiş ortamları
shipyard get environmentsile göstermeyi isteyin. - Ortam ayrıntılarını inceleyin — Belirli bir ortam UUID'si için tam bilgiyi alın; komut dosyalama için bypass token'ı dahil.
- Ortam yaşam döngüsünü yönetin — UUID ile ortamları durdurun, yeniden başlatın, derlemeleri iptal edin, yeniden derleyin veya silinmiş ortamları canlandırın.
- Hizmetlere ve günlüklere erişin — Açık portları alın, günlükleri akıştırın, komutları çalıştırın veya çalışan bir ortamın hizmetine port yönlendirmesi yapın.
- Birimleri ve anlık görüntüleri yönetin — Bir ortamdaki birimleri listeleyin, sıfırlayın, anlık görüntü alın, yükleyin veya dosya yükleyin.
- Ayrılmış ortamları dağıtın — Özel dal geçersiz kılmaları ve yeniden derleme politikalarıyla bir uygulama derlemesini klonlayın.
Dokümantasyon
Shipyard CLI
Shipyard platformunda Geçici Ortamları (Ephemeral Environments) yönetmek için kullanılan bir araç.
Bir yapay zeka asistanı mı kullanıyorsunuz? CLI, bir MCP sunucusu içerir: bkz. Shipyard'ı bir yapay zeka asistanından kullanın.
Kurulum
-
Linux ve macOS
curl https://www.shipyard.sh/install.sh | bash -
Windows Sürümler sayfasına gidin ve Windows için çalıştırılabilir dosyayı indirin.
-
Homebrew
brew tap shipyard/tap brew install shipyard
Giriş
CLI'yi başlatmak için shipyard login komutunu çalıştırın. Bu, tarayıcıda Shipyard'a giriş yapmanızı isteyecektir. CLI daha sonra API token'ınızı yerel bir yapılandırmada kaydedecektir. Komutları çalıştırmaya hazırsınız.
Veya Token'ınızı Manuel Olarak Ayarlayın
Shipyard API token'ınızı SHIPYARD_API_TOKEN ortam değişkeninin değeri olarak ayarlayın.
Bunu profil sayfanıza giderek alabilirsiniz.
Kuruluşunuz için API erişimini etkinleştirmek istiyorsanız bizimle support@shipyard.build adresinden iletişime geçebilirsiniz. Başka sorularınız varsa topluluğumuz Slack kanalına katılmaktan çekinmeyin.
shipyard set token
Alternatif olarak, varsayılan olarak $HOME/.shipyard/config.yaml konumunda saklanan bir yapılandırma dosyası kullanabilirsiniz. CLI'yi ilk kez çalıştırdığınızda, düzenleyebileceğiniz varsayılan boş bir yapılandırma oluşturacaktır.
Ayrıca herhangi bir komuta eklenen --config {path} bayrağı ile varsayılan olmayan bir yapılandırma yolu belirtebilirsiniz.
Yapılandırmanıza herhangi bir yapılandırma değeri ekleyin ve dosyanın YAML sözdizimini izlediğinden emin olun. Örneğin:
api_token: <your-token>
org: <your-non-default-org>
Ortam değişkenlerinizin değerleri, yapılandırmadaki karşılık gelen değerleri geçersiz kılar.
Temel kullanım
Üyesi olduğunuz tüm kuruluşları alın
shipyard get orgs
Genel varsayılan kuruluşu ayarlayın
shipyard set org {org-name}
Yapılandırılmış kuruluşu alın
shipyard get org
Tüm ortamları listele
shipyard get environments
Mevcut bayraklar:
| Ad | Açıklama | Tür | Varsayılan Değer |
|---|---|---|---|
| branch | Dal adına göre filtrele | string | |
| deleted | Silinmiş ortamları döndür | boolean | false |
| json | Tam JSON çıktısını yazdır | boolean | false |
| name | Uygulamanın adına göre filtrele | string | |
| org-name | Birden fazla kuruluşun parçasıysanız kuruluş adına göre filtrele | string | varsayılan kuruluşunuz |
| page | İstenen sayfa numarası | int | 1 |
| page-size | İstenen sayfa boyutu | int | 20 |
| pull-request-number | Çekme isteği numarasına göre filtrele | string | |
| repo-name | Depo adına göre filtrele | string |
Örnekler:
flask-backenddeposunumaindalında çalıştıran tüm ortamları listele:
shipyard get environments --repo-name flask-backend --branch main
- Tüm silinmiş ortamları listele:
shipyard get environments --deleted
UUID'sine göre belirli bir ortamın ayrıntılarını alın
shipyard get environment {environment_uuid}
Mevcut bayraklar:
| Ad | Açıklama | Tür | Varsayılan Değer |
|---|---|---|---|
| json | Tam JSON çıktısını yazdır | boolean | false |
| org | Birden fazla kuruluşun parçasıysanız ortamın kuruluşu | string | varsayılan kuruluşunuz |
| bypass-token | Komut dosyaları için yalnızca ortamın bypass token'ını yazdır | boolean | false |
--bypass-token, bir komut dosyasının token'ı kimsenin yazmasına veya yazdırmasına gerek kalmadan kullanmasını sağlar:
SHIPYARD_TOKEN=$(shipyard get environment {environment_uuid} --bypass-token) && \
export SHIPYARD_TOKEN && curl -b "shipyard_token=$SHIPYARD_TOKEN" https://your-environment-url/
Çalışan bir ortamı durdurun
shipyard stop environment {environment_uuid}
Durdurulmuş bir ortamı yeniden başlatın
shipyard restart environment {environment_uuid}
Bir ortam için devam eden derlemeyi iptal edin
shipyard cancel environment {environment_uuid}
Bir ortamı yeniden derleyin
shipyard rebuild environment {environment_uuid}
Silinmiş bir ortamı canlandırın
shipyard revive environment {environment_uuid}
Ayrılmış bir ortamı dağıtın
Mevcut bir uygulama derlemesini klonlayarak yeni, bağımsız ("ayrılmış") bir ortam oluşturun. Kuruluşunuz için ayrılmış ortamların etkinleştirilmesini gerektirir.
shipyard detached deploy {application_build_uuid} --name my-detached-env
Depo başına dalları geçersiz kılın ve ayrılmış ortamın yeni taahhütlerde yeniden derlenip derlenmeyeceğini kontrol edin:
# Override the branch for a repo, and never rebuild on new commits
shipyard detached deploy {application_build_uuid} --name my-detached-env --branch web=feature-x --build-on-commit never
# Per-repo build-on-commit settings (always | inherit | never)
shipyard detached deploy {application_build_uuid} --build-on-commit-for web=always --build-on-commit-for api=never
Bir ortam için tüm hizmetleri ve açık portları alın
shipyard get services --env {environment_uuid}
Çalışan bir ortamın hizmetine exec ile girin
Çalışan bir ortamın belirli bir hizmetinde herhangi bir bağımsız değişken ve bayrakla herhangi bir komutu çalıştırın. Komut bağımsız değişkenlerini çift eğik çizgiden sonra iletin.
shipyard exec --env {environment_uuid} --service {service_name} -- bash
Çalışan bir ortamın hizmetinin portunu iletin
shipyard port-forward --env {environment_uuid} --service {service_name} --ports {local_port}:{service_container_port}
Çalışan bir ortamın hizmetinin günlüklerini alın
shipyard logs --env {environment_uuid} --service {service_name}
Bir ortamı ziyaret edin
shipyard visit {environment_uuid}
Mevcut bayraklar:
| Ad | Açıklama | Tür | Varsayılan Değer |
|---|---|---|---|
| follow | Günlük çıktısını takip et | boolean | false |
| tail | Gösterilecek son günlük satırı sayısı | int | 3000 |
Birimlerle çalışın
Bir ortamdaki tüm birimleri listele
shipyard get volumes --env {environment_uuid}
Bir ortamdaki tüm birim anlık görüntülerini listele
shipyard get snapshots --env {environment_uuid}
Bir ortamdaki bir birimi sıfırlayın
shipyard reset volume --env {environment_uuid}
Bir ortamda anlık görüntü oluşturun
shipyard create snapshot --env {environment_uuid}
Bir ortamda birim anlık görüntüsünü yükleyin
shipyard load snapshot --env {environment_uuid} --sequence-number {n}
Bir ortamdaki bir birime dosya yükleyin
shipyard upload volume --env {environment_uuid} --volume {volume} --file {filepath.bz2}
REST API'yi doğrudan çağırın
shipyard api /api/v1/environment
shipyard api -X PUT /api/v1/environment/{environment_uuid}/env-vars --input body.json
Yollar /api/v1 veya /api/v2 ile başlamalıdır; token'ınız ve kuruluşunuz sizin için eklenir. bypass_token ve kubeconfig kimlik bilgileri, --include-secrets iletmediğiniz sürece gizlenir.
Telepresence'a bağlanın
shipyard telepresence connect --env {environment_uuid}
Buradan itibaren ad alanındaki tüm pod'larla doğrudan iletişim kurabileceksiniz. Hizmetlerle iletişim kurmak için ad alanı ana bilgisayar adını kullanmanız gerekebilir; bunu Namespace alanı altındaki telepresence status ile alabilirsiniz. Örneğin, redis ile iletişim kurmak için redis.shipyard-app-build-{uuid} kullanırsınız.
Koddan çalıştırılabilir dosya oluşturun:
Aşağıdaki komutu çalıştırarak çalıştırılabilir bir dosya oluşturabilirsiniz:
make
Bu yeni çalıştırılabilir dosyayı çalıştırmak için:
./shipyard
Otomatik Tamamlamayı Etkinleştir
Bash
Bu komut dosyası bash-completion paketine bağlıdır. Zaten kurulu değilse, işletim sisteminizin paket yöneticisi aracılığıyla kurabilirsiniz.
Geçerli kabuk oturumunuzda tamamlamaları yüklemek için:
source <(shipyard completion bash)
Her yeni oturum için tamamlamaları yüklemek için aşağıdakini bir kez çalıştırın.
Linux'ta:
shipyard completion bash > /etc/bash_completion.d/shipyard
macOS'ta:
shipyard completion bash > $(brew --prefix)/etc/bash_completion.d/shipyard
Zsh
Kabuk tamamlaması ortamınızda zaten etkin değilse, etkinleştirmeniz gerekecektir. Aşağıdakini bir kez çalıştırabilirsiniz:
echo "autoload -U compinit; compinit" >> ~/.zshrc
Geçerli kabuk oturumunuzda tamamlamaları yüklemek için:
source <(shipyard completion zsh); compdef _shipyard shipyard
Her yeni oturum için tamamlamaları yüklemek için aşağıdakini bir kez çalıştırın.
Linux'ta:
shipyard completion zsh > "${fpath[1]}/_shipyard"
macOS'ta:
shipyard completion zsh > $(brew --prefix)/share/zsh/site-functions/_shipyard
Bu kurulumun etkili olması için yeni bir kabuk başlatmanız gerekecektir.
Fish
Geçerli kabuk oturumunuzda tamamlamaları yüklemek için:
$ shipyard completion fish | source
Her oturum için tamamlamaları yüklemek için bir kez çalıştırın:
shipyard completion fish > ~/.config/fish/completions/shipyard.fish
PowerShell
Geçerli kabuk oturumunuzda tamamlamaları yüklemek için:
shipyard completion powershell | Out-String | Invoke-Expression
Her yeni oturum için tamamlamaları yüklemek için şunu çalıştırın:
shipyard completion powershell > shipyard.ps1
ve bu dosyayı PowerShell profilinizden kaynaklayın.
Shipyard'ı bir yapay zeka asistanından kullanın (MCP)
shipyard mcp serve, bir Model Context Protocol sunucusu çalıştırır; böylece Claude Code, Claude Desktop, Cursor veya Codex gibi bir asistan ortamlarınızı listeleyebilir, inceleyebilir, yeniden derleyebilir ve yapılandırabilir, hizmet günlüklerini okuyabilir, birimleri yönetebilir ve gönderilen bir değişikliği ortamına karşı doğrulayabilir.
CLI'ye giriş yapmışken, Claude Code'a ekleyin:
claude mcp add shipyard -- shipyard mcp serve
Ardından şunun gibi şeyler sorun:
- "
webdeposu için hangi ortamlar çalışıyor?" - "Dalımdaki ortamda
apihizmetinin günlüklerini göster." - "Bu ortamda
FEATURE_FLAGS=betaayarla veworkerhizmetini yeniden başlat." - "Az önce gönderdim. Değişikliği ortamına karşı doğrula." (veya
/mcp__shipyard__verify)
Diğer istemcilerde kurulum, yapılandırma, tam araç listesi, verify istemi ve sorun giderme için MCP kılavuzuna bakın.