Net::Travis::API - Low Level Plumbing for's api


version 0.002001


This code is highly in-development, and is feature incomplete, and does not presently represent all API functions available.

At present, most the functionality is lower-level plumbing functions which should eventually give way to a higher level API.

But code endeavors to approach better coverage eventually, and hopefully serve as a better documentation than Travis's own API docs, which were so lackluster I had to resort to sniffing their websites traffic from my browser to understand what was going on.


Presently this module only covers the overhead of getting authentication working with travis, so that you can do arbitrary requests and get useful responses.

And this was the #1 challenge from the Travis API docs, because this process is poorly documented, and fettered with documentation about things documented not to be implemented yet.

So, at present, you have several options:

1. Work with an unauthenticated User Agent.
    use Net::Travis::API::UA;

    my $ua = Net::Travis::API::UA->new();

    $ua->get('/repos/someuser'); # Public Endpoint
2. Use the GitHub Authentication Module to get an authenticated agent.
    use Net::Travis::API::Auth::GitHub;

    my $ua = Net::Travis::API::Auth::GitHub->get_authorised_ua_for( $token );

    $ua->get('/users'); # private endpoint
3. Get an authorization token some other way.

And avoid incurring an authorization request overhead.

    use Net::Travis::API::UA;

    my $ua = Net::Travis::API::UA->new(
        authtokens => [ $token ]

    $ua->get('/users'); # private endpoint


Kent Fredric <>


This software is copyright (c) 2017 by Kent Fredric <>.

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