Description
It'd be really handy to have a tags field added to individual Pacts, broadly as follows:
{ ...
"request": ...,
"response": ...,
"tags": ["regression", "JIRA-123", "performance", ...],
...
}
A lot of the time I don't need to execute every Pact to test a change, and I want to reuse my Pacts for purposes other than integration testing. This would allow us to select specific subsets of Pacts to execute in certain circumstances. For example, if we want to retest JIRA-123, the above Pact would be one of potentially several selected; if we don't want a full regression run, we might want to exclude this test; if we want this test to be reused as a performance test case, then we can auto-generate JMeter/K6 tests from the Pact, and so on. For negative testing, I might want to tag a Pact as "fuzzable", so I can use security tools to fuzz different fields in the request and ensure that I always get a HTTP 4xx status being returned (rather than a 2xx or 5xx).
Tags themselves should be arbitrarily-named (i.e. not a predefined list), and support multiple tags for each Pact.
Broker could probably add support for this pretty easily, and it'd add a lot of flexibility to how people can use Pact. In particular, it'd let us adapt Pact to our ideal workflows, rather than adapt those workflows to support Pact