---
name: "Net::GitHub::V2::Repositories"
section: "3pm"
platform: "linux"
package: "libnet-github-perl"
version: "0.46-1"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/Net::GitHub::V2::Repositories"
---

# Net::GitHub::V2::Repositories(3pm)

GitHub Repositories API

## NAME

Net::GitHub::V2::Repositories - GitHub Repositories API

## SYNOPSIS

```
    use Net::GitHub::V2::Repositories;
    my $repos = Net::GitHub::V2::Repositories->new(
        owner => 'fayland', repo => 'perl-net-github'
    );
```

## DESCRIPTION

\<http://develop.github.com/p/repo.html\>

For those **(authentication required)** below, you must set login and token (in \<https://github.com/account\>

```
    my $repos = Net::GitHub::V2::Repositories->new(
        owner => 'fayland', repo => 'perl-net-github',
        login => 'fayland', token => '54b5197d7f92f52abc5c7149b313cf51', # faked
    );
```

## METHODS

- search

  ```
      my $results = $repos->search('net-github');
  ```

  Search Repositories

- show

  ```
      my $repos_in_detail = $repos->show(); # show the owner+repo in ->new
      my $repos_in_detail = $repos->show('fayland', 'foorum'); # another
  ```

  To look at more in-depth information for a repository

- list

  ```
      my $repositories = $repos->list(); # show the owner in ->new
      my $repositories = $repos->list('nothingmuch');
  ```

  list out all the repositories for a user

- watch

  - unwatch

  ```
      $repos->watch();
      $repos->unwatch();
  ```

  watch and unwatch repositories (authentication required)

- fork

  ```
      $repos->fork();
  ```

  fork a repository (authentication required)

- create

  ```
      my $rep = $repos->create( $name, $desc, $homepage, $is_public );
  ```

  create a new repository (authentication required). `$name` are required. like 'perl-net-github'

- delete

  ```
      $repos->delete(); # just return delete_token
      $repos->delete( { confirm => 1 } ); # delete the repository
  ```

  delete a repository (authentication required)

- update

  ```
      $organization->update(
          description => 'Linux kernel rewritten in Visual Basic',
          has_wiki => 0,
          has_issues => 1,
          has_downloads => 0);
  ```

  change repository metadata.

- set\_private

  - set\_public

  ```
      $repos->set_private();
      $repos->set_public();
  ```

  set a public repository private or make a private repo public (authentication required)

- deploy\_keys

  - add\_deploy\_key

  - remove\_deploy\_key

  ```
      $repos->add_deploy_key( 'title', $key );
      my $pub_keys = $repos->deploy_keys();
      $repos->remove_deploy_key( $pub_keys->[0]->{id} );
  ```

  list, add and remove your deploy keys (authentication required)

- collaborators

  - add\_collaborator

  - remove\_collaborator

  ```
      my $collaborators = $repos->collaborators();
      $repos->add_collaborator( 'steven' );
      $repos->remove_collaborator( 'steven' );
  ```

  list, add and remove the collaborators on your project (authentication required)

- network

  ```
      my $network = $repos->network();
  ```

- languages

  List the languages used in a particular repository. Values are in bytes calculated.

  ```
      my $languages = $repos->languages();
  ```

- tags

  ```
      my $tags = $repos->tags();
  ```

- branches

  ```
      my $branches = $repos->branches();
  ```

## AUTHOR

Fayland Lam, `"<fayland at gmail.com>"`

## COPYRIGHT & LICENSE

Copyright 2009 Fayland Lam, all rights reserved.

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