Pint is a PHP code-style fixer that's specifically created to work with Laravel. In this tutorial, I will show you how it works and how to automate its launch before or after you commit code to the repository.

Installation
To install Pint, there's only one step - installing via Composer:
composer require laravel/pint --dev
And that's it! You're ready to use Pint.
Using Pint Locally with Git Hooks
One of the options to use Pint is pre-commit hooks. This is great for those, who want to push their code to the repository only when it's properly formatted. Here's what you need to do:
Create a file .git/hooks/pre-commit with the following content:
.git/hooks/pre-commit
#!/bin/shfiles=$(git diff --cached --name-only --diff-filter=ACM -- '*.php');vendor/bin/pint $files -q git add $files
Here's what this script does:
- Gets a list of 
.phpfiles that were changed - Runs Pint on those files
 - Adds those files to the commit
 
This allows seamless integration with Git. Once you attempt to commit something - it will reformat the code and push it to the repository.
Using Pint with GitHub Actions
Another option for Pint usage is GitHub Actions. For those unfamiliar, I have a separate video Advanced Laravel Testing: CI/CD with GitHub Actions.
It will run a check on GitHub automatically which will format all the files and make a new commit. To get this working, you need to do the following:
Create a file .github/workflows/pint.yml with the following content:
.github/workflows/pint.yml
name: PHP Linting (Pint)on:  workflow_dispatch:  push:    branches-ignore:      - 'dependabot/npm_and_yarn/*'jobs:  Pint:    runs-on: ubuntu-latest    permissions:      contents: write    steps:      - uses: shivammathur/setup-php@15c43e89cdef867065b0213be354c2841860869e        with:          php-version: '8.1'      - uses: actions/checkout@v3      - name: Copy .env        run: php -r "file_exists('.env') || copy('.env.example', '.env');"      - name: Install Dependencies        run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist      - name: Launch Pint inspection        run: vendor/bin/pint       - name: Commit changes        uses: stefanzweifel/git-auto-commit-action@v4        with:          commit_message: PHP Linting (Pint)          skip_fetch: true
Here's what we are doing here:
- We are using the 
shivammathur/setup-phpaction to install the PHP - We are using the 
actions/checkoutaction to checkout the code - Copying .env file if it doesn't exist (just in case you want to do more than just Pint with this job)
 - Installing dependencies with Composer
 - Running Pint
 - Committing changes with commit message 
PHP Linting (Pint) 
Once you commit this file, you should see that there's a new job in your Actions tab:

Clicking on it will give you all the information about the job:

And finally, you should see a new commit in your repository:

That's it! Now all your commits will be properly formatted after a push. Just don't forget to pull them!
                                                    
                                                    
                                                    
for .gitlab-ci.yml