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

NAME

GitLab::API::v4::Config - Load configuration from a file, environment, and/or CLI options.

SYNOPSIS

    use GitLab::API::v4;
    use GitLab::API::v4::Config;
    
    my $config = GitLab::API::v4::Config->new();
    my $api = GitLab::API::v4->new( $config->args() );

DESCRIPTION

This module is used by gitlab-api-v4 to load configuration.

If you are using GitLab::API::v4 directly then this module will not be automatically used, but you are welcome to explicitly use it as shown in the "SYNOPSIS".

ARGUMENTS

file

The file to load configuration from. The file should hold valid JSON.

By default this will be set to .gitlab-api-v4-config in the current user's home directory.

This can be overridden with the GITLAB_API_V4_CONFIG_FILE environment variable or the --config-file=... command line argument.

ATTRIBUTES

opt_args

Returns a hashref of arguments derived from command line options.

Supported options are:

    --config_file=...
    --url=...
    --private-token=...
    --access-token=...
    --retries=...

Note that the options are read from, and removed from, @ARGV. Due to this the arguments are saved internally and re-used for all instances of this class so that there are no weird race conditions.

env_args

Returns a hashref of arguments derived from environment variables.

Supported environment variables are:

    GITLAB_API_V4_CONFIG_FILE
    GITLAB_API_V4_URL
    GITLAB_API_V4_PRIVATE_TOKEN
    GITLAB_API_V4_ACCESS_TOKEN
    GITLAB_API_V4_RETRIES

file_args

Returns a hashref of arguments gotten by decoding the JSON in the "file".

Note that the file is re-read every time you call this attribute (or the "args" attribute).

args

Returns a final, combined, hashref of arguments containing everything in "opt_args", "env_args", and "file_args". If there are any duplicate arguments then "opt_args" has highest precedence, "env_args" is next, and at the bottom is "file_args".

METHODS

configure

When called this method interactively prompts the user for argument values and then encodes them as JSON and stores them in "file". The file will be chmod'ed 0600 so that only the current user may read or write to the file.

AUTHORS

See "AUTHOR" in GitLab::API::v4 and "CONTRIBUTORS" in GitLab::API::v4.

LICENSE

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