NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Requests for Laravel

Predvoľby workflowov

Opakovane používajte nastavenie pravidla, kvóra a stupňov z config('approvals.workflows'):

// config/approvals.php
'workflows' => [
    'payout' => ['rule' => 'quorum', 'quorum' => 2, 'required_approvers' => 3],
    'release' => ['stages' => [
        ['rule' => 'unanimous', 'required_approvers' => 2, 'name' => 'engineering'],
        ['rule' => 'any', 'required_approvers' => 1, 'name' => 'product'],
    ]],
],

Žiadosť potom otvoríte podľa názvu predvoľby:

// Flat preset — supply the approvers:
Requests::make()->workflow('payout')->requireApprovalsFrom([$a, $b, $c])->create();

// Staged preset — one approver group per stage:
Requests::make()->workflow('release')->stageApprovers([[$eng1, $eng2], [$product]])->create();
  • Jednoduché predvoľby použijú modely schvaľovateľov odovzdané cez requireApprovalsFrom(); samotné id sa odmietne výnimkou InvalidApprover.
  • Viacstupňové predvoľby dostanú jednu skupinu schvaľovateľov na stupeň cez stageApprovers().
  • Workflow má prednosť pred stages() aj pred jednoduchým zoznamom schvaľovateľov.
  • Pri viacstupňových predvoľbách platí reject_on_stage_rejection z predvoľby, nie rejectOnStageRejection() z buildera.
  • Neznáma alebo chybná predvoľba vyhodí výnimku enginu UnknownWorkflowException.

Expirácia predvoľby a termín žiadosti

Kolo z predvoľby vyprší spolu so žiadosťou: expires_at žiadosti (z expiresAt() alebo default_ttl) nahradí pre toto kolo vlastné expiry predvoľby, a to pre každý stupeň viacstupňovej predvoľby — pri vytvorení aj pri novom kole, ktoré otvorí reopen(). Žiadosť bez termínu si ponechá expiry predvoľby, prípadne žiadne:

// 'payout' => [..., 'expiry' => 3600]
Requests::make()->workflow('payout')->requireApprovalsFrom([$a])->expiresAt(now()->addDays(7))->create(); // round expires in 7 days
Requests::make()->workflow('payout')->requireApprovalsFrom([$a])->create();                               // no deadline: round expires in 1 hour

Kľúče predvoľby

KľúčPlatí preVýznam
rulejednoduchú predvoľbu, každý stupeňunanimous, quorum, any alebo weighted (predvolene unanimous).
quorumjednoduchú predvoľbu, každý stupeňCeločíselná hranica pre quorum / weighted.
required_approversjednoduchú predvoľbu, každý stupeňKoľko schvaľovateľov pravidlo počíta; pri každom stupni povinné a kladné.
namekaždý stupeňNázov stupňa, dostupný cez currentStage()->name.
stagesviacstupňovú predvoľbuNeprázdny zoznam polí stupňov — jeho prítomnosť robí predvoľbu viacstupňovou.
reject_on_stage_rejectionviacstupňovú predvoľbuČi zamietnutý stupeň zamietne celú žiadosť (predvolene true).
expiryakúkoľvek predvoľbuSekundy, po ktorých schvaľovacie kolo enginu vyprší — platí len pre žiadosť bez vlastného termínu; inak kolo prevezme expires_at žiadosti.

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.