Skip to content

Commit 797a7a6

Browse files
authored
Merge pull request #1154 from dnum-mi/develop
Develop
2 parents 2772ce2 + 3426b79 commit 797a7a6

File tree

4 files changed

+99
-7
lines changed

4 files changed

+99
-7
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: Check PR linked to issue
2+
3+
on:
4+
pull_request:
5+
types: [opened, edited, synchronize]
6+
7+
jobs:
8+
check-linked-issue:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Check if PR is linked to an issue
12+
uses: actions/github-script@v7
13+
with:
14+
script: |
15+
const { data: pullRequest } = await github.rest.pulls.get({
16+
owner: context.repo.owner,
17+
repo: context.repo.repo,
18+
pull_number: context.issue.number,
19+
});
20+
21+
// Vérifier les issues liées via l'interface GitHub avec GraphQL
22+
const query = `
23+
query($owner: String!, $repo: String!, $number: Int!) {
24+
repository(owner: $owner, name: $repo) {
25+
pullRequest(number: $number) {
26+
closingIssuesReferences(first: 50) {
27+
nodes {
28+
number
29+
title
30+
}
31+
}
32+
}
33+
}
34+
}
35+
`;
36+
37+
let linkedIssuesFromUI = [];
38+
try {
39+
const result = await github.graphql(query, {
40+
owner: context.repo.owner,
41+
repo: context.repo.repo,
42+
number: context.issue.number,
43+
});
44+
linkedIssuesFromUI = result.repository.pullRequest.closingIssuesReferences.nodes;
45+
} catch (error) {
46+
console.log('Erreur lors de la récupération des issues liées via GraphQL:', error.message);
47+
}
48+
49+
// Vérifier dans le corps de la PR (mots-clés comme "closes #123", "fixes #456")
50+
const prBody = pullRequest.body || '';
51+
const prTitle = pullRequest.title || '';
52+
53+
// Pattern pour détecter les références aux issues
54+
const issueKeywords = /(?:close[sd]?|fix(?:e[sd])?|resolve[sd]?|ref(?:erences?)?|see|relate[sd]?(?:\s+to)?)\s*(?:#(\d+)|https?:\/\/github\.com\/[^\/]+\/[^\/]+\/issues\/(\d+))/gi;
55+
56+
const bodyMatches = prBody.match(issueKeywords);
57+
const titleMatches = prTitle.match(issueKeywords);
58+
59+
// Vérifier aussi les numéros d'issues simples dans le titre (ex: "feat: #123 - nouvelle fonctionnalité")
60+
const simpleIssueRef = /(?:^|\s)#(\d+)(?:\s|$|-)/g;
61+
const titleIssueRefs = prTitle.match(simpleIssueRef);
62+
63+
const hasLinkedIssues = linkedIssuesFromUI.length > 0 || bodyMatches || titleMatches || titleIssueRefs;
64+
65+
if (!hasLinkedIssues) {
66+
core.setFailed('❌ Cette PR doit être liée à une issue. Utilisez des mots-clés comme "closes #123" ou "fixes #456" dans la description, référencez une issue dans le titre avec "#123", ou liez une issue via l\'interface GitHub.');
67+
} else {
68+
console.log('✅ PR correctement liée à une ou plusieurs issues');
69+
if (linkedIssuesFromUI.length > 0) {
70+
console.log('Issues liées via l\'interface GitHub:', linkedIssuesFromUI.map(issue => `#${issue.number} - ${issue.title}`));
71+
}
72+
if (bodyMatches) console.log('Issues trouvées dans le body:', bodyMatches);
73+
if (titleMatches) console.log('Issues trouvées dans le titre:', titleMatches);
74+
if (titleIssueRefs) console.log('Références d\'issues dans le titre:', titleIssueRefs);
75+
}

.vitepress/config.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ const guideItems = [
6868
link: '/guide/migrations.md',
6969
},
7070
{
71-
text: 'Guide du développeur',
71+
text: 'Guide du contributeur',
7272
link: '/guide/guide-developpeur.md',
7373
},
7474
]
@@ -488,7 +488,7 @@ export default defineConfig({
488488
text: 'Guides',
489489
items: [
490490
{ text: 'Guide de l’utilisateur', link: '/guide/pour-commencer' },
491-
{ text: 'Guide du développeur', link: '/guide/guide-developpeur' },
491+
{ text: 'Guide du contributeur', link: '/guide/guide-developpeur' },
492492
],
493493
},
494494
{

docs/guide/guide-developpeur.md

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,32 @@
1-
# Guide du développeur
1+
# Guide du contributeur
22

33
## Comment contribuer
44

55
::: info NOTE
66

7-
Ceci est le guide du développeur pour contribuer au projet de cette bibliothèque.
7+
Ceci est le guide du contributeur pour contribuer au projet de cette bibliothèque.
88
Si vous cherchez à utiliser cette bibliothèque, veuillez vous référer au
9-
[Guide dutilisation](./pour-commencer.md).
9+
[Guide d'utilisation](./pour-commencer.md).
1010

1111
:::
1212

13+
## Langue et communication
14+
15+
**Tout le contenu de ce projet doit être rédigé en français**, y compris :
16+
17+
- Messages de commits
18+
- Commentaires dans le code
19+
- Documentation
20+
- Échanges sur GitHub (issues, pull requests, discussions)
21+
- Noms de fichiers lorsque c'est pertinent
22+
23+
**Seules exceptions autorisées et même recommandées :**
24+
25+
- **Noms de branches** : en anglais pour qu'ils soient plus courts et standardisés (ex: `feat/button-component`, `fix/accessibility-issue`)
26+
- **Noms de variables et fonctions** : en anglais selon les conventions de développement (ex: `handleClick`, `isVisible`, `userConfig`)
27+
28+
Cette approche permet de maintenir la cohérence du projet tout en respectant les bonnes pratiques de développement internationales.
29+
1330
### TL;DR
1431

1532
Les commits doivent suivre la spécification des **[Commits Conventionnels](https://www.conventionalcommits.org/fr/v1.0.0/)**

docs/guide/pour-commencer.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
::: info NOTE
44

5-
Ceci est le guide d̛utilisation de la bibliothèque. Si vous cherchez à contribuer, se référer au
6-
[Guide du développeur](./guide-developpeur).
5+
Ceci est le guide d̛'utilisation de la bibliothèque. Si vous cherchez à contribuer, se référer au
6+
[Guide du contributeur](./guide-developpeur).
77

88
:::
99

0 commit comments

Comments
 (0)