# Gas repricing workflow
```mermaid
flowchart TD
Nums[Gas repricing in a doc]
File[Script or Makefile]
STEELRepo[STEEL<br/>repo<br/>PR with the title repricing]
PitstopGeth[CI trigger on PR for pitstop geth<br/> branch called repricing/geth-repricing]
STEELFill[STEEL<br/>fill using above branch <br/>repricing.tar.gz]
PitstopAll[pitstop all<br/>client images]
GABench[Gas<br/>benchmarker]
Nums --> File
File --> STEELRepo
File --> PitstopAll
STEELRepo --> PitstopGeth
PitstopGeth --> STEELFill
PitstopAll --> PandaOpsImageBuilder
PandaOpsImageBuilder --> GABench
STEELFill --> GABench
```
Here's a description of the sequence of events:
1. Maria et all. create a change to a predefined format file that contains all gas costs
2. This machine locally runs a Makefile or script
3. The Makefile triggers two paths:
a1. A PR in the STEEL repo called `repricing/<whatever>` with the specified gas costs changed (Is this bit even needed since we use something else to fill the tests?)
a2. This PR creation should create a CI job that runs `pitstop geth`, this tool replaces all the gas costs specified in a geth fork. This fork can be called `repricing/geth-<whatever>`.
a3. A subsequent PR job will be created that uses STEEL and the geth fork to fill the tests, the output is a file called `repricing-<whatever>.tar.gz`
b1. A CI job is triggered in the pitstop repo that will `pitstop all` repricing branches of the clients
b2. The PandaOps image builder is triggered to build all client images
4. Once paths `a` and `b` are done, then the gas benchmarker runs with the specified images and repricing tests (this might need to be manual, ideal if automated)