Skip to content

Commit a5c0bb3

Browse files
authored
chore(devx): cleanup (#3474)
1 parent 4030ace commit a5c0bb3

10 files changed

Lines changed: 142 additions & 207 deletions

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 0 additions & 19 deletions
This file was deleted.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Node.js CI
1+
name: Backend Lint
22
permissions:
33
contents: read
44

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Lint Frontend
1+
name: Frontend Lint
22

33
on:
44
pull_request:
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
name: PR Title - Jira Key Validation
2+
3+
on:
4+
pull_request:
5+
types: [opened, edited, reopened, synchronize]
6+
7+
jobs:
8+
validate-jira-key-in-pr-title:
9+
runs-on: ubuntu-latest
10+
if: github.event.pull_request.draft == false
11+
permissions:
12+
pull-requests: write
13+
checks: write
14+
steps:
15+
- name: Check for Jira issue key in PR title
16+
uses: actions/github-script@v7
17+
with:
18+
script: |
19+
const prTitle = context.payload.pull_request.title;
20+
console.log(`PR Title: ${prTitle}`);
21+
22+
// Regex to match Jira issue keys (CDP-123 format)
23+
// Supports conventional commits format: type(CDP-123): description
24+
const jiraKeyRegex = /\b[A-Z]+-\d+\b/;
25+
26+
if (!jiraKeyRegex.test(prTitle)) {
27+
const warningMessage = `⚠️ **Jira Issue Key Missing**
28+
29+
Your PR title doesn't contain a Jira issue key. Consider adding it for better traceability.
30+
31+
**Examples:**
32+
- \`feat: add user authentication (CDP-123)\`
33+
- \`fix(CDP-123): resolve login issue\`
34+
35+
Please add a Jira issue key to your PR title.`;
36+
37+
github.rest.issues.createComment({
38+
issue_number: context.issue.number,
39+
owner: context.repo.owner,
40+
repo: context.repo.repo,
41+
body: warningMessage
42+
});
43+
44+
// Create check run with failure conclusion
45+
github.rest.checks.create({
46+
owner: context.repo.owner,
47+
repo: context.repo.repo,
48+
head_sha: context.payload.pull_request.head.sha,
49+
name: 'Jira PR Validation',
50+
status: 'completed',
51+
conclusion: 'neutral',
52+
output: {
53+
title: 'Jira Issue Key Missing',
54+
summary: 'PR title does not contain a Jira issue key'
55+
}
56+
});
57+
} else {
58+
const match = prTitle.match(jiraKeyRegex);
59+
console.log(`✅ Found Jira issue key: ${match[0]}`);
60+
61+
// Create check run with success conclusion
62+
github.rest.checks.create({
63+
owner: context.repo.owner,
64+
repo: context.repo.repo,
65+
head_sha: context.payload.pull_request.head.sha,
66+
name: 'Jira PR Validation',
67+
status: 'completed',
68+
conclusion: 'success',
69+
output: {
70+
title: 'Jira Issue Key Found',
71+
summary: `Found Jira issue key: ${match[0]}`
72+
}
73+
});
74+
}

.github/workflows/release-drafter.yaml

Lines changed: 0 additions & 38 deletions
This file was deleted.

.github/workflows/reset-staging.yaml

Lines changed: 0 additions & 28 deletions
This file was deleted.

.github/workflows/test-frontend.yml

Lines changed: 0 additions & 56 deletions
This file was deleted.

CODEOWNERS

Lines changed: 0 additions & 64 deletions
This file was deleted.

CONTRIBUTING.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,55 @@ To ensure consistency throughout the source code, please keep these rules in min
142142
- All new API endpoints that are relevant to the public API must have in-code documentation to generate OpenAPI specifications.
143143
- The pipeline must pass.
144144

145+
##### Commit Message Guidelines
146+
147+
This project uses [Conventional Commits](https://www.conventionalcommits.org/) enforced by commitlint.
148+
149+
**Documentation:**
150+
- [Official Conventional Commits Specification](https://www.conventionalcommits.org/)
151+
- [LFX Internal Conventional Commits Guide](https://linuxfoundation.atlassian.net/wiki/spaces/PROD/pages/759726128/Conventional+Commits)
152+
153+
**Enforcement:** Commitlint runs automatically via Husky on every commit. Invalid commit messages will be rejected.
154+
155+
##### Pull Request Guidelines
156+
157+
**PR Title Requirements:**
158+
- Must follow conventional commit format: `type(scope): description`
159+
- Should include JIRA ticket key in title: `feat(CDP-123): add new feature`
160+
161+
**PR Process:**
162+
1. Ensure your commits follow the conventional commit format
163+
2. Include JIRA ticket key in PR title
164+
3. Provide clear description of changes
165+
4. Ensure all tests pass
166+
5. Request review from a member of the team
167+
168+
##### JIRA Integration
169+
170+
**Using JIRA MCP Server:**
171+
Leverage the JIRA MCP server for efficient ticket management during development.
172+
173+
**Documentation:**
174+
- [JIRA MCP Server Guide](https://github.com/linuxfoundation/lfx-engineering/blob/main/mcp/jira.md)
175+
176+
**Ticket Linking:**
177+
- When possible reference JIRA tickets in commit messages and PR titles
178+
- Use format: `type(TICKET-KEY): conventional commit message`
179+
- This enables automatic linking between code changes and tickets
180+
181+
##### AI Development Guidelines
182+
183+
**Leveraging AI Tools:**
184+
The Linux Foundation provides guidelines and best practices for using AI in development workflows.
185+
186+
**Documentation:**
187+
- [LFX AI Development Guidelines](https://github.com/linuxfoundation/lfx-engineering/tree/main/ai)
188+
189+
**Best Practices:**
190+
- Follow LFX guidelines when using AI tools for code generation
191+
- Ensure AI-generated code meets our quality standards
192+
- Review and test all AI-assisted contributions thoroughly
193+
145194

146195
## Need help? 🛟
147196

MAINTAINERS.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
LFX Community Data Platform is a project by the Linux Foundation.
2+
3+
## Maintainers
4+
5+
| Role | Name | GitHub ID | Affiliation |
6+
| -----------------| ------------------ | -------------------------------------------------| ---------------------|
7+
| Maintainer | Jonathan Reimer | [jonathimer](https://github.com/jonathimer) | The Linux Foundation |
8+
| Maintainer | Joana Maia | [joanagmaia](https://github.com/joanagmaia) | The Linux Foundation |
9+
| Maintainer | Uroš Marolt | [themarolt](https://github.com/themarolt) | The Linux Foundation |
10+
| Maintainer | Umberto Sgueglia | [ulemons](https://github.com/ulemons) | The Linux Foundation |
11+
| Maintainer | Yeganathan Kumar | [skwowet](https://github.com/skwowet) | The Linux Foundation |
12+
| Maintainer | Mouad Bani | [mbani01](https://github.com/mbani01) | The Linux Foundation |
13+
| Maintainer | Raúl Santos | [borfast](https://github.com/borfast) | The Linux Foundation |
14+
| Maintainer | Gasper Grom | [gaspergrom](https://github.com/gaspergrom) | The Linux Foundation |
15+
| Maintainer | Efren Lim | [emlimlf](https://github.com/emlimlf) | The Linux Foundation |
16+
| Maintainer | Anıl Bostancı | [epipav](https://github.com/epipav) | The Linux Foundation |
17+
| Maintainer | Nuno Eufrásio | [nunoeufrasio](https://github.com/nunoeufrasio) | The Linux Foundation |

0 commit comments

Comments
 (0)