Une tâche, deux fournisseurs : coordonner les changements entre GitLab et GitHub dans une même session
Brian Beach
Tech Lead
Kiro Web fonctionne maintenant avec GitLab, en plus de la prise en charge existante de GitHub. La partie la plus intéressante, c'est ce qui se passe quand votre code réside à la fois sur GitLab et sur GitHub : vous pouvez ajouter des dépôts des deux à la même session, décrire un seul changement, et laisser Kiro le porter sur les deux, en ouvrant une merge request sur l'un et une pull request sur l'autre. C'est important quand votre code ne réside pas dans un seul endroit bien ordonné.
Beaucoup d'équipes sont réparties entre plusieurs fournisseurs, et habituellement pour de bonnes raisons. Votre SDK open source réside sur GitHub, où la communauté peut le trouver, tandis que le service auquel il s'adresse reste privé sur GitLab. Ou une acquisition a laissé la moitié de l'organisation sur un fournisseur et l'autre moitié sur un autre. Ou les équipes frontend et backend ont simplement atterri sur des outils différents il y a des années. Quelle que soit la raison, le coût se manifeste dès qu'un changement touche les deux côtés. Une mise à jour logique devient une pull request et une merge request dans deux contextes distincts, avec deux occasions d'oublier une étape et de laisser les deux côtés se désynchroniser.
Voici la configuration que je vais utiliser. C'est un substitut délibérément trivial pour l'exemple réel. Imaginez votre véritable service et SDK à sa place : des milliers de lignes, de la vraie logique d'affaires, de vrais consommateurs.
Un service privé sur GitLab :

Un SDK public sur GitHub qui encapsule ce service :

Imaginez que je veuille ajouter un champ email, de bout en bout. Le changement du serveur revient à GitLab. Le changement du SDK revient à GitHub. C'est une seule idée qui doit se retrouver dans deux dépôts, sur deux fournisseurs, sans que les deux se désynchronisent.
Avec GitLab et GitHub déjà connectés, je démarre une session et j'y joins les deux dépôts — user-service de GitLab et user-sdk de GitHub. Puis je décris le changement en langage simple :

Comme les deux dépôts sont dans la session, Kiro raisonne à leur sujet ensemble plutôt que de les traiter comme deux tâches sans lien.

Travaillant dans son bac à sable isolé, il explore les deux dépôts, détermine ce dont chaque côté a besoin, et apporte les changements — en ajoutant email aux enregistrements et à la réponse dans le service, puis en mettant à jour le type User et l'exemple d'utilisation dans le SDK. Il crée une branche de fonctionnalité dans chaque dépôt et fait des commits avec des messages clairs.

Une fois terminé, deux changements attendent. Une merge request sur GitLab pour le service.

Et une pull request sur GitHub pour le SDK.

Chacune comporte une description de ce qui a changé et de l'approche. Vous révisez et fusionnez chacune sur son fournisseur d'origine, exactement selon le flux de travail que votre équipe utilise déjà. Rien ne change dans votre processus de révision. Vous n'avez simplement pas eu à faire vous-même la comptabilité entre dépôts.
La répartition entre fournisseurs est souvent réelle et vaut la peine d'être maintenue : public par rapport à privé, une équipe par rapport à une autre. Ce qui ne vaut pas la peine d'être maintenu, c'est l'effort manuel de tenir ensemble un seul changement à travers les deux. Avec GitLab et GitHub connectés dans Kiro Web, une seule requête garde le changement cohérent de bout en bout, et vous obtenez tout de même une MR et une PR propres à réviser sur les fournisseurs auxquels vous faites déjà confiance.
Connectez GitLab et GitHub dans Kiro Web et essayez un changement qui couvre les deux. Kiro Web est en préversion sur app.kiro.dev pour les abonnés Pro, Pro+ et Power. Pour aller plus loin, consultez le guide GitLab, et suivez le journal des changements de Kiro Web pour voir ce qui s'en vient.