Récupère bien et installe
This commit is contained in:
parent
826f509b96
commit
e17147814a
@ -35,7 +35,7 @@ if (common::ZWII_VERSION === $latestVersion) {
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
logMessage("Récupération des SHAs des commits associés aux releases...");
|
logMessage("Récupération des SHAs des commits associés aux versions...");
|
||||||
$fromSHA = getCommitSHAFromTag($repoUrl, common::ZWII_VERSION);
|
$fromSHA = getCommitSHAFromTag($repoUrl, common::ZWII_VERSION);
|
||||||
$toSHA = getCommitSHAFromRelease($repoUrl, $latestVersion);
|
$toSHA = getCommitSHAFromRelease($repoUrl, $latestVersion);
|
||||||
logMessage("SHA de départ : $fromSHA, SHA de fin : $toSHA");
|
logMessage("SHA de départ : $fromSHA, SHA de fin : $toSHA");
|
||||||
@ -81,6 +81,7 @@ foreach ($modifiedFiles as $file) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Gérer la suppression des fichiers marqués comme supprimés
|
||||||
foreach ($modifiedFiles as $file) {
|
foreach ($modifiedFiles as $file) {
|
||||||
if ($file['status'] === 'removed') {
|
if ($file['status'] === 'removed') {
|
||||||
$filePath = $file['filename'];
|
$filePath = $file['filename'];
|
||||||
@ -105,9 +106,8 @@ logMessage("Mise à jour terminée vers la version : $latestVersion");
|
|||||||
*/
|
*/
|
||||||
function logMessage($message) {
|
function logMessage($message) {
|
||||||
global $logFile;
|
global $logFile;
|
||||||
// Vérifier que le fichier de log est bien défini
|
// Ajouter le message dans le fichier de log
|
||||||
if (!empty($logFile)) {
|
if (!empty($logFile)) {
|
||||||
// Ajouter le message dans le fichier de log
|
|
||||||
file_put_contents($logFile, $message . PHP_EOL, FILE_APPEND);
|
file_put_contents($logFile, $message . PHP_EOL, FILE_APPEND);
|
||||||
}
|
}
|
||||||
// Afficher le message dans le champ HTML
|
// Afficher le message dans le champ HTML
|
||||||
@ -144,12 +144,29 @@ function getLatestPublishedRelease($repoUrl) {
|
|||||||
function getCommitSHAFromTag($repoUrl, $tag) {
|
function getCommitSHAFromTag($repoUrl, $tag) {
|
||||||
$tagUrl = $repoUrl . '/git/refs/tags/' . urlencode($tag);
|
$tagUrl = $repoUrl . '/git/refs/tags/' . urlencode($tag);
|
||||||
logMessage("Récupération du SHA pour le tag $tag depuis l'URL : $tagUrl");
|
logMessage("Récupération du SHA pour le tag $tag depuis l'URL : $tagUrl");
|
||||||
$tagInfo = json_decode(file_get_contents($tagUrl), true);
|
$tagInfoArray = json_decode(file_get_contents($tagUrl), true);
|
||||||
|
|
||||||
if (!$tagInfo || empty($tagInfo)) {
|
if (!$tagInfoArray || empty($tagInfoArray)) {
|
||||||
die("Impossible de récupérer le tag : $tag");
|
die("Impossible de récupérer le tag : $tag");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Si la réponse est un tableau, prendre le premier élément
|
||||||
|
if (is_array($tagInfoArray) && isset($tagInfoArray[0])) {
|
||||||
|
$tagInfo = $tagInfoArray[0];
|
||||||
|
} else {
|
||||||
|
$tagInfo = $tagInfoArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vérifier que 'object' existe dans $tagInfo
|
||||||
|
if (!isset($tagInfo['object'])) {
|
||||||
|
die("Le tag $tag ne contient pas d'objet dans la réponse de l'API.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vérifier que 'type' et 'sha' existent dans 'object'
|
||||||
|
if (!isset($tagInfo['object']['type']) || !isset($tagInfo['object']['sha'])) {
|
||||||
|
die("Les informations 'type' ou 'sha' manquent pour le tag $tag.");
|
||||||
|
}
|
||||||
|
|
||||||
// Si c'est un tag annoté, il faut suivre l'objet pour obtenir le commit SHA
|
// Si c'est un tag annoté, il faut suivre l'objet pour obtenir le commit SHA
|
||||||
if ($tagInfo['object']['type'] === 'tag') {
|
if ($tagInfo['object']['type'] === 'tag') {
|
||||||
$annotatedTagUrl = $repoUrl . '/git/tags/' . $tagInfo['object']['sha'];
|
$annotatedTagUrl = $repoUrl . '/git/tags/' . $tagInfo['object']['sha'];
|
||||||
@ -158,9 +175,16 @@ function getCommitSHAFromTag($repoUrl, $tag) {
|
|||||||
if (!$annotatedTag || empty($annotatedTag)) {
|
if (!$annotatedTag || empty($annotatedTag)) {
|
||||||
die("Impossible de récupérer le tag annoté : $tag");
|
die("Impossible de récupérer le tag annoté : $tag");
|
||||||
}
|
}
|
||||||
|
if (!isset($annotatedTag['object']) || !isset($annotatedTag['object']['sha'])) {
|
||||||
|
die("Le tag annoté $tag ne contient pas les informations attendues.");
|
||||||
|
}
|
||||||
$commitSHA = $annotatedTag['object']['sha'];
|
$commitSHA = $annotatedTag['object']['sha'];
|
||||||
} else {
|
}
|
||||||
|
// Si c'est un tag léger, le SHA du commit est directement accessible
|
||||||
|
elseif ($tagInfo['object']['type'] === 'commit') {
|
||||||
$commitSHA = $tagInfo['object']['sha'];
|
$commitSHA = $tagInfo['object']['sha'];
|
||||||
|
} else {
|
||||||
|
die("Type d'objet inattendu pour le tag $tag : " . $tagInfo['object']['type']);
|
||||||
}
|
}
|
||||||
|
|
||||||
logMessage("SHA trouvé pour le tag $tag : $commitSHA");
|
logMessage("SHA trouvé pour le tag $tag : $commitSHA");
|
||||||
@ -181,12 +205,18 @@ function getCommitsManually($repoUrl, $fromSHA, $toSHA) {
|
|||||||
$commits = [];
|
$commits = [];
|
||||||
$page = 1;
|
$page = 1;
|
||||||
$perPage = 100;
|
$perPage = 100;
|
||||||
|
$maxPages = 50; // Limiter le nombre de pages pour éviter les boucles infinies
|
||||||
|
|
||||||
logMessage("Début de la récupération des commits depuis $toSHA jusqu'à $fromSHA...");
|
logMessage("Début de la récupération des commits depuis $toSHA jusqu'à $fromSHA...");
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
|
if ($page > $maxPages) {
|
||||||
|
die("Nombre maximum de pages atteint lors de la récupération des commits.");
|
||||||
|
}
|
||||||
|
|
||||||
$commitsUrl = "$repoUrl/commits?sha=$toSHA&per_page=$perPage&page=$page";
|
$commitsUrl = "$repoUrl/commits?sha=$toSHA&per_page=$perPage&page=$page";
|
||||||
logMessage("Accès à l'URL des commits : $commitsUrl");
|
logMessage("Accès à l'URL des commits : $commitsUrl");
|
||||||
|
|
||||||
$response = json_decode(file_get_contents($commitsUrl), true);
|
$response = json_decode(file_get_contents($commitsUrl), true);
|
||||||
|
|
||||||
if (!$response || empty($response)) {
|
if (!$response || empty($response)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user