Skip to content

Check if authors are mentioned in your source code and composer.json / bower.json / packages.json.

License

Notifications You must be signed in to change notification settings

phpcq/author-validation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

af57d91 · Dec 28, 2022
Dec 28, 2022
Dec 1, 2017
May 19, 2015
Sep 7, 2020
Sep 7, 2020
Dec 4, 2018
Jan 8, 2019
Sep 7, 2020
Dec 27, 2014
Dec 28, 2022
Dec 27, 2014
Sep 6, 2020
Dec 28, 2022
Sep 6, 2020

Repository files navigation

Build Status Latest Version tagged Latest Version on Packagist Installations via composer per month

Validate the author information within PHP files, composer.json, bower.json or packages.json.

This is useful to ensure that all authors (from git history) mentioned in all PHP files, the composer.json, bower.json and packages.json.

Usage

Add to your composer.json in the require-dev section:

"phpcq/author-validation": "~1.0"

Call the binary:

./vendor/bin/check-author.php

Optionally pass a path to check:

./vendor/bin/check-author.php /path/to/some/repository/also/with/subdir

Configuration

Optionally you can pass the path to a config file (defaults to .check-author.yml) which shall be used.

# Example .check-author.yml

# Map multiple authors to a single one (aliasing of contributors).
mapping:
  # original: alias
  "John Doe <john@example.org>": "John Doe <jd@example.org>"
  # or original: [multiple aliases]
  "John Doe <john@example.org>": ["John Doe <jd@example.org>", "Acme Inc <info@example.org>"]
  # or
  "John Doe <john@example.org>":
    - "John Doe <jd@example.org>"
    - "Acme Inc <info@example.org>"

# Ignore commits from these authors (equivalent to cmd line parameter --ignore=...)
ignore:
  - Build Bot <bot@example.org>

# If present, scan only these and not the whole base dir (equivalent to cmd line arguments).
# Values must either be absolute paths or relative to the current directory.
include:
  - src

# Paths to exclude from scanning (equivalent to cmd line parameter --exclude=...)
exclude:
  - Foo.php
  - /tests/*
  - */languages

# Enforce copy-left author for certain files.
copy-left:
  "John Doe <jd@example.org>": "/library"
  # or
  "John Doe <jd@example.org>": ["/library", "File.php"]
  # or
  "John Doe <jd@example.org>":
    - "File.php"
    
# Add additional author metadata. It is used by some comparator handlers when outputting diff format.
# Author metadata of the config file is prioritized over extracted metadata from the files.

metadata:
  "John Doe <jd@example.org>":
    role:     "Translator"
    homepage: "http:/www.example.org"