"This check run is not rerequestable"

Goal:

At a high level I am trying to create a Github action/set of actions that:

  1. Adds a comment on a given pull request with a task in the comment body and
  2. Checks to make sure that all tasks are marked as completed. Additionally I want this action to serve as a status check on the PR itself (which fails if not all tasks have been marked as completed).

Current state:

Currently I have this implements as two actions.

Action #1 : Comments on the PR and checks that all tasks are completed. Event triggers on that action look like this:

on:
  push:
    branches-ignore:
      - master
  check_run:
    types: [rerequested]

This works well for pushes to the pull request but I need the action to be triggered when the comment added by this action is updated (tasks are marked as completed)

Action #2 : Listens for comments edits and attempts to re-request action #1 (note the trigger added in action #1 under check_run .

The problem I am currently running into is that when action #2 runs and attempts to re-request the check run via

github.request("POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest")

I am getting the following error code HttpError: This check run is not rerequestable
Just for investigatory purposes I also attempted to manually update the conclusion of said status check and was getting HttpError: Not Found .

Any insight into how I can make this action re-requestable would be greatly appreciated! Ty in advance!

Okay so update to anyone who comes across this:

Issue #1:
This check run is not rerequestable. Still not entirely clear on this, but ostensibly status checks derived from workflows are not re-requestable? Would love if someone could correct my understanding here.

Issue #2:

  check_run:
    types: [rerequested]

this was kind of a misunderstanding on my part. Eventually I actually was able to get the workflow retriggered with the workflow_dispatch trigger and octokit/rest.js. the problem is that this still did not become the actual status check on the PR.

Issue #3:

I also attempted to manually update the conclusion of said status check and was getting HttpError: Not Found .

Okay this was just a straight bug on my part, was actually just able to update directly with octokit/rest.js.

TLDR:
So seems like thats the only path is to find/manually update the check run via the API. Still need to update the surrounding meta data to point to another job with more correct run information, but at least the status check on the PR itself looks good now ¯_(ツ)_/¯

Would you be up for sharing your code?

I’ve been toying w/ doing some of these things for GitHub - check-spelling/check-spelling: Spelling checker action and hadn’t managed to.

I’ve been using a comment handler and a deploy key to trigger a new round of validations, which works well enough for my use case, but there are some things where it’d be nice if I didn’t have to rely on a deploy key