The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

App::GitHooks::StagedChanged - Staged changes in git.

VERSION

Version 1.9.0

METHODS

new()

Instantiate a new App::GitHooks::StagedChanges object.

        my $staged_changes = App::GitHooks::StagedChanges->new(
                app => $app,
        );

Arguments:

  • app (mandatory)

    An App::GitHook instance.

get_app()

Return the parent App::GitHooks object.

        my $app = $staged_changes->get_app();

verify()

Verify the changes that are being committed.

This method returns an array composed of:

  • A boolean to indicate whether the checks passed or failed.

  • A boolean to indicate whether any warnings were displayed.

        ( $allow_commit, $has_warnings ) = $staged_changes->verify();

check_changed_files()

Verify that the files changed pass various rules.

This method returns an array composed of:

  • A boolean to indicate whether the files passed the checks.

  • A boolean to indicate whether any warnings were displayed.

        my ( $all_files_pass, $has_warnings ) = check_changed_files();

check_file()

Verify that that a given file passes all the verification rules.

This method returns an array composed of:

  • A boolean to indicate whether the file passed all the checks.

  • A boolean to indicate whether any warnings were displayed.

        my ( $file_passes, $has_warnings ) = check_file(
                count      => $count,
                file       => $file,
                git_action => $git_action,
                total      => $total,
        );

Arguments:

  • count (mandatory)

    The number of the file in the list of files to check.

  • file (mandatory)

    The path of the file to check.

  • git_action (mandatory)

    The action performed by git on the file (add, delete, etc).

  • total (mandatory)

    The total number of files to check as part of this git hooks instance.

run_parallelized_checks()

Run in parallel the checks for a given file.

        run_parallelized_checks(
                tests     => $tests,
                file       => $file,
                git_action => $git_action,
        );

Arguments:

  • tests

    An arrayref of tests to run.

  • file

    The path of the file being checked.

  • git_action

    The type of action recorded by git on the file (deletion, addition, etc).

format_check_output()

Format the output of a check against a file into a printable string.

        format_check_output(
                app  => $app,
                data =>
                {
                        name          => $name,
                        return_value  => $return_value,
                        error_message => $error_message,
                }
        );

analyze_changes()

Analyze the state of the repository to detect if the changes correspond to a merge or revert operation.

        $staged_changes->analyze_changes();

is_revert()

Return true if the changes correspond to a git revert operation, false otherwise.

        my $is_revert = $staged_changes->is_revert();

is_merge()

Return true if the changes correspond to a git revert operation, false otherwise.

        my $is_merge = $staged_changes->is_merge();

BUGS

Please report any bugs or feature requests through the web interface at https://github.com/guillaumeaubert/App-GitHooks/issues/new. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

        perldoc App::GitHooks::StagedChanges

You can also look for information at:

AUTHOR

Guillaume Aubert, <aubertg at cpan.org>.

COPYRIGHT & LICENSE

Copyright 2013-2017 Guillaume Aubert.

This code is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE file for more details.