Backport #38653 by @Zettat123
The handler of `/actions/runs/{run}/approve` doesn't check if the run is
already approved. If a run is re-approved, its jobs' status will be
reset to `StatusWaiting`, causing incorrect job status.
Co-authored-by: Zettat123 <zettat123@gmail.com>