As the Aptly API is well documented, you can implement your own client using curl/python/ruby/go/whatever or just use this one written in Ruby.
Installation
gem install aptly_cli
Simply as that. If you want to read further and use your API with basic authentication, you can check if my pull request has been accepted or just build the gem on your own.
Basic Authentication
UPDATE 2016-03-16: PR accepted, just pull the official gem
git clone -b basic-auth https://github.com/morph027/aptly_cli.git
cd aptly_git
gem build aptly_cli.gemspec
gem install commander httmultiparty
gem install –local aptly_cli-0.2.1.gem
Configuration
Further info can be found on the Github page of the project. Just in case, if you’re using basic auth and if the PR isn’t merged yet, just add this to the config:
:username: api-user
:password: api-password
Usage
At the moment, the CLI tool is missing to publish a repo using a prefix (which is something you want if you like to host different repos). So we create and publish the repo directly on the aptly host and use the publish_update function of the CLI tool later to update after adding or removing packages.
aptly repo create test
aptly publish repo -distribution="trusty" -architectures=""amd64 test :test
Here’s an example showing how to upload a file to this already published repo:
wget http://download.morph027.de/apt-find-proxy_1.0.1-2_amd64.deb
aptly-cli file_upload --upload apt-find-proxy_1.0.1-2_amd64.deb --directory /some-upload-dir
some-upload-dir/apt-find-proxy\_1.0.1-2\_amd64.deb
aptly-cli repo_upload --name test --dir /some-upload-dir --file apt-find-proxy_1.0.1-2_amd64.deb
{"FailedFiles"=>[], "Report"=>{"Warnings"=>[], "Added"=>["apt-find-proxy_1.0.1-2_amd64 added"], "Removed"=>[]}}
aptly-cli publish_update --prefix test --distribution trusty
{"Architectures"=>["amd64"], "Distribution"=>"trusty", "Label"=>"", "Origin"=>"", "Prefix"=>"test", "SourceKind"=>"local", "Sources"=>[{"Component"=>"main", "Name"=>"test"}], "Storage"=>""}