Fermer

septembre 21, 2023

Synchroniser votre propre référentiel XM Cloud avec le modèle officiel du kit de démarrage XM Cloud / Blogs / Perficient

Synchroniser votre propre référentiel XM Cloud avec le modèle officiel du kit de démarrage XM Cloud / Blogs / Perficient


XM Cloud est une plate-forme évolutive en direct : l’équipe de développement publie de nouvelles images de base presque chaque semaine et de nouvelles fonctionnalités arrivent régulièrement dans le produit, ce qui se reflète dans les dépendances sous-jacentes, ainsi que dans les modèles de kits de démarrage publics tels que Responsable de la Fondation XM Cloud Kit de démarrage.

Dans le même temps, les professionnels et les passionnés de XM Cloud, et bien sûr les partenaires, créent leurs propres kits de démarrage basés sur des modèles accessibles au public fournis par Sitecore. À moi seul, j’ai apporté plus de deux douzaines d’améliorations personnelles par rapport au kit de démarrage de base que j’utilise presque quotidiennement. Plus encore, chez Perficient, je suis impliqué dans la construction de notre brillante solution JumpStart qui constitue l’essence de l’expérience collective de l’entreprise, avec nos meilleurs développeurs XM Cloud et Headless apportant et documentant leur expertise dans le cadre de la solution. La question se pose de savoir comment rester en phase avec les changements à venir et quelle serait la meilleure stratégie pour y parvenir ?

Une de ces stratégies proposé utilisait une copie locale de Foundation Head avec des synchronisations semi-automatiques à l’aide d’un logiciel appelé WinMerge. Bien que cette approche soit intéressante et mérite d’être prise en considération, elle ne correspond pas aux objectifs de Perficient XM Cloud JumpStart et convient mieux aux dépôts plus petits ou personnels. La solution basée sur un fork semble être la bonne voie pour JumpStart, conservant la possibilité d’extraire les dernières fonctionnalités du modèle public et de les fusionner dans son propre kit de démarrage privé avec un minimum d’effort. Et bien sûr – être capable de renvoyer la demande dans un référentiel public, puisque nous agissons dans la communauté open source.

Le problème qui se pose ici est – Responsable de la Fondation est un référentiel de modèles public sur GitHub, et le forking de GitHub est effectué de telle manière que vous ne pouvez transférer des référentiels publics que vers d’autres dépôts publics. Nous avons besoin d’un dépôt privé avec la possibilité de contrôler de manière centralisée l’accès des contributeurs avec SSO, GitHub Enterprise offre tout cela, mais le fork doit d’abord être résolu.

Voici donc la procédure pas à pas que je garde à l’esprit, simplifiée : je dois créer un nouveau dépôt privé, cloner le dépôt d’origine localement, configurer une télécommande supplémentaire, un nouveau privé serait une origine, et ainsi de suite. Vous trouverez ci-dessous les étapes en détail.

Tout d’abord, nous devons créer un référentiel privé, dans mon cas, il s’appellera JumpStart, comme nous le faisons normalement avec GitHub, et le cloner, mais avec drapeau nu option:

git clone --bare https://github.com/sitecorelabs/xmcloud-foundation-head.git

UN nu le référentiel est un type spécial de référentiel qui n’a pas de répertoire de travail. Il contient uniquement les données Git (branches, balises, commits, etc.) sans les fichiers de projet réels. Les référentiels nus sont généralement utilisés à des fins côté serveur, par exemple en tant que référentiel central pour la collaboration ou en tant que sauvegarde/miroir d’un référentiel. Il crée un nouveau référentiel nu dans le répertoire actuel, clonant toutes les branches et balises du référentiel source.

cd public-repo.git
git push --mirror https://github.com/yourname/private-repo.git

Cette commande est utilisée pour transférer toutes les branches et balises de votre référentiel local vers un référentiel distant d’une manière qui reflète le référentiel source. Dans le contexte de la création et de la maintenance d’un miroir ou d’une sauvegarde, vous utiliserez généralement cette commande pour transmettre les modifications de votre référentiel nu local (créé avec git clone --bare) vers un autre référentiel distant.

1.clone et miroir

Jusqu’ici, tout va bien. Après la mise en miroir, clonons le dépôt privé afin de pouvoir travailler dessus, comme d’habitude :

git clone https://github.com/PCPerficient/JumpStart
cd JumpStart
# do some changes as a part of normal workflow
git commit
git push origin master

Maintenant, la partie intéressante : extraire les dernières nouveautés du dépôt de modèles public :

cd JumpStart
git remote add public https://github.com/sitecorelabs/xmcloud-foundation-head.git
git pull public master # this line creates a merge commit
git push origin master

2.extraire du nouveau du dépôt public

Génial, votre dépôt privé contient désormais le dernier code du dépôt public ainsi que vos modifications.

Enfin, créez une pull request depuis notre référentiel privé vers ce référentiel public d’origine. Avec l’interface utilisateur GitHub du référentiel public, créez un fork (en utilisant le bouton « Fork » en haut à droite du référentiel public). Alors:

git clone https://github.com/sitecorelabs/xmcloud-foundation-head.git
cd xmcloud-foundation-head
git remote add JumpStart https://github.com/PCPerficient/JumpStart.git
git checkout -b pull_request_yourname
git pull private_repo_yourname master
git push origin pull_request_yourname

Vous pouvez désormais créer une pull request via l’interface utilisateur GitHub pour public-repo.






Source link

septembre 21, 2023