From e6c1992f84c897677aaa648325689234f7ef7cc9 Mon Sep 17 00:00:00 2001 From: Alexis Lefebvre Date: Sun, 7 Jul 2019 18:55:33 +0200 Subject: [PATCH] Workflow: explain how to style a workflow dump --- .../workflow/pull_request_puml_styled.png | Bin 0 -> 23183 bytes workflow/dumping-workflows.rst | 242 ++++++++++++++++++ 2 files changed, 242 insertions(+) create mode 100644 _images/components/workflow/pull_request_puml_styled.png diff --git a/_images/components/workflow/pull_request_puml_styled.png b/_images/components/workflow/pull_request_puml_styled.png new file mode 100644 index 0000000000000000000000000000000000000000..cda9233d731b5f7e3a539cb9434c6431b4b45d98 GIT binary patch literal 23183 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 graph.png +Styling +------- + +You can use `metadata` with the following keys to style the workflow: + +* for places: + * `bg_color`: a color + * `description`: a string that describe the state +* for transitions: + * `label`: a string that replace the name of the transition + * `color`: a color + * `arrow_color`: a color + +Colors can be: + +* a color name from `PlantUML's color list`_ +* HEX value `#AABBCC` +* short HEX value `#ABC` + +You can use `\n` to insert a line return. + +Below is the configuration for the pull request state machine with styling added. + +.. configuration-block:: + + .. code-block:: yaml + + # config/packages/workflow.yaml + framework: + workflows: + pull_request: + type: 'state_machine' + supports: + - App\Entity\PullRequest + initial_place: start + places: + start: ~ + coding: ~ + test: ~ + review: + metadata: + description: Human review + merged: ~ + closed: + metadata: + bg_color: DeepSkyBlue + transitions: + submit: + from: start + to: test + update: + from: [coding, test, review] + to: test + metadata: + arrow_color: Turquoise + wait_for_review: + from: test + to: review + metadata: + color: Orange + request_change: + from: review + to: coding + accept: + from: review + to: merged + metadata: + label: Accept PR + reject: + from: review + to: closed + reopen: + from: closed + to: review + + .. code-block:: xml + + + + + + + + + + App\Entity\PullRequest + + start + coding + test + + + Human review + + + merged + + + DeepSkyBlue + + + + + + start + + test + + + + coding + test + review + + test + + + Turquoise + + + + + test + + review + + + Orange + + + + + review + + coding + + + + review + + merged + + + Accept PR + + + + + review + + closed + + + + closed + + review + + + + + + + + .. code-block:: php + + // config/packages/workflow.php + $container->loadFromExtension('framework', [ + // ... + 'workflows' => [ + 'pull_request' => [ + 'type' => 'state_machine', + 'supports' => ['App\Entity\PullRequest'], + 'places' => [ + 'start', + 'coding', + 'test', + 'review' => [ + 'metadata' => [ + 'description' => 'Human review', + ], + ], + 'merged', + 'closed' => [ + 'metadata' => [ + 'bg_color' => 'DeepSkyBlue', + ], + ], + ], + 'transitions' => [ + 'submit'=> [ + 'from' => 'start', + 'to' => 'test', + ], + 'update'=> [ + 'from' => ['coding', 'test', 'review'], + 'to' => 'test', + 'metadata' => [ + 'arrow_color' => 'Turquoise', + ], + ], + 'wait_for_review'=> [ + 'from' => 'test', + 'to' => 'review', + 'metadata' => [ + 'color' => 'Orange', + ], + ], + 'request_change'=> [ + 'from' => 'review', + 'to' => 'coding', + ], + 'accept'=> [ + 'from' => 'review', + 'to' => 'merged', + 'metadata' => [ + 'label' => 'Accept PR', + ], + ], + 'reject'=> [ + 'from' => 'review', + 'to' => 'closed', + ], + 'reopen'=> [ + 'from' => 'start', + 'to' => 'review', + ], + ], + ], + ], + ]); + +The PlantUML image will look like this: + +.. image:: /_images/components/workflow/pull_request_puml_styled.png + .. _`Graphviz`: http://www.graphviz.org .. _`PlantUML`: http://plantuml.com/ +.. _`PlantUML's color list`: http://plantuml.com/en/color