Skip to content
Merged
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
56 changes: 56 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
name: 🐛 Bug Report
about: Report a bug or issue with DevToolkit
title: '[BUG] Brief description of the issue'
labels: 'bug, hacktoberfest'
assignees: 'heysaiyad'

---

## 🐛 Bug Report

### 📝 Description
**A clear and concise description of what the bug is.**

### 🔄 Steps to Reproduce
**Steps to reproduce the behavior:**
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error

### ✅ Expected Behavior
**A clear and concise description of what you expected to happen.**

### ❌ Actual Behavior
**A clear and concise description of what actually happened.**

### 📸 Screenshots
**If applicable, add screenshots to help explain your problem.**

### 🌐 Environment
**Please complete the following information:**
- Device: [e.g. Desktop, Mobile]
- OS: [e.g. Windows 11, macOS, iOS]
- Browser: [e.g. Chrome, Firefox, Safari]
- Version: [e.g. 22]
- Tool: [Which specific tool has the issue]

### 🔧 Additional Context
**Add any other context about the problem here.**

### 🎯 Severity
**How critical is this bug?**
- [ ] 🔴 Critical (site/tool completely broken)
- [ ] 🟡 High (major functionality affected)
- [ ] 🟢 Medium (minor functionality affected)
- [ ] 🔵 Low (cosmetic issue)

### 👥 For Contributors
- [ ] I'd like to work on fixing this bug
- [ ] I need help understanding the codebase
- [ ] This is for Hacktoberfest participation

---

**Thank you for helping improve DevToolkit! 🛠️**
58 changes: 48 additions & 10 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,53 @@
---
name: ✨ New Tool/Feature Request
about: Suggest a new tool or feature for the toolkit
title: 'feat: [TOOL NAME]'
labels: 'enhancement, help wanted'
name: 🔧 New Tool Request
about: Suggest a new developer tool for DevToolkit
title: '[TOOL] Add [Tool Name]'
labels: 'enhancement, hacktoberfest, good first issue'
assignees: 'heysaiyad'

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
## 🛠️ Tool Request

### 📝 Tool Name
**What tool would you like to add?**

### 🎯 Purpose
**What problem does this tool solve for developers?**

### ✨ Key Features
**What should this tool be able to do?**
- [ ] Feature 1
- [ ] Feature 2
- [ ] Feature 3

### 📋 Tool Category
**Which category does this tool belong to?**
- [ ] 📝 Text Tools (text processing, formatting)
- [ ] 🔧 Code Tools (syntax highlighting, validation)
- [ ] 🎨 Utility Tools (generators, converters)
- [ ] 🔐 Security Tools (encryption, hashing)

### 🌐 Similar Tools (Optional)
**Are there any existing tools that do something similar?**

### 📸 Mockups/Examples (Optional)
**Add any mockups, sketches, or examples of similar tools**

**Describe the solution you'd like**
A clear and concise description of what you want to happen.
### 🚀 Implementation Notes
**Any technical considerations or suggestions?**

---

### 📋 For Contributors
- [ ] I'd like to work on this tool myself
- [ ] I'm available to help with design/testing
- [ ] This is just a suggestion for others

### 🎯 Hacktoberfest 2025
- [ ] This is for Hacktoberfest participation
- [ ] I'm a first-time contributor

---

**Additional context**
Add any other context or screenshots about the feature request here.
**Thank you for suggesting a new tool for DevToolkit! 🚀**
79 changes: 79 additions & 0 deletions .github/workflows/auto-assign.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: Auto Assign Issues and PRs

on:
issues:
types: [opened]
pull_request:
types: [opened]

jobs:
auto-assign:
runs-on: ubuntu-latest
steps:
- name: Auto assign
uses: actions/github-script@v6
with:
script: |
const { owner, repo } = context.repo;

// Auto assign to repository owner
const assignee = 'heysaiyad';

if (context.eventName === 'issues') {
await github.rest.issues.addAssignees({
owner,
repo,
issue_number: context.payload.issue.number,
assignees: [assignee]
});

// Add appropriate labels
const title = context.payload.issue.title.toLowerCase();
const body = context.payload.issue.body ? context.payload.issue.body.toLowerCase() : '';

let labels = ['hacktoberfest'];

if (title.includes('bug') || body.includes('bug')) {
labels.push('bug');
} else if (title.includes('feature') || title.includes('tool')) {
labels.push('enhancement');
labels.push('good first issue');
} else if (title.includes('documentation') || title.includes('readme')) {
labels.push('documentation');
}

await github.rest.issues.addLabels({
owner,
repo,
issue_number: context.payload.issue.number,
labels: labels
});
}

if (context.eventName === 'pull_request') {
await github.rest.issues.addAssignees({
owner,
repo,
issue_number: context.payload.pull_request.number,
assignees: [assignee]
});

// Add labels based on PR content
const title = context.payload.pull_request.title.toLowerCase();
let labels = ['hacktoberfest'];

if (title.includes('feat') || title.includes('add')) {
labels.push('enhancement');
} else if (title.includes('fix')) {
labels.push('bug');
} else if (title.includes('docs')) {
labels.push('documentation');
}

await github.rest.issues.addLabels({
owner,
repo,
issue_number: context.payload.pull_request.number,
labels: labels
});
}
90 changes: 90 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
name: Deploy to GitHub Pages

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Pages
uses: actions/configure-pages@v3

- name: Build
run: |
# Since this is a static site, just copy files
echo "Building DevToolkit..."
ls -la

- name: Upload artifact
uses: actions/upload-pages-artifact@v2
with:
path: '.'

deploy:
if: github.ref == 'refs/heads/master' && github.event_name == 'push'
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2

- name: Comment on related PRs
uses: actions/github-script@v6
with:
script: |
const { owner, repo } = context.repo;
const deploymentUrl = '${{ steps.deployment.outputs.page_url }}';

// Find recent merged PRs
const { data: prs } = await github.rest.pulls.list({
owner,
repo,
state: 'closed',
sort: 'updated',
direction: 'desc',
per_page: 5
});

for (const pr of prs) {
if (pr.merged_at) {
const mergedDate = new Date(pr.merged_at);
const now = new Date();
const diffHours = (now - mergedDate) / (1000 * 60 * 60);

// Comment on PRs merged in the last 24 hours
if (diffHours < 24) {
await github.rest.issues.createComment({
owner,
repo,
issue_number: pr.number,
body: |
🚀 **Deployed Successfully!** 🚀

Your changes are now live on GitHub Pages:
👉 ${{ steps.deployment.outputs.page_url }}

Thanks for contributing to DevToolkit! 🛠️✨
});
}
}
}
91 changes: 91 additions & 0 deletions .github/workflows/welcome.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: Welcome New Contributors

on:
issues:
types: [opened]
pull_request:
types: [opened]

jobs:
welcome:
runs-on: ubuntu-latest
steps:
- name: Welcome new contributors
uses: actions/github-script@v6
with:
script: |
const { owner, repo } = context.repo;

if (context.eventName === 'issues') {
const issueAuthor = context.payload.issue.user.login;
const issueNumber = context.payload.issue.number;

// Check if this is the user's first issue
const { data: issues } = await github.rest.issues.listForRepo({
owner,
repo,
creator: issueAuthor,
state: 'all'
});

if (issues.length === 1) {
await github.rest.issues.createComment({
owner,
repo,
issue_number: issueNumber,
body: |
🎉 **Welcome to DevToolkit!** 🎉

Hi @${{ github.event.issue.user.login }}! Thanks for opening your first issue. We're excited to have you as part of our Hacktoberfest 2025 community!

🚀 **Getting Started:**
- Check out our [Contribution Guidelines](CONTRIBUTING.md)
- Read the [Tool Template](TOOL_TEMPLATE.md) for adding new tools
- Join our [Discussions](https://github.com/${{ github.repository }}/discussions) for any questions

🏆 **Perfect for Hacktoberfest:**
- This is a beginner-friendly project
- We have clear guidelines and templates
- Fast review and merge process

Happy coding! 🛠️✨
});
}
}

if (context.eventName === 'pull_request') {
const prAuthor = context.payload.pull_request.user.login;
const prNumber = context.payload.pull_request.number;

// Check if this is the user's first PR
const { data: prs } = await github.rest.pulls.list({
owner,
repo,
creator: prAuthor,
state: 'all'
});

if (prs.length === 1) {
await github.rest.issues.createComment({
owner,
repo,
issue_number: prNumber,
body: |
🎉 **Awesome! Your first PR!** 🎉

Hi @${{ github.event.pull_request.user.login }}! Thank you for your first pull request to DevToolkit!

🔍 **What's Next:**
- Our team will review your PR soon
- Make sure you've followed our [Design Guidelines](TOOL_TEMPLATE.md)
- Check that your tool works on both desktop and mobile

🏆 **Hacktoberfest 2025:**
- Your contribution counts towards Hacktoberfest!
- High-quality PRs get fast approval
- You'll be featured on our Contributors Wall 🌟

Thanks for making DevToolkit better! 🚀
});
}
}
Loading
Loading