@Override
    public StatusResult get(@Nonnull Run<?, ?> run, @Nonnull TaskListener listener)
            throws IOException, InterruptedException {

        for (ConditionalResult conditionalResult : getResults()) {
            if (conditionalResult.matches(run)) {
                return new StatusResult(
                        defaultIfNull(EnumUtils.getEnum(GHCommitState.class, conditionalResult.getState()), ERROR),
                        new ExpandableMessage(conditionalResult.getMessage()).expandAll(run, listener)
                );
            }
        }

        return new StatusResult(
                PENDING,
                new ExpandableMessage("Can't define which status to set").expandAll(run, listener)
        );
    }
@ Override public StatusResult get ( @ Nonnull Run < ? , ? > run , @ Nonnull TaskListener listener ) throws IOException , InterruptedException { for ( ConditionalResult conditionalResult : getResults ( ) ) { if ( conditionalResult . matches ( run ) ) { return new StatusResult ( defaultIfNull ( EnumUtils . getEnum ( GHCommitState . class , conditionalResult . getState ( ) ) , ERROR ) , new ExpandableMessage ( conditionalResult . getMessage ( ) ) . expandAll ( run , listener ) ) ; } } return new StatusResult ( PENDING , new ExpandableMessage ( "Can't define which status to set" ) . expandAll ( run , listener ) ) ; }
First matching result win. Or will be used pending state.
Messages are expanded with token macro and env variables

@return first matched result or pending state with warn msg