The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

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

VERSION

version 0.01016

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 stringof 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.