2025-01-14 11:17:42 +00:00
// Copyright 2024 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package structs
Actions Failure, Succes, Recover Webhooks (#7508)
Implement Actions Success, Failure and Recover webhooks for Forgejo, Gitea, Gogs, Slack, Discord, DingTalk, Telegram, Microsoft Teams, Feishu / Lark Suite, Matrix, WeCom (Wechat Work), Packagist. Some of these webhooks have not been manually tested.
Implement settings for these new webhooks.
## Checklist
The [contributor guide](https://forgejo.org/docs/next/contributor/) contains information that will be helpful to first time contributors. There also are a few [conditions for merging Pull Requests in Forgejo repositories](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md). You are also welcome to join the [Forgejo development chatroom](https://matrix.to/#/#forgejo-development:matrix.org).
### Tests
- I added test coverage for Go changes...
- [x] in their respective `*_test.go` for unit tests.
- [x] in the `tests/integration` directory if it involves interactions with a live Forgejo server.
- I added test coverage for JavaScript changes...
- [ ] in `web_src/js/*.test.js` if it can be unit tested.
- [ ] in `tests/e2e/*.test.e2e.js` if it requires interactions with a live Forgejo server (see also the [developer guide for JavaScript testing](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/tests/e2e/README.md#end-to-end-tests)).
### Documentation
- [ ] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change.
- [x] I did not document these changes and I do not expect someone else to do it.
### Release notes
- [ ] I do not want this change to show in the release notes.
- [x] I want the title to show in the release notes with a link to this pull request.
- [ ] I want the content of the `release-notes/<pull request number>.md` to be be used for the release notes instead of the title.
<!--start release-notes-assistant-->
## Release notes
<!--URL:https://codeberg.org/forgejo/forgejo-->
- Features
- [PR](https://codeberg.org/forgejo/forgejo/pulls/7508): <!--number 7508 --><!--line 0 --><!--description QWN0aW9ucyBGYWlsdXJlLCBTdWNjZXMsIFJlY292ZXIgV2ViaG9va3M=-->Actions Failure, Succes, Recover Webhooks<!--description-->
<!--end release-notes-assistant-->
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7508
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: christopher-besch <mail@chris-besch.com>
Co-committed-by: christopher-besch <mail@chris-besch.com>
2025-06-03 14:29:19 +02:00
import (
"time"
)
2025-01-14 11:17:42 +00:00
// ActionRunJob represents a job of a run
// swagger:model
type ActionRunJob struct {
// the action run job id
ID int64 ` json:"id" `
// the repository id
RepoID int64 ` json:"repo_id" `
// the owner id
OwnerID int64 ` json:"owner_id" `
// the action run job name
Name string ` json:"name" `
// the action run job needed ids
Needs [ ] string ` json:"needs" `
// the action run job labels to run on
RunsOn [ ] string ` json:"runs_on" `
// the action run job latest task id
TaskID int64 ` json:"task_id" `
// the action run job status
Status string ` json:"status" `
}
Actions Failure, Succes, Recover Webhooks (#7508)
Implement Actions Success, Failure and Recover webhooks for Forgejo, Gitea, Gogs, Slack, Discord, DingTalk, Telegram, Microsoft Teams, Feishu / Lark Suite, Matrix, WeCom (Wechat Work), Packagist. Some of these webhooks have not been manually tested.
Implement settings for these new webhooks.
## Checklist
The [contributor guide](https://forgejo.org/docs/next/contributor/) contains information that will be helpful to first time contributors. There also are a few [conditions for merging Pull Requests in Forgejo repositories](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md). You are also welcome to join the [Forgejo development chatroom](https://matrix.to/#/#forgejo-development:matrix.org).
### Tests
- I added test coverage for Go changes...
- [x] in their respective `*_test.go` for unit tests.
- [x] in the `tests/integration` directory if it involves interactions with a live Forgejo server.
- I added test coverage for JavaScript changes...
- [ ] in `web_src/js/*.test.js` if it can be unit tested.
- [ ] in `tests/e2e/*.test.e2e.js` if it requires interactions with a live Forgejo server (see also the [developer guide for JavaScript testing](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/tests/e2e/README.md#end-to-end-tests)).
### Documentation
- [ ] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change.
- [x] I did not document these changes and I do not expect someone else to do it.
### Release notes
- [ ] I do not want this change to show in the release notes.
- [x] I want the title to show in the release notes with a link to this pull request.
- [ ] I want the content of the `release-notes/<pull request number>.md` to be be used for the release notes instead of the title.
<!--start release-notes-assistant-->
## Release notes
<!--URL:https://codeberg.org/forgejo/forgejo-->
- Features
- [PR](https://codeberg.org/forgejo/forgejo/pulls/7508): <!--number 7508 --><!--line 0 --><!--description QWN0aW9ucyBGYWlsdXJlLCBTdWNjZXMsIFJlY292ZXIgV2ViaG9va3M=-->Actions Failure, Succes, Recover Webhooks<!--description-->
<!--end release-notes-assistant-->
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7508
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: christopher-besch <mail@chris-besch.com>
Co-committed-by: christopher-besch <mail@chris-besch.com>
2025-06-03 14:29:19 +02:00
// ActionRun represents an action run
// swagger:model
type ActionRun struct {
// the action run id
ID int64 ` json:"id" `
// the action run's title
Title string ` json:"title" `
// the repo this action is part of
Repo * Repository ` json:"repository" `
// the name of workflow file
WorkflowID string ` json:"workflow_id" `
// a unique number for each run of a repository
Index int64 ` json:"index_in_repo" `
// the user that triggered this action run
TriggerUser * User ` json:"trigger_user" `
// the cron id for the schedule trigger
ScheduleID int64
// the commit/tag/… the action run ran on
PrettyRef string ` json:"prettyref" `
// has the commit/tag/… the action run ran on been deleted
IsRefDeleted bool ` json:"is_ref_deleted" `
// the commit sha the action run ran on
CommitSHA string ` json:"commit_sha" `
// If this is triggered by a PR from a forked repository or an untrusted user, we need to check if it is approved and limit permissions when running the workflow.
IsForkPullRequest bool ` json:"is_fork_pull_request" `
// may need approval if it's a fork pull request
NeedApproval bool ` json:"need_approval" `
// who approved this action run
ApprovedBy int64 ` json:"approved_by" `
// the webhook event that causes the workflow to run
Event string ` json:"event" `
// the payload of the webhook event that causes the workflow to run
EventPayload string ` json:"event_payload" `
// the trigger event defined in the `on` configuration of the triggered workflow
TriggerEvent string ` json:"trigger_event" `
// the current status of this run
Status string ` json:"status" `
// when the action run was started
Started time . Time ` json:"started,omitempty" `
// when the action run was stopped
Stopped time . Time ` json:"stopped,omitempty" `
// when the action run was created
Created time . Time ` json:"created,omitempty" `
// when the action run was last updated
Updated time . Time ` json:"updated,omitempty" `
// how long the action run ran for
Duration time . Duration ` json:"duration,omitempty" `
// the url of this action run
HTMLURL string ` json:"html_url" `
}