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;
|
||||
}
|
||||
|
||||
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);
|
||||
$toSHA = getCommitSHAFromRelease($repoUrl, $latestVersion);
|
||||
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) {
|
||||
if ($file['status'] === 'removed') {
|
||||
$filePath = $file['filename'];
|
||||
@ -105,9 +106,8 @@ logMessage("Mise à jour terminée vers la version : $latestVersion");
|
||||
*/
|
||||
function logMessage($message) {
|
||||
global $logFile;
|
||||
// Vérifier que le fichier de log est bien défini
|
||||
// Ajouter le message dans le fichier de log
|
||||
if (!empty($logFile)) {
|
||||
// Ajouter le message dans le fichier de log
|
||||
file_put_contents($logFile, $message . PHP_EOL, FILE_APPEND);
|
||||
}
|
||||
// Afficher le message dans le champ HTML
|
||||
@ -144,12 +144,29 @@ function getLatestPublishedRelease($repoUrl) {
|
||||
function getCommitSHAFromTag($repoUrl, $tag) {
|
||||
$tagUrl = $repoUrl . '/git/refs/tags/' . urlencode($tag);
|
||||
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");
|
||||
}
|
||||
|
||||
// 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
|
||||
if ($tagInfo['object']['type'] === 'tag') {
|
||||
$annotatedTagUrl = $repoUrl . '/git/tags/' . $tagInfo['object']['sha'];
|
||||
@ -158,9 +175,16 @@ function getCommitSHAFromTag($repoUrl, $tag) {
|
||||
if (!$annotatedTag || empty($annotatedTag)) {
|
||||
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'];
|
||||
} else {
|
||||
}
|
||||
// Si c'est un tag léger, le SHA du commit est directement accessible
|
||||
elseif ($tagInfo['object']['type'] === 'commit') {
|
||||
$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");
|
||||
@ -181,12 +205,18 @@ function getCommitsManually($repoUrl, $fromSHA, $toSHA) {
|
||||
$commits = [];
|
||||
$page = 1;
|
||||
$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...");
|
||||
|
||||
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";
|
||||
logMessage("Accès à l'URL des commits : $commitsUrl");
|
||||
|
||||
$response = json_decode(file_get_contents($commitsUrl), true);
|
||||
|
||||
if (!$response || empty($response)) {
|
||||
|
Loading…
Reference in New Issue
Block a user