UPDATE activity
SET actor_id = (
SELECT p.pusher_id FROM push_events p
WHERE p.repo_id = activity.repo_id
AND p.pusher_id IS NOT NULL
AND p.before_sha = json_extract(activity.data, '$.before')
AND p.after_sha = json_extract(activity.data, '$.after')
AND (p.ref = 'refs/heads/' || json_extract(activity.data, '$.ref')
OR p.ref = 'refs/tags/' || json_extract(activity.data, '$.ref'))
LIMIT 1
)
WHERE actor_id IS NULL
AND kind IN ('push', 'ref_created', 'ref_deleted')
AND EXISTS (
SELECT 1 FROM push_events p
WHERE p.repo_id = activity.repo_id
AND p.pusher_id IS NOT NULL
AND p.before_sha = json_extract(activity.data, '$.before')
AND p.after_sha = json_extract(activity.data, '$.after')
AND (p.ref = 'refs/heads/' || json_extract(activity.data, '$.ref')
OR p.ref = 'refs/tags/' || json_extract(activity.data, '$.ref'))
);