Skip to content

Commit eba72df

Browse files
committed
fix(task_params): null pointer
1 parent 1bde5c9 commit eba72df

File tree

3 files changed

+20
-10
lines changed

3 files changed

+20
-10
lines changed

api/integration.go

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@ import (
55
"crypto/sha256"
66
"encoding/json"
77
"fmt"
8-
"github.com/semaphoreui/semaphore/pkg/conv"
9-
"github.com/semaphoreui/semaphore/services/server"
10-
task2 "github.com/semaphoreui/semaphore/services/tasks"
118
"io"
129
"net/http"
1310
"strings"
1411

12+
"github.com/semaphoreui/semaphore/pkg/conv"
13+
"github.com/semaphoreui/semaphore/services/server"
14+
task2 "github.com/semaphoreui/semaphore/services/tasks"
15+
1516
"github.com/semaphoreui/semaphore/api/helpers"
1617
"github.com/semaphoreui/semaphore/db"
1718
log "github.com/sirupsen/logrus"
@@ -270,8 +271,16 @@ func GetTaskDefinition(integration db.Integration, payload []byte, r *http.Reque
270271

271272
var extractedEnvResults = Extract(envValues, r, payload)
272273

273-
taskDefinition = integration.TaskParams.CreateTask()
274-
taskDefinition.TemplateID = integration.TemplateID
274+
if integration.TaskParams != nil {
275+
taskDefinition = integration.TaskParams.CreateTask(integration.TemplateID)
276+
} else {
277+
taskDefinition = db.Task{
278+
ProjectID: integration.ProjectID,
279+
TemplateID: integration.TemplateID,
280+
}
281+
}
282+
283+
taskDefinition.IntegrationID = &integration.ID
275284

276285
var env map[string]any
277286
err = json.Unmarshal([]byte(taskDefinition.Environment), &env)

db/TaskParams.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ type TaskParams struct {
2020
Params MapStringAnyField `db:"params" json:"params,omitempty"`
2121
}
2222

23-
func (p TaskParams) CreateTask() (task Task) {
23+
func (p TaskParams) CreateTask(templateID int) (task Task) {
2424
task = Task{
2525
ProjectID: p.ProjectID,
2626
Environment: p.Environment,
@@ -30,6 +30,7 @@ func (p TaskParams) CreateTask() (task Task) {
3030
Version: p.Version,
3131
InventoryID: p.InventoryID,
3232
Params: p.Params,
33+
TemplateID: templateID,
3334
}
3435

3536
return

services/schedules/SchedulePool.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package schedules
22

33
import (
4-
"github.com/semaphoreui/semaphore/services/server"
5-
"github.com/semaphoreui/semaphore/util"
64
"strconv"
75
"sync"
86
"time"
97

8+
"github.com/semaphoreui/semaphore/services/server"
9+
"github.com/semaphoreui/semaphore/util"
10+
1011
"github.com/robfig/cron/v3"
1112
"github.com/semaphoreui/semaphore/db"
1213
"github.com/semaphoreui/semaphore/db_lib"
@@ -103,8 +104,7 @@ func (r ScheduleRunner) Run() {
103104
return
104105
}
105106

106-
task := schedule.TaskParams.CreateTask()
107-
task.TemplateID = schedule.TemplateID
107+
task := schedule.TaskParams.CreateTask(schedule.TemplateID)
108108
task.ScheduleID = &schedule.ID
109109

110110
_, err = r.pool.taskPool.AddTask(

0 commit comments

Comments
 (0)