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.