DOKK / manpages / debian 12 / libpithub-perl / Pithub::GitData::Tags.3pm.en
Pithub::GitData::Tags(3pm) User Contributed Perl Documentation Pithub::GitData::Tags(3pm)

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

version 0.01040

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

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 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"
        }
    }

Johannes Plunien <plu@cpan.org>

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.

2022-10-04 perl v5.34.0