diff --git a/.github/workflows/re-run-pull-request-github-actions.yml b/.github/workflows/re-run-pull-request-github-actions.yml
deleted file mode 100644
index 4a2fddf..0000000
--- a/.github/workflows/re-run-pull-request-github-actions.yml
+++ /dev/null
@@ -1,65 +0,0 @@
-name: Re-run CI tests on open PRs
-
-on:
-  push:
-    branches:
-      - master
-
-jobs:
-  re-run-github-actions:
-    runs-on: ubuntu-latest
-    steps:
-      - name: (GET-&-PUT Github API) Push empty commit to PR branch
-        uses: actions/github-script@0.2.0
-        with:
-          github-token: ${{secrets.PAT}}
-          script: |
-            const owner = context.repo.owner;
-            const repo = context.repo.repo;
-            const {data: pullRequests} = await github.pulls.list({
-              owner,
-              repo,
-              base: "master",
-              state: "open",
-            });
-        
-            for (pr of pullRequests) {
-              try {
-                let pullReq = {};
-                while (pullReq.mergeable === undefined || pullReq.mergeable === null) {
-                  pullReq = (
-                    await github.pulls.get({
-                      owner,
-                      repo,
-                      pull_number: pr.number,
-                    })
-                  ).data;
-                }
-                if(pullReq.mergeable === false) continue;
-
-                const {data: commitData} = await github.repos.getCommit({
-                  owner,
-                  repo,
-                  ref: pullReq.head.sha,
-                });
-
-                const {data: createdCommit} = await github.git.createCommit({
-                  owner,
-                  repo,
-                  message: "trigger github actions",
-                  tree: commitData.commit.tree.sha,
-                  parents: [commitData.sha],
-                  commiter: context.payload.pusher,
-                  author: context.payload.pusher,
-                });
-
-                await github.git.updateRef({
-                  owner,
-                  repo,
-                  ref: `heads/${pr.head.ref}`,
-                  sha: createdCommit.sha,
-                });
-              } catch (err) {
-                console.log(err);
-              }
-            }
diff --git a/core/pom.xml b/core/pom.xml
index b41da08..e3e77e1 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -10,9 +10,9 @@
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 		<spring.version>5.3.7</spring.version>
 		<jersey.version>1.19.4</jersey.version>
-		<jetty.version>9.4.40.v20210413</jetty.version>
+		<jetty.version>9.4.41.v20210516</jetty.version>
 		<hibernate.version>5.4.29.Final</hibernate.version>
-		<flyway.version>7.8.2</flyway.version>
+		<flyway.version>7.9.1</flyway.version>
 		<log4j.version>2.14.1</log4j.version>
 		<krill.version>[0.59.3,)</krill.version>
 		<koral.version>[0.37,)</koral.version>
