diff --git a/src/main/kotlin/de/fraunhofer/iem/dataprovider/WebSecurityConfiguration.kt b/src/main/kotlin/de/fraunhofer/iem/dataprovider/WebSecurityConfiguration.kt
index 921cb19f73fc2d0689888c2d40808b872d5e9522..be7ce0eff68f66866331701611fe3728c39a5396 100644
--- a/src/main/kotlin/de/fraunhofer/iem/dataprovider/WebSecurityConfiguration.kt
+++ b/src/main/kotlin/de/fraunhofer/iem/dataprovider/WebSecurityConfiguration.kt
@@ -18,6 +18,7 @@ class SecurityConfiguration {
             authorizeExchange {
                 authorize("/gitlab/repoChanged", permitAll)
                 authorize("/gitlab/repoChangedPath", permitAll)
+                authorize("/gitlab/test", permitAll)
             }
             csrf {
                 disable()
diff --git a/src/main/kotlin/de/fraunhofer/iem/dataprovider/gitlab/GitlabController.kt b/src/main/kotlin/de/fraunhofer/iem/dataprovider/gitlab/GitlabController.kt
index 324a4dfda081c3495399573683073290463356ae..e9429a96070b26ff26d55d12422bb8786408dfa8 100644
--- a/src/main/kotlin/de/fraunhofer/iem/dataprovider/gitlab/GitlabController.kt
+++ b/src/main/kotlin/de/fraunhofer/iem/dataprovider/gitlab/GitlabController.kt
@@ -1,6 +1,10 @@
 package de.fraunhofer.iem.dataprovider.gitlab
 
 import de.fraunhofer.iem.dataprovider.logger.getLogger
+import de.fraunhofer.iem.dataprovider.taskManager.TaskManager
+import de.fraunhofer.iem.dataprovider.taskManager.tasks.ProcessTask
+import de.fraunhofer.iem.dataprovider.taskManager.tasks.TaskType
+import org.springframework.web.bind.annotation.GetMapping
 import org.springframework.web.bind.annotation.PostMapping
 import org.springframework.web.bind.annotation.RequestBody
 import org.springframework.web.bind.annotation.RequestMapping
@@ -14,7 +18,7 @@ data class RepositoryChangedDto(val repoId: Long, val platform: Platform)
 data class RepositoryChangedPathDto(val path: String, val platform: Platform)
 @RestController
 @RequestMapping("/gitlab")
-class GitlabController(private val gitlabService: GitlabService) {
+class GitlabController(private val gitlabService: GitlabService, private val taskManager: TaskManager) {
 
     private val logger = getLogger(javaClass)
 
@@ -44,4 +48,9 @@ class GitlabController(private val gitlabService: GitlabService) {
             }
         }
     }
+
+    @GetMapping("/test")
+    suspend fun test() {
+        taskManager.addTask(ProcessTask(TaskType.REPO_CHANGED))
+    }
 }
\ No newline at end of file
diff --git a/src/main/kotlin/de/fraunhofer/iem/dataprovider/taskManager/tasks/ProcessTask.kt b/src/main/kotlin/de/fraunhofer/iem/dataprovider/taskManager/tasks/ProcessTask.kt
new file mode 100644
index 0000000000000000000000000000000000000000..220f319c3377d9c9906292e0293212c59addf637
--- /dev/null
+++ b/src/main/kotlin/de/fraunhofer/iem/dataprovider/taskManager/tasks/ProcessTask.kt
@@ -0,0 +1,31 @@
+package de.fraunhofer.iem.dataprovider.taskManager.tasks
+
+sealed class ProcessTask(protected open vararg val flags: String): Task() {
+
+    protected abstract val execPath: String
+
+    override suspend fun execute() {
+
+        val p = ProcessBuilder(execPath, *flags)
+            .start()
+
+        p.onExit().thenApply { p1 ->
+            handleProcessReturn(p1)
+        }
+
+    }
+
+    abstract fun handleProcessReturn(p: Process)
+}
+
+class JavaTask(
+    override val type: TaskType,
+    override val execPath: String,
+    override vararg val flags: String,
+    val addTask: (task: Task) -> Unit
+): ProcessTask() {
+
+    override fun handleProcessReturn(p: Process) {
+        addTask(DoneTask("Done with external process. Exit value ${p.exitValue()}"))
+    }
+}
\ No newline at end of file