pub struct ExpressionContext<'a> {
pub env_context: &'a HashMap<String, String>,
pub step_outputs: &'a HashMap<String, HashMap<String, String>>,
pub matrix_combination: &'a Option<HashMap<String, Value>>,
pub step_statuses: &'a HashMap<String, (String, String)>,
pub job_status: &'a str,
pub secrets_context: &'a HashMap<String, String>,
pub needs_context: &'a HashMap<String, HashMap<String, String>>,
pub needs_results: &'a HashMap<String, String>,
pub user_env: &'a HashMap<String, String>,
}Expand description
Provides variable resolution for expression evaluation.
Fields§
§env_context: &'a HashMap<String, String>§step_outputs: &'a HashMap<String, HashMap<String, String>>§matrix_combination: &'a Option<HashMap<String, Value>>§step_statuses: &'a HashMap<String, (String, String)>Step ID → (outcome, conclusion) where values are “success”, “failure”, or “skipped”.
outcome is the raw result before continue-on-error; conclusion is the effective result.
job_status: &'a strCurrent job status for success()/failure()/cancelled() builtins:
“success”, “failure”, or “cancelled”.
secrets_context: &'a HashMap<String, String>Pre-resolved secrets for secrets.* context.
needs_context: &'a HashMap<String, HashMap<String, String>>Job outputs from upstream jobs: job_name -> { output_key -> output_value }.
needs_results: &'a HashMap<String, String>Job results from upstream jobs: job_name -> "success" | "failure" | "skipped".
user_env: &'a HashMap<String, String>User-declared env vars only (merged workflow/job/step env: plus step-authored
$GITHUB_ENV writes). env_context holds the union of these and runner-seeded
vars; user_env is the user’s slice, consumed by toJSON(env) / bare env.
Invariant: every key inserted here must have been declared by the user (YAML
env: at any scope, or written to $GITHUB_ENV by a step). Runner-seeded
vars (GITHUB_, RUNNER_, INPUT_, WRKFLW_, CI, MATRIX_*) must NOT be inserted.
Auto Trait Implementations§
impl<'a> Freeze for ExpressionContext<'a>
impl<'a> RefUnwindSafe for ExpressionContext<'a>
impl<'a> Send for ExpressionContext<'a>
impl<'a> Sync for ExpressionContext<'a>
impl<'a> Unpin for ExpressionContext<'a>
impl<'a> UnsafeUnpin for ExpressionContext<'a>
impl<'a> UnwindSafe for ExpressionContext<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more