промежуточный коммит
This commit is contained in:
parent
830ea4d9fa
commit
23201db5ce
|
|
@ -1,10 +1,14 @@
|
||||||
package ru.kirillius.pf.sdn;
|
package ru.kirillius.pf.sdn;
|
||||||
|
|
||||||
|
import ru.kirillius.pf.sdn.External.API.GitSubscription;
|
||||||
|
import ru.kirillius.pf.sdn.core.Networking.NetworkResourceBundle;
|
||||||
|
import ru.kirillius.pf.sdn.core.Subscription.RepositoryConfig;
|
||||||
import ru.kirillius.utils.logging.SystemLogger;
|
import ru.kirillius.utils.logging.SystemLogger;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
public class App extends AppContext {
|
public class App extends AppContext {
|
||||||
|
|
@ -12,6 +16,9 @@ public class App extends AppContext {
|
||||||
|
|
||||||
public App(File configFile) {
|
public App(File configFile) {
|
||||||
super(configFile);
|
super(configFile);
|
||||||
|
GitSubscription subscription = new GitSubscription(this);
|
||||||
|
RepositoryConfig repositoryConfig = new RepositoryConfig("test", GitSubscription.class, "https://git.kirillius.ru/kirillius/docker-decompose.git");
|
||||||
|
Map<String, NetworkResourceBundle> resources = subscription.getResources(repositoryConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
static {
|
static {
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ import ru.kirillius.utils.logging.SystemLogger;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.StringJoiner;
|
||||||
|
|
||||||
public class GitSubscription implements SubscriptionProvider {
|
public class GitSubscription implements SubscriptionProvider {
|
||||||
private final Context context;
|
private final Context context;
|
||||||
|
|
@ -32,12 +33,14 @@ public class GitSubscription implements SubscriptionProvider {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var repository = isGitRepository(repoDir) ? openRepository(repoDir) : cloneRepository(config.getSource(), repoDir);
|
var existing = isGitRepository(repoDir);
|
||||||
|
var repository = existing ? openRepository(repoDir) : cloneRepository(config.getSource(), repoDir);
|
||||||
|
if (existing) {
|
||||||
|
SystemLogger.message("Fetching git repository " + config.getName() + " (" + config.getSource() + ")", CTX);
|
||||||
|
checkAndPullUpdates(repository);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
SystemLogger.message("Fetching git repository " + config.getName(), CTX);
|
|
||||||
checkAndPullUpdates(repository);
|
|
||||||
|
|
||||||
repository.close();
|
repository.close();
|
||||||
return Map.of();
|
return Map.of();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
@ -49,41 +52,30 @@ public class GitSubscription implements SubscriptionProvider {
|
||||||
private static void checkAndPullUpdates(Git git) throws GitAPIException {
|
private static void checkAndPullUpdates(Git git) throws GitAPIException {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var fetchResult = git.fetch()
|
var fetchResult = git.fetch()
|
||||||
.setCheckFetchedObjects(true)
|
.setCheckFetchedObjects(true)
|
||||||
.call();
|
.call();
|
||||||
|
|
||||||
if (fetchResult.getTrackingRefUpdates() != null && !fetchResult.getTrackingRefUpdates().isEmpty()) {
|
if (fetchResult.getTrackingRefUpdates() != null && !fetchResult.getTrackingRefUpdates().isEmpty()) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SystemLogger.message("Downloading updates...", CTX);
|
SystemLogger.message("Downloading updates...", CTX);
|
||||||
|
|
||||||
// Выполняем pull чтобы получить изменения
|
|
||||||
var pullResult = git.pull().call();
|
var pullResult = git.pull().call();
|
||||||
|
|
||||||
if (pullResult.isSuccessful()) {
|
if (pullResult.isSuccessful()) {
|
||||||
System.out.println("✅ Обновление успешно завершено!");
|
SystemLogger.message("Git pull is successful", CTX);
|
||||||
|
|
||||||
// Проверяем были ли обновлены файлы
|
// Проверяем были ли обновлены файлы
|
||||||
if (pullResult.getFetchResult() != null &&
|
if (pullResult.getFetchResult() != null && !pullResult.getFetchResult().getTrackingRefUpdates().isEmpty()) {
|
||||||
!pullResult.getFetchResult().getTrackingRefUpdates().isEmpty()) {
|
var updatedFiles = new StringJoiner("\n");
|
||||||
|
pullResult.getFetchResult().getTrackingRefUpdates().forEach(refUpdate -> updatedFiles.add(" - " + refUpdate.getLocalName() +
|
||||||
System.out.println("📁 Были обновлены файлы:");
|
" : " + refUpdate.getOldObjectId().abbreviate(7).name() +
|
||||||
pullResult.getFetchResult().getTrackingRefUpdates().forEach(refUpdate -> {
|
" -> " + refUpdate.getNewObjectId().abbreviate(7).name()));
|
||||||
System.out.println(" - " + refUpdate.getLocalName() +
|
SystemLogger.message("Updated files: " + updatedFiles, CTX);
|
||||||
" : " + refUpdate.getOldObjectId().abbreviate(7).name() +
|
|
||||||
" -> " + refUpdate.getNewObjectId().abbreviate(7).name());
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
System.out.println("❌ Ошибка при обновлении репозитория");
|
SystemLogger.error("Download failed", CTX);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
System.out.println("✅ Репозиторий уже актуален, обновлений нет");
|
SystemLogger.message("There is no updates", CTX);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package ru.kirillius.pf.sdn.core.Subscription;
|
package ru.kirillius.pf.sdn.core.Subscription;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
@ -7,6 +8,7 @@ import ru.kirillius.json.JSONProperty;
|
||||||
import ru.kirillius.json.JSONSerializable;
|
import ru.kirillius.json.JSONSerializable;
|
||||||
|
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
@JSONSerializable
|
@JSONSerializable
|
||||||
public class RepositoryConfig {
|
public class RepositoryConfig {
|
||||||
@Setter
|
@Setter
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue