Git 🌙
Chapters â–Ÿ 2nd Edition

6.3 GitHub - Maintenance d’un projet

Maintenance d’un projet

Maintenant que vous ĂȘtes Ă  l’aise sur les aspects contribution Ă  un projet, regardons maintenant l’autre cĂŽté : la crĂ©ation, la maintenance et l’administration de vos propres projets.

CrĂ©ation d’un nouveau dĂ©pĂŽt

CrĂ©ons un nouveau dĂ©pĂŽt pour permettre le partage du code de notre projet avec d’autres. Commencez par cliquer sur le bouton « New repository » (nouveau dĂ©pĂŽt) sur le cĂŽtĂ© droit de votre tableau de bord ou sur le bouton + dans la barre d’outils du haut Ă  cĂŽtĂ© de votre nom d’utilisateur comme sur la figure La liste dĂ©roulante « New repository » (nouveau dĂ©pĂŽt).

La zone « Your repositories »
Figure 109. La zone « Your repositories » (vos dépÎts)
La liste déroulante « new repository »
Figure 110. La liste déroulante « New repository » (nouveau dépÎt)

Vous ĂȘtes redirigĂ© vers le formulaire pour la crĂ©ation de nouveau dĂ©pĂŽt :

Le formulaire « new repository »
Figure 111. Le formulaire « new repository » (nouveau dépÎt)

Tout ce que vous avez Ă  faire, c’est de fournir un nom de projet, les autres champs sont facultatifs. Pour l’instant, cliquez juste sur le bouton « Create Repository » (crĂ©er un dĂ©pĂŽt) et paf, vous obtenez un nouveau dĂ©pĂŽt sur GitHub nommĂ© <utilisateur>/<nom_du_projet>.

Puisque vous n’avez pas encore de code, GitHub vous affiche des instructions sur la façon de crĂ©er un tout nouveau dĂ©pĂŽt Git ou de se connecter Ă  un projet Git existant. Nous ne dĂ©taillerons pas cela ici ; si vous avez besoin d’un rappel, vĂ©rifiez Les bases de Git.

Maintenant que votre projet est hĂ©bergĂ© sur GitHub, vous pouvez donner l’URL Ă  toutes les personnes avec lesquelles vous voulez partager votre projet. Chaque projet est accessible via HTTP par https://github.com/<utilisateur>/<nom_du_projet> et via SSH par git@github.com:<utilisateur>/<nom_du_projet>. Git peut rĂ©cupĂ©rer et pousser en utilisant les deux URL mais l’accĂšs est contrĂŽlĂ© sur la base des paramĂštres d’authentification de l’utilisateur qui s’y connecte.

Note

Il est souvent mieux de partager l’URL basĂ© sur HTTP pour un projet public puisque l’utilisateur n’a pas besoin d’avoir un compte GitHub pour y accĂ©der et pour le cloner. Les utilisateurs devront possĂ©der un compte et avoir dĂ©posĂ© une clĂ© SSH pour accĂ©der Ă  votre projet si vous leur donnez l’URL SSH. L’URL HTTP est Ă©galement exactement le mĂȘme que celui que vous colleriez dans votre navigateur pour y afficher le projet.

Ajout de collaborateurs

Si vous travaillez avec d’autres personnes Ă  qui vous voulez donner l’accĂšs en poussĂ©e, vous devez les ajouter en tant que « collaborateurs ». Si Ben, Jeff et Louise possĂšdent tous un compte GitHub et que vous voulez qu’ils puissent pousser sur votre dĂ©pĂŽt, vous pouvez les ajouter Ă  votre projet. En faisant cela, vous leur donnez un accĂšs en poussĂ©e ce qui signifie qu’ils possĂšdent un accĂšs en lecture et en Ă©criture au projet et au dĂ©pĂŽt Git.

Cliquez sur le lien « Settings » (paramÚtres) en bas de la barre latérale de droite.

Le lien des paramÚtres (Settings) du dépÎt.
Figure 112. Le lien des paramÚtres (Settings) du dépÎt.

Ensuite sĂ©lectionnez « Collaborators » dans le menu de gauche, saisissez un nom d’utilisateur dans la boĂźte et cliquez sur « Add collaborator » (ajouter un collaborateur). Vous pouvez rĂ©pĂ©ter cette action autant de fois que vous le voulez pour permettre l’accĂšs Ă  toutes les personnes que vous souhaitez. Si vous devez rĂ©voquer leur accĂšs, il suffit de cliquer sur le « X » Ă  droite de leur nom.

La boßte des collaborateurs du dépÎt.
Figure 113. Les collaborateurs du dépÎt.

Gestion des requĂȘtes de tirage

Maintenant que vous possĂ©dez un projet contenant un peu de code et peut-ĂȘtre mĂȘme quelques collaborateurs qui possĂšdent un accĂšs en poussĂ©e, voyons ce que vous devez faire lorsque vous recevez vous-mĂȘme une requĂȘte de tirage.

Les requĂȘtes de tirage peuvent provenir soit d’une branche d’un clone de votre dĂ©pĂŽt ou d’une autre branche du mĂȘme dĂ©pĂŽt. La seule diffĂ©rence est que celles d’un clone proviennent souvent de personnes vers lesquelles vous ne pouvez pas pousser sur leurs branches et qui ne peuvent pas pousser vers les vĂŽtres alors qu’avec des requĂȘtes de tirage internes, les deux parties peuvent gĂ©nĂ©ralement accĂ©der Ă  la branche.

Pour ces exemples, supposons que vous ĂȘtes « tonychacon » et que vous avez crĂ©Ă© un nouveau projet de code Arduino qui s’appelle « fade ».

Notifications par courriel

Quelqu’un se connecte et fait une modification Ă  votre programme et vous envoie une requĂȘte de tirage. Vous devriez recevoir un courriel vous informant de cette nouvelle requĂȘte de tirage et ressemblant Ă  celui sur la figure Notification par courriel d’une nouvelle requĂȘte de tirage..

Notification par courriel d’une requĂȘte de tirage
Figure 114. Notification par courriel d’une nouvelle requĂȘte de tirage.

Faisons quelques remarques Ă  propos de ce courriel. Celui-ci vous fournit quelques statistiques : une liste de fichiers modifiĂ©s par la requĂȘte de tirage et le nombre de modifications. Il vous donne un lien vers la requĂȘte de tirage sur GitHub et il vous fournit Ă©galement quelques URL que vous pouvez utiliser en ligne de commande.

Remarquez la ligne git pull <url> patch-1, il s’agit d’une maniĂšre simple de fusionner une branche distante sans avoir Ă  ajouter un dĂ©pĂŽt distant. Nous avons dĂ©jĂ  vu rapidement cela dans VĂ©rification des branches distantes. Si vous voulez, vous pouvez crĂ©er une branche thĂ©matique et basculer vers celle-ci puis lancer cette commande pour fusionner les modifications de cette requĂȘte de tirage.

Les autres URL intĂ©ressantes sont les URL .diff et .patch, qui, comme vous l’avez certainement devinĂ©, vous fournissent des versions au format diffĂ©rence unifiĂ©e et patch de la requĂȘte de tirage. Vous pourriez techniquement fusionner le travail contenu dans la requĂȘte de tirage de la maniĂšre suivante :

$ curl https://github.com/tonychacon/fade/pull/1.patch | git am

Collaboration Ă  une requĂȘte de tirage

Comme dĂ©jĂ  traitĂ© dans la section Processus GitHub, vous pouvez maintenant commencer une conversation avec la personne qui a ouvert la requĂȘte de tirage. Vous pouvez commenter certaines lignes de code, commenter des soumissions complĂštes ou commenter la requĂȘte de tirage elle-mĂȘme en utilisant les outils Markdown, saveur GitHub un peu partout.

À chaque fois que quelqu’un d’autre commente la requĂȘte de tirage, vous recevrez des notifications par courriel afin d’ĂȘtre au courant de chaque activitĂ©. Celles-ci possĂšdent un lien vers la requĂȘte de tirage dans laquelle l’activitĂ© s’est produite et vous pouvez Ă©galement rĂ©pondre directement au courriel pour commenter le fil de discussion de la requĂȘte de tirage.

RĂ©ponse par courriel
Figure 115. Les réponses aux courriels sont incorporées dans le fil de discussion.

Une fois que le code est dans un état satisfaisant et que vous voulez le fusionner, vous pouvez soit tirer le code et le fusionner localement, soit utiliser la syntaxe décrite précédemment git pull <url> <branch>, soit ajouter le clone comme dépÎt distant, le récupérer et le fusionner.

Si la fusion est triviale, vous pouvez Ă©galement cliquer sur le bouton « Merge » (fusionner) sur le site GitHub. Une fusion sans avance rapide (non-fast-forward) sera rĂ©alisĂ©e ce qui crĂ©era une soumission de fusion (merge commit) mĂȘme si une fusion en avance rapide (fast-forward) Ă©tait possible. Cela signifie que dans tous les cas, Ă  chaque fois que vous cliquez sur le bouton « Merge », un commit de fusion est crĂ©Ă©. Comme vous pouvez le voir sur Bouton « Merge » et instructions pour la fusion manuelle d’une requĂȘte de tirage., GitHub vous donne toutes ces informations si vous cliquez sur le lien descriptif.

Bouton « Merge »
Figure 116. Bouton « Merge » et instructions pour la fusion manuelle d’une requĂȘte de tirage.

Si vous dĂ©cidez que vous ne voulez pas fusionner, vous pouvez tout simplement fermer la requĂȘte de tirage et la personne qui l’a crĂ©Ă©e en sera informĂ©e.

RĂ©fĂ©rences aux requĂȘtes de tirage

Si vous gĂ©rez beaucoup de requĂȘtes de tirage et que vous ne voulez pas ajouter une sĂ©rie de dĂ©pĂŽts distants ou faire des tirages isolĂ©s Ă  chaque fois, GitHub vous permet une astuce. C’est toutefois une astuce avancĂ©e et nous irons un peu plus dans les dĂ©tails Ă  la section La refspec mais cela peut ĂȘtre assez utile dĂšs maintenant.

GitHub traite en rĂ©alitĂ© les branches de requĂȘte de tirage d’un dĂ©pĂŽt comme une sorte de pseudo-branches sur le serveur. Par dĂ©faut, vous ne les obtenez pas lorsque vous clonez mais elles sont prĂ©sentes de façon cachĂ©e et vous pouvez y accĂ©der assez facilement.

Pour le montrer, nous allons utiliser une commande bas niveau (souvent appelĂ©e commande de « plomberie » dont nous parlerons un peu plus dans la section Plomberie et porcelaine) qui s’appelle ls-remote. Cette commande n’est en gĂ©nĂ©ral pas utilisĂ©e dans les opĂ©rations quotidiennes mais elle est utile pour afficher les rĂ©fĂ©rences prĂ©sentes sur le serveur.

Si nous lançons cette commande sur le dĂ©pĂŽt « blink » que nous utilisions tout Ă  l’heure, nous obtenons la liste de toutes les branches et Ă©tiquettes ainsi que d’autres rĂ©fĂ©rences dans le dĂ©pĂŽt.

$ git ls-remote https://github.com/schacon/blink
10d539600d86723087810ec636870a504f4fee4d	HEAD
10d539600d86723087810ec636870a504f4fee4d	refs/heads/master
6a83107c62950be9453aac297bb0193fd743cd6e	refs/pull/1/head
afe83c2d1a70674c9505cc1d8b7d380d5e076ed3	refs/pull/1/merge
3c8d735ee16296c242be7a9742ebfbc2665adec1	refs/pull/2/head
15c9f4f80973a2758462ab2066b6ad9fe8dcf03d	refs/pull/2/merge
a5a7751a33b7e86c5e9bb07b26001bb17d775d1a	refs/pull/4/head
31a45fc257e8433c8d8804e3e848cf61c9d3166c	refs/pull/4/merge

Bien sĂ»r, si vous ĂȘtes dans votre dĂ©pĂŽt et que vous lancez la commande git ls-remote origin (ou avec un autre dĂ©pĂŽt distant), quelque chose de similaire s’affiche.

Si le dĂ©pĂŽt se trouve sur GitHub et que des requĂȘtes de tirage ont Ă©tĂ© ouvertes, vous obtiendrez leurs rĂ©fĂ©rences prĂ©fixĂ©es par refs/pull/. Ce sont simplement des branches mais comme elles ne sont pas sous refs/heads/, vous ne les obtenez gĂ©nĂ©ralement pas lorsque vous clonez ou rĂ©cupĂ©rez Ă  partir d’un serveur — le processus de rĂ©cupĂ©ration les ignore normalement.

Il y a deux rĂ©fĂ©rences par requĂȘte de tirage - l’une se termine par /head et pointe vers la mĂȘme soumission que la derniĂšre soumission dans la branche de requĂȘte de tirage. Donc si quelqu’un ouvre une requĂȘte de tirage sur notre dĂ©pĂŽt, que leur branche s’appelle bug-fix et qu’elle pointe sur la soumission a5a775, alors dans notre dĂ©pĂŽt nous n’aurons pas de branche bug-fix (puisqu’elle se trouve dans leur clone) mais nous aurons une rĂ©fĂ©rence pull/<pr#>/head qui pointe vers a5a775. Cela signifie que vous pouvez assez facilement tirer toute branche de requĂȘte de tirage d’un coup sans avoir Ă  ajouter tout un tas de dĂ©pĂŽts distants.

Vous pouvez désormais récupérer la référence directement.

$ git fetch origin refs/pull/958/head
From https://github.com/libgit2/libgit2
 * branch            refs/pull/958/head -> FETCH_HEAD

Cela dit Ă  Git, « Connecte-toi au dĂ©pĂŽt distant origin et tĂ©lĂ©charge la rĂ©fĂ©rence appelĂ©e refs/pull/958/head ». Git obĂ©it joyeusement et tĂ©lĂ©charge tout ce dont vous avez besoin pour construire cette rĂ©fĂ©rence et positionne un pointeur vers la soumission souhaitĂ©e sous .git/FETCH_HEAD. Vous pouvez continuer en faisant git merge FETCH_HEAD dans une branche dans laquelle vous voulez la tester mais ce message de fusion (merge commit) semble un peu bizarre. De plus, si vous passez en revue beaucoup de requĂȘtes de tirage, cela devient fastidieux.

Il existe Ă©galement une façon de rĂ©cupĂ©rer toutes les requĂȘtes de tirage et de les maintenir Ă  jour Ă  chaque fois que vous vous connectez au dĂ©pĂŽt distant. Ouvrez le fichier .git/config dans votre Ă©diteur favori et cherchez le dĂ©pĂŽt origin. Cela devrait ressembler Ă  cela :

[remote "origin"]
    url = https://github.com/libgit2/libgit2
    fetch = +refs/heads/*:refs/remotes/origin/*

La ligne qui commence par fetch = est une spĂ©cification de rĂ©fĂ©rences (refspec). C’est une façon de faire correspondre des noms sur un dĂ©pĂŽt distant Ă  des noms dans votre dossier .git local. Celle-ci en particulier dit Ă  Git, « les choses sur le dĂ©pĂŽt distant qui se trouvent sous refs/heads doivent aller dans mon dĂ©pĂŽt local sous refs/remotes/origin ». Vous pouvez modifier cette section pour ajouter une autre spĂ©cification de rĂ©fĂ©rences :

[remote "origin"]
    url = https://github.com/libgit2/libgit2.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    fetch = +refs/pull/*/head:refs/remotes/origin/pr/*

Cette derniĂšre ligne dit Ă  Git, « Toutes les rĂ©fĂ©rences du type refs/pull/123/head doivent ĂȘtre enregistrĂ©es localement comme refs/remotes/origin/pr/123 ». Maintenant, si vous enregistrez ce fichier et faites une rĂ©cupĂ©ration (git fetch) :

$ git fetch
# 

 * [new ref]         refs/pull/1/head -> origin/pr/1
 * [new ref]         refs/pull/2/head -> origin/pr/2
 * [new ref]         refs/pull/4/head -> origin/pr/4
# 


Maintenant toutes les requĂȘtes de tirage distantes sont reprĂ©sentĂ©es localement par des rĂ©fĂ©rences qui agissent un peu comme des branches de suivi : elles sont en lecture seule et elles se mettent Ă  jour lorsque vous faites un tirage. Il est ainsi super facile d’essayer le code d’une requĂȘte de tirage localement :

$ git checkout pr/2
Checking out files: 100% (3769/3769), done.
Branch pr/2 set up to track remote branch pr/2 from origin.
Switched to a new branch 'pr/2'

Les Sherlock Holmes en herbe parmi vous auront remarquĂ© le terme head Ă  la fin de la partie distante de la spĂ©cification de rĂ©fĂ©rences. Il y a Ă©galement une rĂ©fĂ©rence refs/pull/#/merge du cĂŽtĂ© de GitHub qui reprĂ©sente la soumission qui serait obtenue si vous cliquiez sur le bouton « Fusionner » sur le site. Cela peut vous permettre de tester la fusion avant mĂȘme de cliquer sur le bouton.

RequĂȘtes de tirage sur des requĂȘtes de tirage

Non seulement vous pouvez ouvrir des requĂȘtes de tirage qui ciblent la branche principale ou master, mais vous pouvez en fait ouvrir une requĂȘte de tirage ciblant n’importe quelle branche du rĂ©seau. En rĂ©alitĂ©, vous pouvez mĂȘme cibler une autre requĂȘte de tirage.

Si vous remarquez une requĂȘte de tirage qui va dans la bonne direction et que vous avez une idĂ©e de modifications qui dĂ©pendent de celle-ci, ou vous n’ĂȘtes pas sĂ»r que c’est une bonne idĂ©e, ou vous n’avez tout simplement pas accĂšs en poussĂ©e vers la branche cible, vous pouvez ouvrir une requĂȘte de tirage directement sur elle.

Lorsque vous ouvrez une requĂȘte de tirage, une boĂźte en haut de la page vous indique vers quelle branche vous voulez pousser et Ă  partir de quelle branche vous allez tirer. Si vous cliquez sur le bouton « Edit » (modifier) Ă  droite de cette boĂźte, vous pouvez modifier non seulement les branches mais aussi le clone.

Cibles d’une requĂȘte
Figure 117. Modification manuelle du clone cible et de la branche de la requĂȘte de tirage.

Vous pouvez Ă  cet instant trĂšs facilement indiquer de fusionner votre nouvelle branche sur une autre requĂȘte de tirage ou un autre clone du projet.

Mentions et notifications

GitHub dispose Ă©galement d’un systĂšme de notifications intĂ©grĂ© assez sympa qui peut devenir utile lorsque vous avez des questions et besoin du retour de certaines personnes ou d’équipes.

Dans tous les commentaires, si vous saisissez le caractùre @, cela commence à proposer des noms et des noms d’utilisateur de personnes qui collaborent ou contribuent au projet.

Mentions
Figure 118. Saisissez @ pour faire rĂ©fĂ©rence Ă  quelqu’un.

Vous pouvez aussi faire rĂ©fĂ©rence Ă  un utilisateur qui n’apparaĂźt pas dans cette liste, mais souvent l’auto-complĂ©tion accĂ©lĂšre les choses.

Une fois que vous avez postĂ© un commentaire contenant une rĂ©fĂ©rence Ă  un utilisateur, ce dernier reçoit une notification. Cela signifie que c’est une maniĂšre trĂšs pratique de faire entrer des gens dans une conversation plutĂŽt que de leur demander. TrĂšs souvent dans des requĂȘtes de tirage sur GitHub, les gens vont attirer d’autres personnes dans leurs Ă©quipes ou dans leur sociĂ©tĂ© pour vĂ©rifier une anomalie ou une requĂȘte de tirage.

Si quelqu’un est citĂ© dans une requĂȘte de tirage ou une anomalie, il est « inscrit » Ă  celle-ci et continue Ă  recevoir des notifications dĂšs qu’une activitĂ© se produit. Vous ĂȘtes Ă©galement inscrit Ă  quelque chose si vous l’ouvrez, si vous observez (watch) un dĂ©pĂŽt ou si vous faites un commentaire sur quelque chose. Si vous ne souhaitez plus recevoir de notifications, cliquez sur le bouton « Unsubscribe » (se dĂ©sinscrire) de la page pour arrĂȘter de recevoir les mises Ă  jour.

DĂ©sinscription
Figure 119. DĂ©sinscription d’une anomalie ou d’une requĂȘte de tirage.

La page des notifications

Lorsque nous parlons de « notifications » ici, par rapport Ă  GitHub, nous voulons parler de la maniĂšre spĂ©cifique par laquelle GitHub essaye de vous joindre lorsque des Ă©vĂ©nements se produisent et il existe diffĂ©rentes façons de la configurer. Si vous allez dans l’onglet « Notification center » (centre de notification) dans la page des paramĂštres, vous pouvez voir les diffĂ©rentes options disponibles.

Centre de notification.
Figure 120. Options du centre de notification.

Vous pouvez recevoir des notifications soit par « courriel », soit par le « Web » et vous pouvez sélectionner une, aucune ou les deux méthodes si vous voulez participer de maniÚre trÚs active ou pour une activité particuliÚre dans les dépÎts que vous surveillez.

Notifications Web

Les notifications Web n’existent que sur GitHub et vous ne pouvez les visionner que sur GitHub. Si vous avez sĂ©lectionnĂ© cette option dans vos prĂ©fĂ©rences et qu’une notification vous est envoyĂ©e, un petit point bleu apparaĂźt sur votre icĂŽne des notifications en haut de l’écran comme sur la figure Centre de notification..

Centre de notification.
Figure 121. Centre de notification.

Si vous cliquez dessus, la liste de tous les Ă©lĂ©ments pour lesquels vous avez Ă©tĂ© notifiĂ© apparaĂźt, regroupĂ©s par projet. Vous pouvez filtrer les notifications d’un projet particulier en cliquant sur son nom dans la barre latĂ©rale gauche. Vous pouvez aussi accepter la notification en cochant l’icĂŽne Ă  cĂŽtĂ© de celle-ci ou accepter toutes les notifications d’un projet en cochant la case en haut du groupe. Il y a aussi un bouton « muet » Ă  cĂŽtĂ© de chaque case que vous pouvez cliquer afin de ne plus recevoir de notifications sur cet Ă©lĂ©ment.

Tous ces outils sont trĂšs utiles pour gĂ©rer un grand nombre de notifications. Beaucoup d’utilisateurs de GitHub trĂšs actifs arrĂȘtent tout simplement complĂštement les notifications par courriel et gĂšrent toutes leurs notifications Ă  partir de cette fenĂȘtre.

Notifications par courriel

Les notifications par courriel sont l’autre façon de gĂ©rer les notifications provenant de GitHub. Si vous les avez activĂ©es, vous recevrez des courriels pour chaque notification. Nous avons vu des exemples concernant cela sur les figures Commentaires notifiĂ©s par courriel et Notification par courriel d’une nouvelle requĂȘte de tirage.. Ces courriels peuvent ĂȘtre Ă©galement suivis correctement ce qui est bien agrĂ©able si vous utilisez un client de messagerie qui suit les fils de discussion.

Un assez grand nombre de mĂ©tadonnĂ©es sont incluses dans les entĂȘtes des courriels que GitHub vous envoie ce qui peut vraiment vous aider Ă  configurer des filtres et des rĂšgles personnalisĂ©s.

Par exemple si nous observons les entĂȘtes complets du courriel envoyĂ© Ă  Tony dans le courriel de la figure Notification par courriel d’une nouvelle requĂȘte de tirage., nous voyons que les informations suivantes sont envoyĂ©es :

To: tonychacon/fade <fade@noreply.github.com>
Message-ID: <tonychacon/fade/pull/1@github.com>
Subject: [fade] Wait longer to see the dimming effect better (#1)
X-GitHub-Recipient: tonychacon
List-ID: tonychacon/fade <fade.tonychacon.github.com>
List-Archive: https://github.com/tonychacon/fade
List-Post: <mailto:reply+i-4XXX@reply.github.com>
List-Unsubscribe: <mailto:unsub+i-XXX@reply.github.com>,...
X-GitHub-Recipient-Address: tchacon@example.com

Il y a quelques petites choses intĂ©ressantes ici. Si vous voulez mettre en valeur ou rediriger les courriels de ce projet ou d’une requĂȘte en tirage en particulier, l’information du champ Message-ID vous fournit toutes les donnĂ©es au format <utilisateur>/<projet>/<type>/<id>. Si c’était une anomalie, le champ <type> aurait Ă©tĂ© « issues » Ă  la place de « pull ».

Les champs List-Post et List-Unsubscribe signifient que si votre client de messagerie les prend en compte, vous pouvez facilement Ă©crire (post) Ă  la liste ou vous dĂ©sinscrire (unsubscribe) du fil de discussion. Cela correspond Ă  cliquer sur la case « muet » sur la version Web de la notification ou sur « Unsubscribe » sur la page personnelle de l’anomalie ou de la requĂȘte de tirage.

Il est aussi intĂ©ressant de noter que si les notifications par courriel et par Web sont toutes deux activĂ©es et que vous lisez la version courriel de la notification, la version Web sera Ă©galement marquĂ©e comme lue si vous avez autorisĂ© l’affichage des images dans votre client de messagerie.

Fichiers spéciaux

Quelques fichiers spĂ©ciaux attirent l’attention de GitHub s’ils existent dans votre dĂ©pĂŽt.

README

Le premier est le fichier README (LISEZ-MOI) qui peut ĂȘtre Ă©crit sous n’importe quel format textuel reconnu par GitHub. Par exemple, cela pourrait ĂȘtre README, README.md, README.asciidoc, etc. Si GitHub trouve un fichier README dans vos sources, celui-ci sera rendu sur la page d’accueil du projet.

Pour beaucoup d’équipes, ce fichier contient toutes les informations importantes du projet pour quelqu’un qui serait nouveau dans le dĂ©pĂŽt ou le projet. Il contient habituellement des choses comme :

  • À quoi sert le projet.

  • Comment le configurer et l’installer.

  • Un exemple d’utilisation et comment le lancer.

  • La licence sous laquelle le projet est proposĂ©.

  • Comment y contribuer.

Puisque GitHub va afficher Ă  l’écran ce fichier, vous pouvez y incorporer des images ou des liens pour faciliter la comprĂ©hension.

CONTRIBUTING

L’autre fichier spĂ©cial que GitHub reconnaĂźt est le fichier CONTRIBUTING. Si vous possĂ©dez un fichier nommĂ© CONTRIBUTING, peu importe son extension, GitHub affichera la figure Ouverture d’une requĂȘte de tirage si un fichier CONTRIBUTING existe. lorsque quelqu’un commence Ă  ouvrir une requĂȘte de tirage.

Notification du fichier CONTRIBUTING
Figure 122. Ouverture d’une requĂȘte de tirage si un fichier CONTRIBUTING existe.

L’idĂ©e ici est d’expliquer les choses particuliĂšres que vous voulez ou ne voulez pas voir soumises dans une requĂȘte de tirage envoyĂ©e vers votre projet. De cette façon, les gens peuvent vraiment lire les recommandations avant d’ouvrir la requĂȘte de tirage.

Administration du projet

Il n’y a gĂ©nĂ©ralement pas beaucoup de tĂąches administratives Ă  faire si vous avez un seul projet, mais ces quelques points peuvent vous intĂ©resser.

Modification de la branche par défaut

Si vous utilisez une autre branche que « master » comme branche par dĂ©faut et que vous voulez que les gens ouvrent les requĂȘtes de tirage dessus ou la voient par dĂ©faut, vous pouvez modifier cela dans la page des paramĂštres de votre dĂ©pĂŽt dans l’onglet « Options ».

Branche par défaut
Figure 123. Modification de la branche par défaut pour un projet.

Modifiez tout simplement la branche par dĂ©faut dans la liste dĂ©roulante et celle-ci sera la branche par dĂ©faut pour toutes les opĂ©rations principales Ă  partir de maintenant, y compris la branche qui sera extraite par dĂ©faut lorsque quelqu’un clone le dĂ©pĂŽt.

Transfert de projet

Si vous voulez transfĂ©rer un projet Ă  un autre utilisateur ou une organisation dans GitHub, une option « Transfer ownership » (transfĂ©rer la propriĂ©tĂ©) en bas du mĂȘme onglet « Options » de la page des paramĂštres de votre dĂ©pĂŽt vous permet cela.

Transfert
Figure 124. Transfert d’un projet vers un autre utilisateur GitHub ou une organisation.

C’est bien pratique si vous abandonnez un projet et que quelqu’un souhaite le rĂ©cupĂ©rer ou si votre projet devient plus gros et que vous voulez le dĂ©placer vers une organisation.

Non seulement, cela dĂ©place le dĂ©pĂŽt ainsi que tous ses observateurs et Ă©toiles vers un autre endroit, mais cela met Ă©galement en place une redirection de votre URL vers le nouvel emplacement. Cela redirige Ă©galement les clones et les tirages Ă  partir de Git et pas seulement les requĂȘtes Web.

scroll-to-top