Shipyard

resmi

Shipyard 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 environments ile 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:

AdAçıklamaTürVarsayılan Değer
branchDal adına göre filtrelestring
deletedSilinmiş ortamları döndürbooleanfalse
jsonTam JSON çıktısını yazdırbooleanfalse
nameUygulamanın adına göre filtrelestring
org-nameBirden fazla kuruluşun parçasıysanız kuruluş adına göre filtrelestringvarsayılan kuruluşunuz
pageİstenen sayfa numarasıint1
page-sizeİstenen sayfa boyutuint20
pull-request-numberÇekme isteği numarasına göre filtrelestring
repo-nameDepo adına göre filtrelestring

Örnekler:

  • flask-backend deposunu main dalı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:

AdAçıklamaTürVarsayılan Değer
jsonTam JSON çıktısını yazdırbooleanfalse
orgBirden fazla kuruluşun parçasıysanız ortamın kuruluşustringvarsayılan kuruluşunuz
bypass-tokenKomut dosyaları için yalnızca ortamın bypass token'ını yazdırbooleanfalse

--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:

AdAçıklamaTürVarsayılan Değer
followGünlük çıktısını takip etbooleanfalse
tailGösterilecek son günlük satırı sayısıint3000

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:

  • "web deposu için hangi ortamlar çalışıyor?"
  • "Dalımdaki ortamda api hizmetinin günlüklerini göster."
  • "Bu ortamda FEATURE_FLAGS=beta ayarla ve worker hizmetini 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.