guardian / guardian/prout

Raise visibility of diagnostic information, especially when things are going wrong

Open
#112 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Scala
Stars
147
Forks
15
Avg merge
3d 7h
Merged PRs (30d)
2

Description

Although Prout has a very useful diagnostic UI, ie: https://prout-bot.herokuapp.com/view/guardian/support-frontend

![image](https://github.com/guardian/prout/assets/52038/25e5bf45-8521-4b69-927d-c9214491216d)

...it's currently not well known to users of Prout - the URL for the diagnostic is not easily discoverable. Consequently, users can miss out on useful information like this (see https://github.com/guardian/support-frontend/pull/5152):

> **PROD** - https://support.theguardian.com/uk
> ❌ Could not read from this url, got java.net.ProtocolException: Too many follow-up requests: 21

There are a couple of things that could be done about this:

* **Add a link to Prout's diagnostic UI in the comments Prout writes on PRs** - the only problem with that is that I think that Prout currently does not know it's own hostname - that would have to be supplied through configuration.
* **Supply details of checkpoint failure in the comment when a PR is overdue** - this might be more fun to do! Note that we can use the [existing diagnostic information available in the UI](https://github.com/guardian/prout/blob/705f02af7e00d59be83a7f1dcaceb2146ce0dd5b/app/views/userPages/repo.scala.html#L57-L70), we just need to make it in markdown. When the checkpoint:
* **_does_ supply a git id, but it's old** : state that it's old, and perhaps even supply a link to a diff between what's there and what this PR would supply
* **can be read, but no git id can be found** : provide a link to a tutorial explaining how to embed a git commit id in the HTTP response
* **can not even be successfully read as an HTTP endpoint** : supply the exception

Contributor guide

Open the contributing guide

Research direction

Start with the existing diagnostic information in app/views/userPages/repo.scala.html, especially the referenced lines, then trace how Prout writes comments on pull requests and handles overdue checkpoints. Determine which diagnostic cases can be represented in Markdown and how the diagnostic UI URL could be supplied through configuration. Done means overdue or failing checkpoints expose actionable diagnostic details in PR comments.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
devops, observability
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.