feat: add repo-pull action to re-clone/pull repository and redeploy app

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
Jakub Dorfman 2026-04-29 18:47:11 +02:00
parent 4ec759296b
commit 4be4ae4144
2 changed files with 100 additions and 0 deletions

View file

@ -390,6 +390,7 @@ const api = {
deploy: (n) => api.request(`/apps/${n}/deploy`, "POST"),
restart: (n) => api.request(`/apps/${n}/restart`, "POST"),
stop: (n) => api.request(`/apps/${n}/stop`, "POST"),
repoPull: (n) => api.request(`/apps/${n}/repo-pull`, "POST"),
remove: (n, keep) => api.request(`/apps/${n}/remove`, "POST", { keepVolumes: keep }),
saveCompose: (n, c) => api.request(`/apps/${n}/compose`, "POST", { content: c }),
validateCompose: (n) => api.request(`/apps/${n}/validate-compose`, "POST"),
@ -534,6 +535,7 @@ function renderAppCard(app) {
<button class="btn-sm btn-primary" data-action="deploy" data-app="${app.name}">Deploy</button>
<button class="btn-sm" data-action="restart" data-app="${app.name}">Restart</button>
<button class="btn-sm" data-action="stop" data-app="${app.name}">Stop</button>
<button class="btn-sm" data-action="repo-pull" data-app="${app.name}">Git Pull</button>
<button class="btn-sm btn-danger" data-action="remove" data-app="${app.name}">Remove</button>
</div>
</div>
@ -699,6 +701,12 @@ async function handleAction(action, name, btnElement) {
setStatus(`Stopped ${name}.`);
await loadApps();
break;
case "repo-pull":
setStatus(`Pulling repo for ${name}...`);
await api.repoPull(name);
setStatus(`Repo pulled for ${name}.`);
await loadApps();
break;
case "remove": {
const keep = confirm("Keep volumes? OK = keep, Cancel = delete everything.");
setStatus(`Removing ${name}...`);