The calendar and the part that has to move
GitHub is retiring Spark on github.com. From 3 August 2026 the service accepts no new users and allows no new apps, and existing users are asked to export their app code by 31 August 2026. Apps already deployed keep working after the shutdown, so what closes is the surface the apps were made on rather than the apps. The only group affected is those calling Spark's llm() function; GitHub Models, Spark's inference service, was already retired on 30 July 2026.[1]
That is exactly the part that has to move. Export runs from the workbench overflow menu with Create repository and leaves a repository behind. The owner of an app that calls llm() has instead to wire up an inference provider, carry their own API key and manage their own billing. In Spark, model, hosting and billing sat behind one surface; after the export the team owns the repository and takes on the vendor relationship with it. The bottleneck moves from producing the app to choosing and running the provider that feeds it.[1]
The second door opened the same day
On the same day GitHub put a button in the Code Quality section of repository settings that enables coverage in one click. Pressing it makes an agent open a pull request with a workflow that builds the code, runs the tests, produces a coverage report and uploads the result to GitHub; the workflow is permissioned by least privilege by default. The feature is in public preview and open to all Code Quality users on github.com; it works on GitHub Enterprise Cloud and Team, and is not yet on GitHub Enterprise Server.[2]
Put the two changes side by side and a shared form appears. In each case what GitHub hands the developer is a file that enters the repository and can be read and edited, rather than a result that stays inside the product: exported app code on one side, a reviewable pull request on the other. I think that is a concrete instance of value shifting from the product surface to the repository and the provider account behind it. A weaker reading is available: the two decisions may be independent, one a retirement driven by low usage and the other an ordinary step on a coverage roadmap, with no common direction between them. Neither announcement gives usage data that would separate the two.[1], [2]
Where to look
For a developer the next piece of work is visible. Which provider replaces the llm() calls in an exported Spark app, and whether that choice is written into the repository as configuration, is the cheapest indicator that the migration actually finished. The coverage side has a comparable measure: whether the pull request the agent opens survives review unedited. Both can be counted from outside, and both are independent of what the announcements claim.[1], [2]