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
10 changes: 10 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Default owners for everything
* @ModernRelay

# Action-specific ownership (add team members as needed)
/agentic-ui-tests/ @ModernRelay
/db-performance-analyzer/ @ModernRelay
/dead-code-analyzer/ @ModernRelay

# CI/CD configuration
/.github/ @ModernRelay
63 changes: 63 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Bug Report
description: Report a bug with one of the actions
title: "[Bug]: "
labels: ["bug", "triage"]
body:
- type: dropdown
id: action
attributes:
label: Which action?
description: Which action is this bug related to?
options:
- agentic-ui-tests
- db-performance-analyzer
- dead-code-analyzer
- Other/Multiple
validations:
required: true

- type: input
id: version
attributes:
label: Version
description: What version of the action are you using?
placeholder: "v1.0.0 or v1"
validations:
required: true

- type: textarea
id: description
attributes:
label: Bug Description
description: A clear description of what the bug is
placeholder: Tell us what happened
validations:
required: true

- type: textarea
id: workflow
attributes:
label: Workflow Configuration
description: Please provide your workflow YAML (redact any secrets)
render: yaml
placeholder: |
- uses: ModernRelay/ralph-claude-code-actions/action-name@v1
with:
...
validations:
required: true

- type: textarea
id: logs
attributes:
label: Error Logs
description: Any relevant error messages or logs
render: shell

- type: textarea
id: expected
attributes:
label: Expected Behavior
description: What did you expect to happen?
validations:
required: true
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Documentation
url: https://github.com/ModernRelay/ralph-claude-code-actions#readme
about: Check the documentation before opening an issue
47 changes: 47 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Feature Request
description: Suggest a new feature or enhancement
title: "[Feature]: "
labels: ["enhancement"]
body:
- type: dropdown
id: action
attributes:
label: Which action?
description: Which action is this feature for?
options:
- agentic-ui-tests
- db-performance-analyzer
- dead-code-analyzer
- New action
- All actions
validations:
required: true

- type: textarea
id: problem
attributes:
label: Problem Statement
description: What problem does this feature solve?
placeholder: I want to be able to...
validations:
required: true

- type: textarea
id: solution
attributes:
label: Proposed Solution
description: How would you like this to work?
validations:
required: true

- type: textarea
id: alternatives
attributes:
label: Alternatives Considered
description: Any alternative solutions you've considered?

- type: textarea
id: context
attributes:
label: Additional Context
description: Any other context, screenshots, or examples?
39 changes: 39 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
## Description

<!-- Brief description of the changes -->

## Related Issue

<!-- Link to related issue if applicable -->
Fixes #

## Type of Change

- [ ] Bug fix (non-breaking change that fixes an issue)
- [ ] New feature (non-breaking change that adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update

## Actions Modified

- [ ] agentic-ui-tests
- [ ] db-performance-analyzer
- [ ] dead-code-analyzer
- [ ] CI/CD workflows
- [ ] Documentation only

## Checklist

- [ ] I have tested these changes locally
- [ ] I have updated the README if needed
- [ ] I have updated the action.yml inputs/outputs if needed
- [ ] My changes generate no new warnings
- [ ] I have added any necessary labels

## Testing

<!-- How did you test these changes? -->

## Screenshots

<!-- If applicable, add screenshots to help explain your changes -->
53 changes: 53 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
version: 2
updates:
# Update GitHub Actions versions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
open-pull-requests-limit: 5
labels:
- "dependencies"
- "ci/cd"
commit-message:
prefix: "chore(deps)"

# Update actions in agentic-ui-tests
- package-ecosystem: "github-actions"
directory: "/agentic-ui-tests"
schedule:
interval: "weekly"
day: "monday"
open-pull-requests-limit: 3
labels:
- "dependencies"
- "agentic-ui-tests"
commit-message:
prefix: "chore(deps)"

# Update actions in db-performance-analyzer
- package-ecosystem: "github-actions"
directory: "/db-performance-analyzer"
schedule:
interval: "weekly"
day: "monday"
open-pull-requests-limit: 3
labels:
- "dependencies"
- "db-performance-analyzer"
commit-message:
prefix: "chore(deps)"

# Update actions in dead-code-analyzer
- package-ecosystem: "github-actions"
directory: "/dead-code-analyzer"
schedule:
interval: "weekly"
day: "monday"
open-pull-requests-limit: 3
labels:
- "dependencies"
- "dead-code-analyzer"
commit-message:
prefix: "chore(deps)"
148 changes: 148 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
name: CI

on:
push:
branches: [main]
pull_request:
branches: [main]

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

- name: Validate action.yml files
run: |
echo "🔍 Validating action.yml files..."

ERRORS=0

for action_dir in */; do
if [ -f "${action_dir}action.yml" ]; then
echo "📦 Checking ${action_dir}action.yml"

Check failure on line 26 in .github/workflows/ci.yml

View workflow job for this annotation

GitHub Actions / Lint YAML

26:1 [trailing-spaces] trailing spaces
# Check YAML syntax
if ! python3 -c "import yaml; yaml.safe_load(open('${action_dir}action.yml'))" 2>/dev/null; then
echo "❌ Invalid YAML syntax in ${action_dir}action.yml"
ERRORS=$((ERRORS + 1))
else
echo " ✅ Valid YAML syntax"
fi

Check failure on line 34 in .github/workflows/ci.yml

View workflow job for this annotation

GitHub Actions / Lint YAML

34:1 [trailing-spaces] trailing spaces
# Check required fields
if ! grep -q "^name:" "${action_dir}action.yml"; then
echo "❌ Missing 'name' field in ${action_dir}action.yml"
ERRORS=$((ERRORS + 1))
fi

Check failure on line 40 in .github/workflows/ci.yml

View workflow job for this annotation

GitHub Actions / Lint YAML

40:1 [trailing-spaces] trailing spaces
if ! grep -q "^description:" "${action_dir}action.yml"; then
echo "❌ Missing 'description' field in ${action_dir}action.yml"
ERRORS=$((ERRORS + 1))
fi

Check failure on line 45 in .github/workflows/ci.yml

View workflow job for this annotation

GitHub Actions / Lint YAML

45:1 [trailing-spaces] trailing spaces
if ! grep -q "^runs:" "${action_dir}action.yml"; then
echo "❌ Missing 'runs' field in ${action_dir}action.yml"
ERRORS=$((ERRORS + 1))
fi

Check failure on line 50 in .github/workflows/ci.yml

View workflow job for this annotation

GitHub Actions / Lint YAML

50:1 [trailing-spaces] trailing spaces
echo " ✅ Required fields present"
fi
done

if [ $ERRORS -gt 0 ]; then
echo ""
echo "❌ Found $ERRORS validation error(s)"
exit 1
fi

echo ""
echo "✅ All action.yml files are valid"

- name: Check README exists for each action
run: |
echo "📚 Checking README files..."

MISSING=0

for action_dir in */; do
if [ -f "${action_dir}action.yml" ]; then
if [ ! -f "${action_dir}README.md" ]; then
echo "⚠️ Missing README.md in ${action_dir}"
MISSING=$((MISSING + 1))
else
echo "✅ ${action_dir}README.md exists"
fi
fi
done

if [ $MISSING -gt 0 ]; then
echo ""
echo "⚠️ $MISSING action(s) missing README.md"
exit 1
fi

echo ""
echo "✅ All actions have README files"

lint:
name: Lint YAML
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install yamllint
run: pip install yamllint

- name: Create yamllint config
run: |
cat > .yamllint.yml << 'EOF'
extends: default
rules:
line-length:
max: 200
level: warning
document-start: disable
truthy:
check-keys: false
comments:
min-spaces-from-content: 1
indentation:
spaces: 2
indent-sequences: consistent
EOF

- name: Lint YAML files
run: |
echo "🔍 Linting YAML files..."
yamllint -c .yamllint.yml */action.yml .github/workflows/*.yml || true
echo "✅ Linting complete"

summary:
name: Action Summary
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Generate action summary
run: |
echo "## 📦 Actions in this repository" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "| Action | Description |" >> $GITHUB_STEP_SUMMARY
echo "|--------|-------------|" >> $GITHUB_STEP_SUMMARY

for action_dir in */; do
if [ -f "${action_dir}action.yml" ]; then
ACTION_NAME=$(echo "$action_dir" | sed 's/\///')
DESCRIPTION=$(grep "^description:" "${action_dir}action.yml" | head -1 | sed 's/description: *//' | sed 's/"//g')
echo "| \`${ACTION_NAME}\` | ${DESCRIPTION} |" >> $GITHUB_STEP_SUMMARY
fi
done

echo "" >> $GITHUB_STEP_SUMMARY
echo "---" >> $GITHUB_STEP_SUMMARY
echo "✅ CI completed at $(date -u '+%Y-%m-%d %H:%M:%S UTC')" >> $GITHUB_STEP_SUMMARY
Loading