This commit is contained in:
Saeed Vaziry
2024-03-24 09:56:34 +01:00
committed by GitHub
parent 884f18db63
commit 4d051330d6
1055 changed files with 14493 additions and 20278 deletions

38
app/SSH/Git/Git.php Normal file
View File

@ -0,0 +1,38 @@
<?php
namespace App\SSH\Git;
use App\Models\Site;
use App\SSH\HasScripts;
class Git
{
use HasScripts;
public function clone(Site $site): void
{
$site->server->ssh()->exec(
$this->getScript('clone.sh', [
'host' => str($site->getFullRepositoryUrl())->after('@')->before('-'),
'repo' => $site->getFullRepositoryUrl(),
'path' => $site->path,
'branch' => $site->branch,
'key' => $site->getSshKeyName(),
]),
'clone-repository',
$site->id
);
}
public function checkout(Site $site): void
{
$site->server->ssh()->exec(
$this->getScript('checkout.sh', [
'path' => $site->path,
'branch' => $site->branch,
]),
'checkout-branch',
$site->id
);
}
}

View File

@ -0,0 +1,7 @@
if ! cd __path__; then
echo 'VITO_SSH_ERROR' && exit 1
fi
if ! git checkout -f __branch__; then
echo 'VITO_SSH_ERROR' && exit 1
fi

27
app/SSH/Git/scripts/clone.sh Executable file
View File

@ -0,0 +1,27 @@
echo "Host __host__-__key__
Hostname __host__
IdentityFile=~/.ssh/__key__" >> ~/.ssh/config
ssh-keyscan -H __host__ >> ~/.ssh/known_hosts
rm -rf __path__
if ! git config --global core.fileMode false; then
echo 'VITO_SSH_ERROR' && exit 1
fi
if ! git clone -b __branch__ __repo__ __path__; then
echo 'VITO_SSH_ERROR' && exit 1
fi
if ! find __path__ -type d -exec chmod 755 {} \;; then
echo 'VITO_SSH_ERROR' && exit 1
fi
if ! find __path__ -type f -exec chmod 644 {} \;; then
echo 'VITO_SSH_ERROR' && exit 1
fi
if ! cd __path__ && git config core.fileMode false; then
echo 'VITO_SSH_ERROR' && exit 1
fi