GitRoot

Craft your forge, Build your project, Grow your community freely
 1// SPDX-FileCopyrightText: 2026 Romain Maneschi <romain@gitroot.dev>
 2//
 3// SPDX-License-Identifier: EUPL-1.2
 4
 5package background
 6
 7import "gitroot.dev/server/plugin"
 8
 9type ScheduleTaskInput struct {
10	RepoName   string
11	PluginPurl string
12	PluginRun  *plugin.PluginRun
13}
14
15func (m *Manager) Schedule(task ScheduleTaskInput) {
16	m.Start(Task{
17		call: m.schedule,
18		t:    task,
19	})
20}
21
22func (m *Manager) schedule(input interface{}) error {
23	scheduleInput := input.(ScheduleTaskInput)
24	if err := m.pluginManager.Schedule(m.ctx, scheduleInput.RepoName, scheduleInput.PluginPurl, scheduleInput.PluginRun); err != nil {
25		m.logger.Error("schedule error", err)
26	}
27
28	return nil
29}