GraphQL field `Milestone.report` should never raise an exception
The GraphQL field Milestone.report
(along with all fields
implemented by ee/app/graphql/resolvers/timebox_report_resolver.rb
)
is implemented incorrectly.
Specifically, resolvers should be pure functions, and never raise for expected states. The field here raises if:
- the milestone does not have a due date set
- the milestone does not have a start date set
- the license does not support burnup reports
- other states?
We should not raise exceptions here - especially not when milestones lack the date fields, which is a completely normal and legal state.