App-gqmt

 view release on metacpan or  search on metacpan

etc/gqmt.d/github-query-all-versions.tt  view on Meta::CPAN

query { repository(name: "[% repo %]", owner: "[% user %]") {
  packages(first: [% pkg_num %] names: ["[% pkg_name %]"]) {
      nodes {
        id
        name
        versions(last: [% vers_num %][% cursor %]) {
          nodes {
            id
            version
            files(first:1, orderBy: {direction: DESC, field: CREATED_AT}) {
              totalCount
              nodes {
                updatedAt
              }
            }
          }

gqmt  view on Meta::CPAN

repo     : repository name

user     : user name

pkg_num  : first num element of packages list

pkg_name : package name

vers_num : first num elements from the version files

cursor   : pagination object

=back

=item B<-T | --token> I<STRING>

personal access token to access the GitHub API

=item B<-U | --url> I<STRING>

GraphQL API endpoint, default is I<https://api.github.com/graphql>

gqmt  view on Meta::CPAN


See examples in distribution directory I<etc>

Example of query template:

    query { repository(name: "[% repo %]", owner: "[% user %]") {
      packages(first: [% pkg_num %] names: ["[% pkg_name %]"]) {
          nodes {
            id
            name
            versions(last: [% vers_num %][% cursor %]) {
              nodes {
                id
                version
                files(first:1, orderBy: {direction: DESC, field: CREATED_AT}) {
                  totalCount
                  nodes {
                    updatedAt
                  }
                }
              }

lib/App/gqmt.pm  view on Meta::CPAN

			    RELATIVE => 1 ) || die Template->error(), "\n";

    $tt->process(
		 $self->option('query_template'),
		 {
		  repo     => $self->option('repo'),
		  user     => $self->option('user'),
		  pkg_num  => $self->option('rows_number'),
		  pkg_name => $self->option('package'),
		  vers_num => $self->option('rows_number'),
		  cursor   => $arg->{inf}->{hasPreviousPage} == 1 ? sprintf(', before: "%s"', $arg->{inf}->{startCursor}) : ''
		 },
		 \$tt_out
		);
    $query = { query => $tt_out };

  } else {
    $query = $self->
      query_default({ inf => $arg->{inf}->{hasPreviousPage} == 1 ? sprintf(', before: "%s"', $arg->{inf}->{startCursor}) : ''});
  }



( run in 0.240 second using v1.01-cache-2.11-cpan-4d50c553e7e )