---
name: "Pithub::Repos::Downloads"
section: "3pm"
platform: "linux"
package: "libpithub-perl"
version: "0.01043-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Pithub::Repos::Downloads"
---

# Pithub::Repos::Downloads(3pm)

Github v3 Repo Downloads API

## NAME

Pithub::Repos::Downloads - Github v3 Repo Downloads API

## VERSION

version 0.01043

## METHODS

### create

- •

  Creating a new download is a two step process. You must first create a new download resource using this call here. After that you take the return Pithub::Result object and call "upload" to upload the file to Amazon S3.

  ```
      POST /repos/:user/:repo/downloads
  ```

  Examples:

  ```
      my $d = Pithub::Repos::Downloads->new;
      my $result = $d->create(
          user => 'plu',
          repo => 'Pithub',
          data => {
              name         => 'new_file.jpg',
              size         => 114034,
              description  => 'Latest release',
              content_type => 'text/plain',
          },
      );
      $d->upload(
          result => $result,
          file   => '/path/to/file',
      );
  ```

### delete

- •

  Delete a download

  ```
      DELETE /repos/:user/:repo/downloads/:id
  ```

  Examples:

  ```
      my $d = Pithub::Repos::Downloads->new;
      my $result = $d->delete(
          user        => 'plu',
          repo        => 'Pithub',
          download_id => 1,
      );
  ```

### get

- •

  Get a single download

  ```
      GET /repos/:user/:repo/downloads/:id
  ```

  Examples:

  ```
      my $d = Pithub::Repos::Downloads->new;
      my $result = $d->get(
          user        => 'plu',
          repo        => 'Pithub',
          download_id => 1,
      );
  ```

### list

- •

  List downloads for a repository

  ```
      GET /repos/:user/:repo/downloads
  ```

  Examples:

  ```
      my $d = Pithub::Repos::Downloads->new;
      my $result = $d->list(
          user => 'plu',
          repo => 'Pithub',
      );
  ```

### upload

- •

  Upload a file to Amazon S3. See also: "create". This will use the `"ua"` attribute's `"request"` method to do a POST request to Amazon S3. It requires the Pithub::Result object of a "create" call to get the necessary data for S3 API call. This method returns an HTTP::Response object directly, not a Pithub::Result object (like all other methods do)! If the upload was successful the status will be `201`.

## NOTE

Github says: The Downloads API (described below) was deprecated on December 11, 2012. It will be removed at a future date. We recommend using Pithub::Repos::Releases instead.

## AUTHOR

Johannes Plunien \<plu@cpan.org\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by Johannes Plunien.

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