Skip to content

Inconsistent naming of Github Status Check related predicates #921

@FloThinksPi

Description

@FloThinksPi

According to how github names their functionality according to their doc

The current predicates:

has_status:
...
has_workflow_result:
...

do not really fit into the naming from github.
For github there are checks which have an attribute called status that can have multiple values. In case the status value is completed, a check has an additional attribute called conclusion which gives more information over the termination reason.

So i would see some config similar to following example be more understandable as it uses the same terminology and hierarchy.

has_checks:
 status: ["completed"] # By default contains all possible statuses
 conclusion: ["success", "skipped"] # default, logical and with status in case status contains "completed"
 checks:
      - "check-name-1"
      - "check-name-2"
      - "check-regex-name-.*"
has_workflows:
 status: ["completed"]  # By default contains all possible statuses
 conclusion: ["success", "skipped"] # default, logical and with status in case status contains "completed"
 workflows:
      - ".github/workflows/a.yml"
      - ".github/workflows/b.yml"

Which would i suppose result in the same, current behaviour yet giving a lot more options.

It would btw also allow to put a has_check predicate into the if condition of a policybot rule allowing e.g. to enforce a rule if a check exists with any state even when not having a conclusion yet and skipping it if there is no check at all by the if condition of a rule.
I currently am fiddling around tying to implement support for that scenario where i want to require a check/workflow having certain conclusions but only if the check/workflow actually was triggered/created and im struggling to add this into the current naming schema of has_workflow_results as well as has_status.

Whats the opinions regarding the naming of these predicates ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions