Skip to content

Contributing to ShieldCI

We welcome contributions from the community! Whether you're reporting bugs, suggesting features, improving documentation, or contributing code, your help makes ShieldCI better for everyone.

Ways to Contribute

Report Bugs

Found a bug? Please help us fix it:

  1. Search existing issues - Check if the bug has already been reported on GitHub Issues
  2. Create a new issue - If not found, open a new issue
  3. Include details:
    • ShieldCI version
    • Laravel version
    • PHP version
    • Steps to reproduce
    • Expected vs actual behavior
    • Error messages (if any)

Good bug report example:

Title: False positive in SQL Injection analyzer with Query Builder

ShieldCI: 1.0.0
Laravel: 11.x
PHP: 8.3

Steps to reproduce:
1. Create a query using `DB::table('users')->where('id', $id)`
2. Run `php artisan shieldci:analyze`
3. Analyzer incorrectly flags this as SQL injection

Expected: No warning (parameterized query is safe)
Actual: SQL injection warning triggered

Suggest Features

Have an idea to improve ShieldCI?

  1. Check existing discussions - Your idea might already be under consideration
  2. Open a feature request - Create an issue with the enhancement label
  3. Describe the use case:
    • What problem does it solve?
    • Who would benefit?
    • How would it work?

Improve Documentation

Documentation improvements are always welcome:

  1. Edit directly - Click "Edit this page on GitHub" at the bottom of any page
  2. Submit a PR - Make changes and submit a pull request
  3. Report issues - Open an issue for documentation problems

Documentation guidelines:

  • Write clearly and concisely
  • Include code examples where helpful
  • Test code examples before submitting
  • Follow existing formatting conventions

Contribute Code

Ready to contribute code? Here's how:

  1. Fork the repository - shieldci/laravel
  2. Create a branch - git checkout -b feature/your-feature-name
  3. Write tests - All new features need tests
  4. Follow coding standards - Run composer pint before committing
  5. Submit a PR - Include a clear description of changes

Development Setup

Requirements

  • PHP 8.1+
  • Composer 2.x
  • Git

Installation

bash
# Clone your fork
git clone https://github.com/YOUR_USERNAME/laravel.git shieldci-laravel
cd shieldci-laravel

# Install dependencies
composer install

# Run tests
composer test

# Run static analysis
composer phpstan

# Fix code style
composer pint

Running Tests

bash
# All tests
composer test

# Specific test file
vendor/bin/pest tests/Analyzers/Security/SqlInjectionTest.php

# With coverage
composer test -- --coverage

Code Quality

All contributions must pass:

  • PHPStan Level 9 - composer phpstan
  • Laravel Pint - composer pint
  • All tests - composer test

Code of Conduct

We are committed to providing a welcoming and inclusive community. Please:

  • Be respectful - Treat everyone with respect and kindness
  • Be constructive - Focus on helpful feedback and collaboration
  • Be patient - Remember that maintainers are volunteers
  • Be inclusive - Welcome newcomers and help them contribute

Unacceptable behavior includes:

  • Harassment, discrimination, or offensive comments
  • Personal attacks or trolling
  • Publishing private information without consent
  • Any conduct inappropriate in a professional setting

Violations may result in temporary or permanent bans from the community.

Getting Help

  • Discord - Join our Discord community for real-time help
  • GitHub Discussions - For questions and general discussions
  • Documentation - Check the docs for answers to common questions

Recognition

Contributors are recognized in:

  • Release notes for significant contributions
  • Our community Discord

Thank you for contributing to ShieldCI!