Skip to content

GH Audit Anomaly Alert: 1 suspicious operations detected #34764

Closed

Description

@alex-solovyev

GH Audit Anomaly Report

Scan time: 2026-10-15T09:14:59Z
Anomalies found: 1
Log scanned: Lines 2449–3094 of gh-audit.log

Anomalous Entries

Timestamp Op Repo Number Signals Caller
2026-10-14T14:21:02Z issue_edit [private repository] #13090 protected_label_removed:status:in-progress main

Next Steps

Review owner: the runner that filed this alert (the issue author). The evidence in gh-audit.log exists only on that runner, so this alert is labelled no-auto-dispatch and is never dispatched to workers.

  1. Review each entry in ~/.aidevops/logs/gh-audit.log, including each snapshot's capture_status.
  2. Verify the current GitHub state and cross-reference the events API:
    gh api /repos/OWNER/REPO/issues/N/events --jq '[.[] | select(.event == "renamed")]'
  3. A state_capture_unavailable:* signal means the audit read failed; it is not evidence that content was wiped.
  4. If a destructive edit is confirmed, recover content from GitHub history or a committed backup. The audit log stores lengths, not content.
  5. See reference/gh-audit-log.md for the forensics workflow.

aidevops.sh v3.39.32 automated scan.

Activity

  1. added
    no-auto-dispatchOpt-out: block all auto-dispatch on this issue
    monitoringAuto-created from TODO.md tag
    origin:workerCreated by headless/pulse worker session
    on Oct 15, 2026
  2. marcusquinn commented on Oct 15, 2026

    @marcusquinn
    Owner

    #13090 checked: benign worker blocked exit, no restoration needed

    The single entry, [private repository] #13090 at 2026-10-14T14:21:02Z, is the same issue that #34534 reported on 2026-10-13. This time it records a second worker exit with the same blocker. I checked it with maintainer access to that repository. Its name stays redacted here.

    Issue timeline (UTC, 2026-10-14)

    Time Event Actor
    14:11:16 status:blocked → status:available another runner account
    14:13:49–14:15:06 dispatch claim and lease; assigned; status:available → status:queued → status:in-progress producing account (this alert's author)
    14:20:56 worker posts an evidenced BLOCKED checkpoint: no replacement PR, because a required deployment configuration value is still not configured same worker
    14:21:00 status:in-progress removed, status:blocked added same worker
    14:22:13–14:22:29 CLAIM_RELEASED reason=blocked; unassigned; lease terminal same worker

    Checks against reference/gh-audit-log.md

    • Label delta: GitHub records only status:in-progress → status:blocked, 2 s before the audit timestamp. This matches the alert's single signal. It is an evidenced worker exit, like the GH#34361 worked example.
    • Title/body: no renamed events. GraphQL lastEditedAt is null and userContentEdits is 0, so the issue body has never been edited. The issue is still open, with a nonempty title and body.
    • Snapshot capture_status: I could not check it. The entry is only in the producing runner's gh-audit.log, and this runner's log has no entry for GH#13087: tighten story.md Quick Reference — merge redundant sections #13090. The GitHub history above settles the content question either way.

    Scanner behaviour: this is correct as designed. The caller is generic main with no verified-transition provenance, so the doc says not to suppress progress-to-blocked removals by destination label alone. The audit record and scanner filters stay unchanged.

    Source task (not part of this alert): the source issue has now been blocked twice in about 34 hours by the same missing configuration value. Each time it was reset to available and redispatched. The source repository's owner should give that issue a durable hold until the value exists, so it stops costing worker launches. Closing this alert does not unblock or complete the source task.

    Closing as investigated.


    aidevops.sh v3.39.32 plugin for OpenCode v1.19.0 with claude-opus-5-5 spent 2m and 4,246 tokens on this with the user in an interactive session.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    monitoringAuto-created from TODO.md tagno-auto-dispatchOpt-out: block all auto-dispatch on this issueorigin:workerCreated by headless/pulse worker sessionstatus:availableTask is available for claiming

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions