NAME

Pithub::GitData::Tags - Github v3 Git Data Tags API

VERSION

version 0.01041

DESCRIPTION

This tags api only deals with tag objects - so only annotated tags, not lightweight tags.

METHODS

create

  • Create a Tag

    Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then create the refs/tags/[tag] reference. If you want to create a lightweight tag, you simply have to create the reference - this call would be unnecessary.

    POST /repos/:user/:repo/git/tags

    Parameters:

    • user: mandatory string

    • repo: mandatory string

    • data: mandatory hashref, having following keys:

      • tag: mandatory string of the tag

      • message: mandatory string of the tag message

      • object: mandatory string of the SHA of the git object this is tagging

      • type: mandatory string of the type of the object we're tagging. Normally this is a commit but it can also be a tree or a blob.

      • tagger: mandatory hashref, having following keys:

        • name: string of the name of the author of the tag

        • email: string of the email of the author of the tag

        • date: timestamp of when this commit was tagged

    Examples:

    my $t = Pithub::GitData::Tags->new;
    my $result = $t->create(
        user => 'plu',
        repo => 'Pithub',
        data => {
            tagger => {
                date  => '2011-06-17T14:53:35-07:00',
                email => 'schacon@gmail.com',
                name  => 'Scott Chacon',
            },
            message => 'initial version',
            object  => 'c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c',
            tag     => 'v0.0.1',
            type    => 'commit',
        }
    );

    Response: Status: 201 Created

    {
        "tag": "v0.0.1",
        "sha": "940bd336248efae0f9ee5bc7b2d5c985887b16ac",
        "url": "https://api.github.com/repos/octocat/Hello-World/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac",
        "message": "initial version\n",
        "tagger": {
            "name": "Scott Chacon",
            "email": "schacon@gmail.com",
            "date": "2011-06-17T14:53:35-07:00"
        },
        "object": {
            "type": "commit",
            "sha": "c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c",
            "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c"
        }
    }

get

  • Get a Tag

    GET /repos/:user/:repo/git/tags/:sha

    Parameters:

    • user: mandatory string

    • repo: mandatory string

    • sha: mandatory string

    Examples:

    my $t = Pithub::GitData::Tags->new;
    my $result = $t->get(
        user => 'plu',
        repo => 'Pithub',
        sha  => 'df21b2660fb6',
    );

    Response: Status: 200 OK

    {
        "tag": "v0.0.1",
        "sha": "940bd336248efae0f9ee5bc7b2d5c985887b16ac",
        "url": "https://api.github.com/repos/octocat/Hello-World/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac",
        "message": "initial version\n",
        "tagger": {
            "name": "Scott Chacon",
            "email": "schacon@gmail.com",
            "date": "2011-06-17T14:53:35-07:00"
        },
        "object": {
            "type": "commit",
            "sha": "c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c",
            "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c"
        }
    }

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.