1
0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo.git synced 2025-08-05 09:55:20 +02:00

bug: unify RepoActionRun and ActionRun structs (#8250)

Two pull requests were merged at the same time

- https://codeberg.org/forgejo/forgejo/pulls/7699
- https://codeberg.org/forgejo/forgejo/pulls/7508

And added conflicting structs ActionRun modules/structs.  That broke
the forgejo development branch and a quick fix was made to resolve
the name conflict.

- https://codeberg.org/forgejo/forgejo/pulls/8066

However that creates an undesirable duplication of two structures that
serve the same purpose but are different.

- Remove RepoActionRun and replace it with ActionRun
- convert.ToActionRun has one more argument, the doer, because it
  is determined differently in the context of webhooks or API

### Tests

- No need because the two pull requests involved already have good coverage.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8250
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
Reviewed-by: klausfyhn <klausfyhn@noreply.codeberg.org>
Reviewed-by: Christopher Besch <mail@chris-besch.com>
Co-authored-by: Earl Warren <contact@earl-warren.org>
Co-committed-by: Earl Warren <contact@earl-warren.org>
This commit is contained in:
Earl Warren 2025-06-23 07:54:32 +02:00 committed by Earl Warren
parent b58cebc2d9
commit cf4d0e6c34
9 changed files with 187 additions and 140 deletions

View file

@ -894,9 +894,16 @@ func (m *webhookNotifier) ActionRunNowDone(ctx context.Context, run *actions_mod
Owner: run.TriggerUser,
}
// The doer is the one whose perspective is used to view this ActionRun.
// In the best case we use the user that created the webhook.
// Unfortunately we don't know who that was.
// So instead we use the repo owner, who is able to create webhooks and allow others to do so by making them repo admins.
// This is pretty close to perfect.
doer := run.Repo.Owner
payload := &api.ActionPayload{
Run: convert.ToActionRun(ctx, run),
LastRun: convert.ToActionRun(ctx, lastRun),
Run: convert.ToActionRun(ctx, run, doer),
LastRun: convert.ToActionRun(ctx, lastRun, doer),
PriorStatus: priorStatus.String(),
}