Config::Identity(3) Load (and optionally decrypt via GnuPG) user/pass identity information

VERSION

version 0.0018

SYNOPSIS

PAUSE:


use Config::Identity::PAUSE;
# 1. Find either $HOME/.pause-identity or $HOME/.pause
# 2. Decrypt the found file (if necessary), read, and parse it
# 3. Throw an exception unless %identity has 'user' and 'password' defined
my %identity = Config::Identity::PAUSE->load;
print "user: $identity{user} password: $identity{password}\n";

GitHub API:

    use Config::Identity::GitHub;
    # 1. Find either $HOME/.github-identity or $HOME/.github
    # 2. Decrypt the found file (if necessary) read, and parse it
    # 3. Throw an exception unless %identity has 'login' and 'token' defined
    my %identity = Config::Identity::PAUSE->load;
    print "login: $identity{login} token: $identity{token}\n";

DESCRIPTION

Config::Identity is a tool for loadiing (and optionally decrypting via GnuPG) user/pass identity information

For GitHub API access, an identity is a "login"/"token" pair

For PAUSE access, an identity is a "user"/"password" pair

USAGE

%identity = Config::Identity->load_best( <stub> )

First attempt to load an identity from $HOME/.<stub>-identity

If that file does not exist, then attempt to load an identity from $HOME/.<stub>

The file may be optionally GnuPG encrypted

%identity will be populated like so:

    <key> <value>

For example:

    username alice
    password hunter2

Using a custom gpg or passing custom arguments

You can specify a custom "gpg" executable by setting the CI_GPG environment variable

    export CI_GPG="$HOME/bin/gpg"

You can pass custom arguments by setting the CI_GPG_ARGUMENTS environment variable

    export CI_GPG_ARGUMENTS="--no-secmem-warning"

Encrypting your identity information with GnuPG

If you've never used GnuPG before, first initialize it:

    # Follow the prompts to create a new key for yourself
    gpg --gen-key

To encrypt your GitHub identity with GnuPG using the above key:

    # Follow the prompts, using the above key as the "recipient"
    # Use ^D once you've finished typing out your authentication information
    gpg -ea > $HOME/.github

Caching your GnuPG secret key via gpg-agent

Put the following in your .*rc

    if which gpg-agent 1>/dev/null
    then
        if test -f $HOME/.gpg-agent-info && \
            kill -0 `cut -d: -f 2 $HOME/.gpg-agent-info` 2>/dev/null
        then
            . "${HOME}/.gpg-agent-info"
            export GPG_AGENT_INFO
        else
            eval `gpg-agent --daemon --write-env-file "${HOME}/.gpg-agent-info"`
        fi
    else
    fi

PAUSE identity format

    user <user>
    password <password>

"username" can also be used as alias for "user"

GitHub identity format

    login <login>
    token <token>

AUTHOR

Robert Krimen <[email protected]>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Robert Krimen.

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