NAME Bintray::API - Perl interface to the Bintray API SYNOPSIS # Initialize my $btray = Bintray::API->new( username => 'user', apikey => 'XXXXXXXXXXXXXXXXX', ); # Repository my $repo = $btray->subject()->repo( name => 'myrepo' ); foreach my $pkg ( $repo->packages() ) { print $pkg->{name} . "\n"; } # Packages and Versions my $package = $repo->package( name => 'mypackage' ); my $version = $package->version( name => '1.0' ); my $version_info = $version->info(); # Upload and Publish a file $version->upload( file => '/path/to/local/file', repo_path => 'myfiles/file', publish => 1, ); DESCRIPTION Bintray is a social platform for community-based software distribution. This module provides a Perl wrapper to the Bintray REST API. API METHODS This distribution is structured similar to Bintray Entities. SUBJECT A _subject_ is either a user or an organization # Initialize a subject my $subject = $btray->subject( # Provide an optional _name_ # - defaults to the current username name => 'my_company', ); # Subject methods my $info = $subject->info(); # Get info my $followers = $subject->followers(); # Get followers my $hooks = $subject->get_webhooks(); # Get Registered hooks my $repos = $subject->repos(); # Get user repositories my @repo_names = $subject->repo_names(); # Shortcut to list repo names REPOSITORY # Initialize a Repo my $repo = $subject->repo( name => 'myrepo' ); # Repository methods my $info = $repo->info(); # Repo information my $packages = $repo->packages(); # Get packages my @package_names = $repo->package_names(); # List of packages my $hooks = $repo->get_webhooks(); # Hooks listing ## Repository Operations # Create Package $repo->create_package( { name => 'MyPackage', desc => 'foo bar', labels => [qw(foo)], licenses => [ 'GPL-3.0', 'Artistic-License-2.0', ], } ); # Delete Package $repo->delete_package( name => 'MyPackage' ); PACKAGE ## Initialize Package my $package = $repo->package( name => 'MyPackage' ); my $info = $package->info(); ## Package operations # Update $package->update( details => {...} ); # Versions $package->create_version( details => { name => '1.0', release_notes => 'foobar', release_url => 'http://foo/bar' } ); $package->delete_version( name => '1.0' ); # Attributes $package->get_attributes(); $package->set_attributes( attributes => [ { name => 'foo', values => [qw(bar baz)], type => 'string', }, ], ); $package->update_attributes( attributes => [...] ); # Hooks $package->set_webhook( url => 'http://....' ); $package->delete_webhook(); VERSIONS ## Initialize Versions my $version = $package->version( name => '1.0' ); my $info = $version->info(); # Info ## Version Operations # Upload $version->upload( file => '/path/to/local/file', repo_path => 'myfiles/file', # Optional params publish => 0, # Publish on upload explode => 0, # Upload an exploded archive ); # Update details $version->update( details => { desc => 'version description', labels => [qw(foo bar)], }, ); # Sign $version->sign( passphrase => '...' ); # Publish $version->publish(); # Discard $version->discard(); # Attributes my $attributes = $version->get_aatributes(); $version->set_attributes( attributes => [...] ); $version->update_attributes( attributes => [...] ); SEARCH ## Init Search object my $search = $btray->search(); # Search Repos @results = $search->repos( name => 'myrepo', # // either name or desc is required desc => 'maven repo', ); # Search Packages @results = $search->packages( name => '...', desc => '...', repo => '...', subject => '...', # // User or Org ); # Search files @results = $search->files( name => '...', sha1 => '...', repo => '...', ); # Search Users or Organizations @results = $search->users( name => '...' ); BUGS AND LIMITATIONS Please report any bugs or feature requests at https://github.com/mithun/perl-bintray-api/issues AUTHOR Mithun Ayachit mithun@cpan.org LICENSE AND COPYRIGHT Copyright (c) 2014, Mithun Ayachit. All rights reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.