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".

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

get_options

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.

SUPPORT

See "SUPPORT" in GitLab::API::v4.

AUTHORS

See "AUTHORS" in GitLab::API::v4.

LICENSE

See "LICENSE" in GitLab::API::v4.