30 lines
862 B
Markdown
30 lines
862 B
Markdown
# Repository validation
|
|
|
|
This is where the validation rules that run against the various repository categories live.
|
|
|
|
## Structure
|
|
|
|
- There is one file pr. rule.
|
|
- All rule needs tests to verify every possible outcome for the rule.
|
|
- It's better with multiple files than a big rule.
|
|
- All rules uses `ActionValidationBase` as the base class.
|
|
- Only use `validate` or `async_validate` methods to define validation rules.
|
|
- If a rule should fail, raise `ValidationException` with the failure message.
|
|
|
|
|
|
## Example
|
|
|
|
```python
|
|
from .base import (
|
|
ActionValidationBase,
|
|
ValidationBase,
|
|
ValidationException,
|
|
)
|
|
|
|
class SuperAwesomeRepository(ActionValidationBase):
|
|
category = "integration"
|
|
|
|
async def async_validate(self):
|
|
if self.repository != "super-awesome":
|
|
raise ValidationException("The repository is not super-awesome")
|
|
``` |