Skip to content
David Benedeki edited this page Oct 30, 2025 · 3 revisions

Requirements, Specification, Evolution Roadmap

(All the examples are meant as input parameters for the GH-automation action within a GitHub workflow - job - step.)

Useless prototype / POC

  • Runs on schedule
  • Runs on dispatch
  • The subject of the action is a GitHub issue (or a set of them)
  • Input
    • Project test field
    • Project test field value
    • Project target field
    • Project target field value
  • Recognizes keywords
    • @unassigned
    • Iteration: @current,@previous,@next
    • Date: @today, @yesterday, @tomorrow,…
  • Output
    • Target field
    • Assigned value (decoded keyword)
  • Executes the change on the subject issue, changing the value of the target field to the desired value if test-field == test-value.

Behavior:

If the test field equals the test value, target field is assigned the target value. Example (moving the Issue from previous sprint into a current one):

test-field: Sprint
test-value: @previous
target-field: Sprint
target-value: @current

First use

  • Expressions support in test condition
  • Expression allows comparison and logical operators
  • Ideally expression allows an in and not in operators too

**Example (actual really usable move of issue to next spring):

condition: `Sprint`== @previous && !(`Status` in ('Backlog`,'Done'))
target-field: Sprint
target-value: @current

Advanced processing

  • Expressions in target value
  • Arithmetic operators in expressions
  • Maybe assignment operators
    • This would allow multiple assignments per one execution greatly increasing efficiency
    • The target-field and target-value would then be replaced with something like command
    • command then would need to support multiple expressions

Example:

condition: `Sprint`== @previous && !(`Status` in ('Backlog`,'Done'))
command: [
  `Sprint` := @current,
  `Duration` := `Duration` + 1
]

JIT running

  • Possibility to trigger the workflow on project field change too
  • Possible problem - avoid recursion

Enhanced scope

  • be able to work and affect both project and native GH item fields (Labels, Assignee, …)

Enhanced reach

The goal is to be able to interact with related issues

  • Parent
  • Children
  • Linked PRs or issues
  • Dependent/dependee issues

Even more efficient

Input can have multiple conditions and each condition multiple assignments