Ana içeriğe geç

kule policy

Tüm görevler için geçerli politikayı yazdırır ya da Kule'nin iki yerleşik politikası arasında geçiş yapar.

Kullanım​

kule policy [OPTIONS] [CHOICE]

Açıklama​

Politika, bir görevin yaptığı her şeyi klasörünüze ulaşmadan önce değerlendiren bir Cedar kuralları kümesidir: her dosya değişikliğini, her git değişikliğini ve her ağ bağlantısını. Her değerlendirme üç karardan biridir:

  • kendiliğinden geçer: kule commit sormadan uygular;
  • onay bekler: kule commit --approve ya da uygulamada Approve and commit gerekir. Onay bekleyecek bir bağlantı uygulamada size sorulur, komut satırından ise hemen reddedilir;
  • reddedilir: onayla bile asla geçmez.

Kule'nin kendine ait iki politikası vardır:

PolitikaKendiliğinden geçenlerOnay bekleyenler
balanced (varsayılan)Sıradan dosya değişiklikleri, ileri sarma (fast-forward) dal hareketleri ve yeni dallar, HTTPS üzerinden paket kayıt depoları.Manifest ve kilit dosyaları, CI ve editör ayarları, kod çalıştıran ya da bir ajanı yönlendiren dosyalar, bağlantılar (link), iç içe depolar, git config, geçmişi yeniden yazma, toplu silmeler. Git hook'ları reddedilir.
carefulYalnızca balanced'ın geçirdiği bağlantılar (paket kayıt depoları ve her ajanın çalışırken kendi host'ları).Bir dosyaya ya da git'e yapılan her değişiklik.

Seçim vermeden kule policy, tüm görevler için geçerli kuralları yazdırır. kule policy balanced ve kule policy careful bunlardan birini devreye alır. Kendi politikası olan bir gruptaki görev ise grubun politikasına göre değerlendirilir.

Kendi politikanız​

Kendi politikanızı yazmak için onu Kule'nin evine policy.cedar olarak kaydedin (~/.kule/policy.cedar). Bu dosya tüm görevler için Kule'nin politikasının yerine geçer ve Kule onun üzerine asla yazmaz: dosya oradayken kule policy balanced ve careful reddedilir. Geri dönmek için dosyayı başka yere taşıyın. Her yerleşik kural ve adım adım bir örnek için Politika kuralları sayfasına bakın.

Bir deponun kuralları​

Bir depo, kökündeki .kule/policy.cedar dosyasına forbid kuralları ekleyebilir. Bunlar politikayı yalnızca sıkılaştırır, asla gevşetmez ve bir ajanın düzenlediği kopyadan değil, her zaman gerçek klasörünüzden okunur.

Argümanlar​

ArgümanAnlamı
CHOICEbalanced ya da careful. Geçerli politikayı yazdırmak için boş bırakın.

Seçenekler​

SeçenekDeğerVarsayılanAnlamı
--homeyol~/.kule (ya da KULE_HOME)Kule'nin evi. Bkz. genel seçenekler.
-h, --helpYardımı yazdırır.

Örnekler​

Geçerli politikayı yazdırın (balanced politikanın ilk satırları):

$ kule policy | head -3
// Kule's built-in policy. Each effect is asked twice: may it pass on its own
// (Action "auto"), and if not, may a person approve it (Action "ask").
// A forbid always wins over a permit.

Her değişikliğin sizi beklemesini sağlayın:

$ kule policy careful
policy: careful

Varsayılana geri dönün:

$ kule policy balanced
policy: balanced

Bir görevin değişikliklerinin politikadan ne karar aldığını görün:

$ kule status 1046fb30
1 file changes: +0 ~1 -0
~ Cargo.toml
policy: waits for approval
Cargo.toml · waits for approval (manifests-and-lockfiles)

Parantez içindeki sözcük kuralın @id'sidir; Politika kuralları her birini açıklar.

Çıktı​

  • kule policy, Cedar metninin kendisini yazdırır: Kule'nin balanced politikası, Kule'nin careful politikası (sonuna bir careful kuralı eklenmiş balanced metni) ya da kendi dosyanız.
  • policy: careful / policy: balanced bir geçişi onaylar.

Hatalar ve çözümler​

MesajNe yapmalı
kule: strict: the policies to choose are balanced and carefulİkisinden birini kullanın. Başka bir şey için kendi policy.cedar dosyanızı yazın.
kule: ~/.kule/policy.cedar is a policy of your own; Kule does not replace itKule'nin politikasını geri istiyorsanız önce kendi dosyanızı taşıyın ya da silin.
exec, status, commit ya da run'dan kule: policy: unexpected end of input (ya da başka bir Cedar hatası)policy.cedar dosyanız, bir grubun politikası ya da deponun .kule/policy.cedar dosyası ayrıştırılamıyor. Kule bozuk bir politikayla karar vermeyi reddeder; bu yüzden düzeltilene kadar hiçbir şey çalışmaz ve commit edilmez.
kule: .kule/policy.cedar may only contain forbid rules: a repository can tighten the policy, never loosen itDeponun dosyasındaki permit kurallarını kaldırın.

Uygulamada​

Settings → Policy, tüm görevler için balanced ya da careful politikayı ve her grup için bir politikayı seçer. İlk açılış ekranı da aynı seçimi sorar.

Ayrıca bakın​