Create GraphQL interface for web_url field

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

In !73603 (merged), we’re introducing a Todoable GraphQL interface that is implemented by to-do item targets, such as merge requests and designs. The interface requires a web_url field because it should be available across all to-do items.

@.luke raised the following thought on the MR:

We define this field in TodoableInterface - but I can see the value in having a more specific description. The other alternative would be to remove this field from being defined in every type that implements the interface 🤔 I'm not sure which I prefer. What are your thoughts about it being defined in these types too, as well as the interface?

We decided to keep the web_url on the Todoable interface, however web_url shouldn’t be explicitly be required by that interface because the field isn’t unique to to-do item targets.

Proposal

Once ruby-graphql is upgraded to >= 1.13.0 (see !27536 (merged)), we can introduce a Urlable/Locatable (tentative name) interface that has the web_url field. This will be possible because GraphQL interfaces can implement other interfaces then.

Edited by 🤖 GitLab Bot 🤖