Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: 🐞 Bug Report
description: Report a bug to help us improve the project
title: '[Bug]: '
labels: [bug, needs-triage]
assignees:
- asica
body:
- type: markdown
attributes:
value: |
**Before submitting, please check if the bug has already been reported.**
Provide as much detail as possible to help us reproduce the issue.

- type: textarea
id: description
attributes:
label: 🐛 Bug Description
description: Describe the bug in detail.
placeholder: A clear and concise description of what the bug is.
validations:
required: true

- type: textarea
id: reproduction_steps
attributes:
label: 🔄 Steps to Reproduce
description: Provide step-by-step instructions to reproduce the bug.
placeholder: |
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See the error
validations:
required: true

- type: textarea
id: expected_behavior
attributes:
label: ✅ Expected Behavior
description: What should happen instead?
placeholder: Describe what you expected to happen.
validations:
required: true

- type: textarea
id: actual_behavior
attributes:
label: ❌ Actual Behavior
description: What actually happens?
placeholder: Describe what is currently happening.
validations:
required: true

- type: dropdown
id: environment
attributes:
label: 🌍 Environment
description: Where did the bug occur?
options:
- Production
- Development
- Local Machine
- Other
validations:
required: true

- type: textarea
id: additional_context
attributes:
label: '📄 Additional Context & Logs'
description: 'Add screenshots, logs, or any other relevant information.'
placeholder: You can paste logs here.

- type: checkboxes
id: confirmation
attributes:
label: 📝 Confirmation
description: 'Before submitting, please check the following:'
options:
- label: I have searched for existing issues.
required: true
- label: I have provided all necessary details.
required: true
49 changes: 49 additions & 0 deletions .github/ISSUE_TEMPLATE/dependency_updat.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: 📦 Dependency Update Request
description: 'Request to update, add, or remove dependencies'
labels: [dependencies]
body:
- type: markdown
attributes:
value: |
## 📦 Dependency Update Request
Need a package update? Fill in the details below.

- type: textarea
id: dependency-reason
attributes:
label: 🔍 Why is this update needed?
description: Explain why this dependency needs an update.
placeholder: 'Security fix, new feature, etc.'

- type: dropdown
id: update-type
attributes:
label: 📊 Type of Update
description: Choose what kind of update this is.
options:
- Bug fix
- Security update
- Performance improvement
- New feature
- Other

- type: textarea
id: dependency-table
attributes:
label: 📜 Dependency Changes
description: List all dependencies that need updating.
placeholder: |
| Dependency | Old Version | New Version |
|------------|------------|------------|
| Next.js | 14.2.3 | 15.1.6 |
| React | 18.3.1 | 19.0.0 |
| Tailwind | 3.4.3 | 4.0.1 |

- type: checkboxes
id: risk-assessment
attributes:
label: ⚠️ Risk Assessment
options:
- label: Tested for breaking changes
- label: Checked compatibility with existing code
- label: Security vulnerabilities reviewed
53 changes: 53 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: ✨ Feature Request
description: Suggest a new feature or improvement
title: '[Feature]: '
labels: [enhancement]
body:
- type: markdown
attributes:
value: Thank you for suggesting an improvement! 🚀 Please fill out the following details.

- type: textarea
id: feature_description
attributes:
label: 💡 Feature Description
description: Describe the new feature or improvement.
placeholder: What problem does this feature solve?
validations:
required: true

- type: textarea
id: use_case
attributes:
label: 📌 Use Case
description: How would this feature be used? Provide an example.
placeholder: 'Example: As a user, I want to...'
validations:
required: true

- type: dropdown
id: priority
attributes:
label: 🚀 Priority Level
description: How important is this feature?
options:
- Low - Nice to have
- Medium - Important but not urgent
- High - Critical for functionality
validations:
required: true

- type: textarea
id: alternatives
attributes:
label: 🔄 Alternatives Considered
description: Have you considered any alternative solutions?
placeholder: Describe any alternative features or workarounds.

- type: checkboxes
id: confirmation
attributes:
label: ✔ Checklist
options:
- label: I have checked that this feature does not already exist.
required: true
2 changes: 2 additions & 0 deletions .github/workflows/firebase-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ jobs:

# Step 6: Build the project
- name: 🧱 Build Project
env:
VITE_API_KEY: ${{ secrets.VITE_API_KEY }}
run: npm run build

# Step 7: Install Firebase CLI (use cache for global installs)
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/firebase-preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ jobs:
${{ runner.os }}-build-cache-

- name: 🔨 Build the app
env:
VITE_API_KEY: ${{ secrets.VITE_API_KEY }}
run: npm run build

# 🚨 Run Lint check
Expand Down
112 changes: 39 additions & 73 deletions .github/workflows/label-pr-based-on-paths.yml
Original file line number Diff line number Diff line change
@@ -1,92 +1,58 @@
name: Auto-label PR based on file paths
name: Auto Tag PR based on file paths

on:
pull_request_target:
types: [opened, synchronize]
on: pull_request_target

permissions:
contents: read
pull-requests: write

jobs:
label:
auto-tag:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
issues: write
steps:
- name: Checkout code
- name: Check out repository
uses: actions/checkout@v4

- name: Label PR based on changes with colors
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v45
with:
json: true

- name: Add labels based on changed files
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const prFiles = await github.rest.pulls.listFiles({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number
});

// Define the labels and their colors
const labelsToColor = {
components: '1f77b4', // Blue - Components Related
pages: 'ff7f0e', // Orange - Pages Related
hooks: '2ca02c', // Green - Hooks Related
utils: '9467bd', // Purple - Utils Related
stores: 'd62728', // Red - Context Related
assets: 'ffdd57', // Yellow - Assets Related
types: '17becf', // Cyan - Types Related
const changedFiles = ${{ steps.changed-files.outputs.all_changed_files }};
const labelMap = {
"src/pages/": "pages",
"src/components/": "components",
"src/hooks/": "hooks",
"src/stores/": "stores",
"src/lib/": "lib",
"src/utils/": "utils",
"src/styles/": "styles",
"src/types/": "types",
"public/": "public-assets"
};

const labels = new Set();
const labelsToAdd = new Set();

prFiles.data.forEach(file => {
if (file.filename.startsWith('src/components')) {
labels.add('components');
}
if (file.filename.startsWith('src/pages')) {
labels.add('pages');
}
if (file.filename.startsWith('src/hooks')) {
labels.add('hooks');
}
if (file.filename.startsWith('src/utils')) {
labels.add('utils');
}
if (file.filename.startsWith('src/stores')) {
labels.add('stores');
}
if (file.filename.startsWith('public') || file.filename.startsWith('src/assets')) {
labels.add('assets');
}
if (file.filename.startsWith('src/types') || file.filename.endsWith('.d.ts')) {
labels.add('types');
}
});

if (labels.size > 0) {
for (const label of labels) {
try {
// Check if the label exists
await github.rest.issues.getLabel({
owner: context.repo.owner,
repo: context.repo.repo,
name: label
});
} catch (error) {
// If label doesn't exist, create it with the specified color
await github.rest.issues.createLabel({
owner: context.repo.owner,
repo: context.repo.repo,
name: label,
color: labelsToColor[label] || 'b0b0b0', // Use default gray if no color specified
});
changedFiles.forEach(file => {
for (const [path, label] of Object.entries(labelMap)) {
if (file.startsWith(path)) {
labelsToAdd.add(label);
}
}
});

// Add labels to the PR
if (labelsToAdd.size > 0) {
const { owner, repo, number } = context.issue;
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
labels: Array.from(labels)
owner,
repo,
issue_number: number,
labels: Array.from(labelsToAdd)
});
}
Loading