0
0
mirror of https://github.com/go-gitea/gitea.git synced 2025-07-23 01:11:40 +02:00
gitea/modules/projects/workflow.go
2024-04-05 14:18:51 +08:00

48 lines
908 B
Go

// Copyright 2024 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package projects
// Action represents an action that can be taken in a workflow
type Action struct {
SetValue string
}
const (
// Project workflow event names
EventItemAddedToProject = "item_added_to_project"
EventItemClosed = "item_closed"
EventItem
)
type Event struct {
Name string
Types []string
Actions []Action
}
type Workflow struct {
Name string
Events []Event
ProjectID int64
}
func ParseWorkflow(content string) (*Workflow, error) {
return &Workflow{}, nil
}
func (w *Workflow) FireAction(evtName string, f func(action Action) error) error {
for _, evt := range w.Events {
if evt.Name == evtName {
for _, action := range evt.Actions {
// Do something with action
if err := f(action); err != nil {
return err
}
}
break
}
}
return nil
}