API-CLI

 view release on metacpan or  search on metacpan

LICENSE  view on Meta::CPAN

 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The license agreements of most software companies try to keep users
at the mercy of those companies.  By contrast, our General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users.  The
General Public License applies to the Free Software Foundation's
software and to any other program whose authors commit to using it.
You can use it for your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Specifically, the General Public License is designed to make
sure that you have the freedom to give away or sell copies of free
software, that you receive source code or can get it if you want it,
that you can change the software or use pieces of it in new free
programs; and that you know you can do these things.

  To protect your rights, we need to make restrictions that forbid

LICENSE  view on Meta::CPAN


  For example, if you distribute copies of a such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the
source code.  And you must tell them their rights.

  We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

  Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software.  If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

  The precise terms and conditions for copying, distribution and
modification follow.

                    GNU GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License Agreement applies to any program or other work which
contains a notice placed by the copyright holder saying it may be
distributed under the terms of this General Public License.  The

LICENSE  view on Meta::CPAN


Each version is given a distinguishing version number.  If the Program
specifies a version number of the license which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation.  If the Program does not specify a version number of
the license, you may choose any version ever published by the Free Software
Foundation.

  8. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission.  For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this.  Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

                            NO WARRANTY

  9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN

LICENSE  view on Meta::CPAN

possible use to humanity, the best way to achieve this is to make it
free software which everyone can redistribute and change under these
terms.

  To do so, attach the following notices to the program.  It is safest to
attach them to the start of each source file to most effectively convey
the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) 19yy  <name of author>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 1, or (at your option)
    any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

LICENSE  view on Meta::CPAN

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA  02110-1301 USA


Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

    Gnomovision version 69, Copyright (C) 19xx name of author
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the
appropriate parts of the General Public License.  Of course, the
commands you use may be called something other than `show w' and `show
c'; they could even be mouse-clicks or menu items--whatever suits your
program.

META.yml  view on Meta::CPAN

---
abstract: 'Generic Framework for REST API Command Line Clients'
author:
  - 'Tina Müller <cpan2@tinita.de>'
build_requires:
  File::Spec: '0'
  IO::Handle: '0'
  IPC::Open3: '0'
  Test::More: '0'
  blib: '1.01'
configure_requires:
  ExtUtils::MakeMaker: '0'
  File::ShareDir::Install: '0.06'

dist.ini  view on Meta::CPAN

name    = API-CLI
author  = Tina Müller <cpan2@tinita.de>
license = Perl_5
copyright_holder = Tina Müller
copyright_year   = 2016

version = 0.001

[@Filter]
-bundle = @Basic
-remove = GatherDir
option = for_basic

examples/bash/githubcl.bash  view on Meta::CPAN

        esac
      ;;
      GET)
        FLAGS+=()
        OPTIONS+=()
        __githubcl_handle_options_flags
        case $INDEX in

        1)
            __comp_current_options || return
            __githubcl_dynamic_comp 'commands' '/emojis'$'\t''Lists all the emojis available to use on GitHub....'$'\n''/events'$'\t''List public events.'$'\n''/feeds'$'\t''List Feeds.'$'\n''/gists'$'\t''List the authenticated user'"'"'s gists or if ...

        ;;
        *)
        # subcmds
        case ${MYWORDS[1]} in
          /emojis)
            FLAGS+=()
            OPTIONS+=()
            __githubcl_handle_options_flags
            __comp_current_options true || return # no subcmds, no params/opts

examples/bash/githubcl.bash  view on Meta::CPAN

                  --data-file)
                  ;;

                esac
                ;;
            esac
          ;;
          /issues)
            FLAGS+=()
            OPTIONS+=('--q-filter' 'Issues assigned to you / created by you / mentioning you / you'"'"'re
subscribed to updates for / All issues the authenticated user can see
' '--q-state' '' '--q-labels' 'String list of comma separated Label names. Example - bug,ui,@high.' '--q-sort' '' '--q-direction' '' '--q-since' 'Optional string of a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
Only issues updated at or after this time are returned.
')
            __githubcl_handle_options_flags
              case $INDEX in
              *)
                __comp_current_options true || return # after parameters
                case ${MYWORDS[$INDEX-1]} in
                  --data-file)
                  ;;

examples/bash/githubcl.bash  view on Meta::CPAN

                  --data-file)
                  ;;

                esac
                ;;
            esac
          ;;
          /orgs/:org/issues)
            FLAGS+=()
            OPTIONS+=('--q-filter' 'Issues assigned to you / created by you / mentioning you / you'"'"'re
subscribed to updates for / All issues the authenticated user can see
' '--q-state' '' '--q-labels' 'String list of comma separated Label names. Example - bug,ui,@high.' '--q-sort' '' '--q-direction' '' '--q-since' 'Optional string of a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
Only issues updated at or after this time are returned.
')
            __githubcl_handle_options_flags
              case $INDEX in
              2)
                  __comp_current_options || return
              ;;
              *)
                __comp_current_options true || return # after parameters

examples/bash/githubcl.bash  view on Meta::CPAN

                  ;;

                esac
                ;;
            esac
          ;;
          /repos/:owner/:repo/commits)
            FLAGS+=()
            OPTIONS+=('--q-since' 'The time should be passed in as UTC in the ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
Example: "2012-10-09T23:39:01Z".
' '--q-sha' 'Sha or branch to start listing commits from.' '--q-path' 'Only commits containing this file path will be returned.' '--q-author' 'GitHub login, name, or email by which to filter by commit author.' '--q-until' 'ISO 8601 Date - Only commit...
            __githubcl_handle_options_flags
              case $INDEX in
              2)
                  __comp_current_options || return
              ;;
              3)
                  __comp_current_options || return
              ;;
              *)
                __comp_current_options true || return # after parameters
                case ${MYWORDS[$INDEX-1]} in
                  --data-file)
                  ;;
                  --q-since)
                  ;;
                  --q-sha)
                  ;;
                  --q-path)
                  ;;
                  --q-author)
                  ;;
                  --q-until)
                  ;;

                esac
                ;;
            esac
          ;;
          /repos/:owner/:repo/commits/:ref/status)
            FLAGS+=()

examples/bash/githubcl.bash  view on Meta::CPAN

                  --data-file)
                  ;;

                esac
                ;;
            esac
          ;;
          /repos/:owner/:repo/issues)
            FLAGS+=()
            OPTIONS+=('--q-filter' 'Issues assigned to you / created by you / mentioning you / you'"'"'re
subscribed to updates for / All issues the authenticated user can see
' '--q-state' '' '--q-labels' 'String list of comma separated Label names. Example - bug,ui,@high.' '--q-sort' '' '--q-direction' '' '--q-since' 'Optional string of a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
Only issues updated at or after this time are returned.
')
            __githubcl_handle_options_flags
              case $INDEX in
              2)
                  __comp_current_options || return
              ;;
              3)
                  __comp_current_options || return

examples/bash/githubcl.bash  view on Meta::CPAN

                  --data-file)
                  ;;

                esac
                ;;
            esac
          ;;
          /user/issues)
            FLAGS+=()
            OPTIONS+=('--q-filter' 'Issues assigned to you / created by you / mentioning you / you'"'"'re
subscribed to updates for / All issues the authenticated user can see
' '--q-state' '' '--q-labels' 'String list of comma separated Label names. Example - bug,ui,@high.' '--q-sort' '' '--q-direction' '' '--q-since' 'Optional string of a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
Only issues updated at or after this time are returned.
')
            __githubcl_handle_options_flags
              case $INDEX in
              *)
                __comp_current_options true || return # after parameters
                case ${MYWORDS[$INDEX-1]} in
                  --data-file)
                  ;;

examples/bash/githubcl.bash  view on Meta::CPAN

        esac
      ;;
      PATCH)
        FLAGS+=()
        OPTIONS+=()
        __githubcl_handle_options_flags
        case $INDEX in

        1)
            __comp_current_options || return
            __githubcl_dynamic_comp 'commands' '/gists/:id'$'\t''Edit a gist.'$'\n''/gists/:id/comments/:commentId'$'\t''Edit a comment.'$'\n''/notifications/threads/:id'$'\t''Mark a thread as read'$'\n''/orgs/:org'$'\t''Edit an Organization.'$'\n''/...

        ;;
        *)
        # subcmds
        case ${MYWORDS[1]} in
          /gists/:id)
            FLAGS+=()
            OPTIONS+=()
            __githubcl_handle_options_flags
              case $INDEX in

examples/bash/githubcl.bash  view on Meta::CPAN

        esac
      ;;
      POST)
        FLAGS+=()
        OPTIONS+=()
        __githubcl_handle_options_flags
        case $INDEX in

        1)
            __comp_current_options || return
            __githubcl_dynamic_comp 'commands' '/gists'$'\t''Create a gist.'$'\n''/gists/:id/comments'$'\t''Create a commen'$'\n''/gists/:id/forks'$'\t''Fork a gist.'$'\n''/markdown'$'\t''Render an arbitrary Markdown document...'$'\n''/markdown/raw'$...

        ;;
        *)
        # subcmds
        case ${MYWORDS[1]} in
          /gists)
            FLAGS+=()
            OPTIONS+=()
            __githubcl_handle_options_flags
            __comp_current_options true || return # no subcmds, no params/opts

examples/bash/githubcl.bash  view on Meta::CPAN

        esac
      ;;
      PUT)
        FLAGS+=()
        OPTIONS+=()
        __githubcl_handle_options_flags
        case $INDEX in

        1)
            __comp_current_options || return
            __githubcl_dynamic_comp 'commands' '/gists/:id/star'$'\t''Star a gist.'$'\n''/notifications'$'\t''Mark as read.'$'\n''/notifications/threads/:id/subscription'$'\t''Set a Thread Subscription.'$'\n''/orgs/:org/public_members/:username'$'\t'...

        ;;
        *)
        # subcmds
        case ${MYWORDS[1]} in
          /gists/:id/star)
            FLAGS+=()
            OPTIONS+=()
            __githubcl_handle_options_flags
              case $INDEX in

examples/bash/metacpancl.bash  view on Meta::CPAN

    # subcmds
    case ${MYWORDS[0]} in
      GET)
        FLAGS+=()
        OPTIONS+=()
        __metacpancl_handle_options_flags
        case $INDEX in

        1)
            __comp_current_options || return
            __metacpancl_dynamic_comp 'commands' '/author/:author'$'\t''Author information'$'\n''/distribution/:distribution'$'\t''Distribution information not specific to a version...'$'\n''/module/:module'$'\t''Module information'$'\n''/pod/:module...

        ;;
        *)
        # subcmds
        case ${MYWORDS[1]} in
          /author/:author)
            FLAGS+=()
            OPTIONS+=()
            __metacpancl_handle_options_flags
              case $INDEX in
              2)
                  __comp_current_options || return
              ;;
              *)
                __comp_current_options true || return # after parameters
                case ${MYWORDS[$INDEX-1]} in

examples/bash/metacpancl.bash  view on Meta::CPAN

                  --data-file)
                  ;;
                  --q-content-type)
                    _metacpancl_compreply "'text/html'"$'\n'"'text/plain'"$'\n'"'text/x-pod'"$'\n'"'text/x-markdown'"
                  ;;

                esac
                ;;
            esac
          ;;
          /release/:author/:release)
            FLAGS+=()
            OPTIONS+=()
            __metacpancl_handle_options_flags
              case $INDEX in
              2)
                  __comp_current_options || return
              ;;
              3)
                  __comp_current_options || return
              ;;

examples/bash/metacpancl.bash  view on Meta::CPAN

                case ${MYWORDS[$INDEX-1]} in
                  --data-file)
                  ;;

                esac
                ;;
            esac
          ;;
          /release/_search)
            FLAGS+=()
            OPTIONS+=('--q-q' 'query ("author:ANDK AND status:latest")' '--q-fields' 'resultset fields' '--q-size' 'how many results')
            __metacpancl_handle_options_flags
              case $INDEX in
              *)
                __comp_current_options true || return # after parameters
                case ${MYWORDS[$INDEX-1]} in
                  --data-file)
                  ;;
                  --q-q)
                  ;;
                  --q-fields)

examples/bash/metacpancl.bash  view on Meta::CPAN

        # subcmds
        case ${MYWORDS[1]} in
          GET)
            FLAGS+=()
            OPTIONS+=()
            __metacpancl_handle_options_flags
            case $INDEX in

            2)
                __comp_current_options || return
                __metacpancl_dynamic_comp 'commands' '/author/:author'$'\n''/distribution/:distribution'$'\n''/module/:module'$'\n''/pod/:module'$'\n''/release/:author/:release'$'\n''/release/:distribution'$'\n''/release/_search'

            ;;
            *)
            # subcmds
            case ${MYWORDS[2]} in
              /author/:author)
                FLAGS+=()
                OPTIONS+=()
                __metacpancl_handle_options_flags
                __comp_current_options true || return # no subcmds, no params/opts
              ;;
              /distribution/:distribution)
                FLAGS+=()
                OPTIONS+=()
                __metacpancl_handle_options_flags
                __comp_current_options true || return # no subcmds, no params/opts

examples/bash/metacpancl.bash  view on Meta::CPAN

                OPTIONS+=()
                __metacpancl_handle_options_flags
                __comp_current_options true || return # no subcmds, no params/opts
              ;;
              /pod/:module)
                FLAGS+=()
                OPTIONS+=()
                __metacpancl_handle_options_flags
                __comp_current_options true || return # no subcmds, no params/opts
              ;;
              /release/:author/:release)
                FLAGS+=()
                OPTIONS+=()
                __metacpancl_handle_options_flags
                __comp_current_options true || return # no subcmds, no params/opts
              ;;
              /release/:distribution)
                FLAGS+=()
                OPTIONS+=()
                __metacpancl_handle_options_flags
                __comp_current_options true || return # no subcmds, no params/opts

examples/bin/metacpancl  view on Meta::CPAN

use 5.010;
use Data::Dumper;
use FindBin '$Bin';
use lib "$Bin/../../lib";

use API::CLI::App::Spec;

package API::CLI::MetaCPAN;
use base 'API::CLI';

sub add_auth {
}

package main;

my $appspec_file = "$Bin/../metacpancl-appspec.yaml";
my $spec = API::CLI::App::Spec->read($appspec_file);
my $runner = App::Spec::Run->new(
    spec => $spec,
    cmd => API::CLI::MetaCPAN->new(
        dir => "$ENV{HOME}/.githubcl",

examples/githubcl-appspec.yaml  view on Meta::CPAN

      properties:
        _links:
          properties:
            html:
              type: string
            self:
              type: string
          type: object
        commit:
          properties:
            author:
              properties:
                avatar_url:
                  type: string
                gravatar_id:
                  type: string
                id:
                  type: integer
                login:
                  type: string
                url:
                  type: string
              type: object
            commit:
              properties:
                author:
                  properties:
                    date:
                      description: 'ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ'
                      type: string
                    email:
                      type: string
                    name:
                      type: string
                committer:
                  properties:

examples/githubcl-appspec.yaml  view on Meta::CPAN

                type: integer
              login:
                type: string
              url:
                type: string
            type: object
        type: object
      type: array
    commit:
      properties:
        author:
          properties:
            avatar_url:
              type: string
            gravatar_id:
              type: string
            id:
              type: integer
            login:
              type: string
            url:
              type: string
          type: object
        commit:
          properties:
            author:
              properties:
                date:
                  description: 'ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ'
                  type: string
                email:
                  type: string
                name:
                  type: string
              type: object
            committer:

examples/githubcl-appspec.yaml  view on Meta::CPAN

              type: integer
            login:
              type: string
            url:
              type: string
          type: object
      type: object
    commits:
      items:
        properties:
          author:
            properties:
              avatar_url:
                type: string
              gravatar_id:
                type: string
              id:
                type: integer
              login:
                type: string
              url:
                type: string
            type: object
          commit:
            properties:
              author:
                properties:
                  date:
                    description: 'ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ'
                    type: string
                  email:
                    type: string
                  name:
                    type: string
                type: object
              committer:

examples/githubcl-appspec.yaml  view on Meta::CPAN

          url:
            type: string
        type: object
      type: array
    compare-commits:
      properties:
        ahead_by:
          type: integer
        base_commit:
          properties:
            author:
              properties:
                avatar_url:
                  type: string
                events_url:
                  type: string
                followers_url:
                  type: string
                following_url:
                  type: string
                gists_url:

examples/githubcl-appspec.yaml  view on Meta::CPAN

                  type: string
                subscriptions_url:
                  type: string
                type:
                  type: string
                url:
                  type: string
              type: object
            commit:
              properties:
                author:
                  properties:
                    date:
                      type: string
                    email:
                      type: string
                    name:
                      type: string
                  type: object
                committer:
                  properties:

examples/githubcl-appspec.yaml  view on Meta::CPAN

            sha:
              type: string
            url:
              type: string
          type: object
        behind_by:
          type: integer
        commits:
          items:
            properties:
              author:
                properties:
                  avatar_url:
                    type: string
                  events_url:
                    type: string
                  followers_url:
                    type: string
                  following_url:
                    type: string
                  gists_url:

examples/githubcl-appspec.yaml  view on Meta::CPAN

                    type: string
                  subscriptions_url:
                    type: string
                  type:
                    type: string
                  url:
                    type: string
                type: object
              commit:
                properties:
                  author:
                    properties:
                      date:
                        type: string
                      email:
                        type: string
                      name:
                        type: string
                    type: object
                  committer:
                    properties:

examples/githubcl-appspec.yaml  view on Meta::CPAN

            type: integer
          login:
            type: string
          url:
            type: string
        type: object
      type: array
    contributorsStats:
      items:
        properties:
          author:
            properties:
              avatar_url:
                type: string
              gravatar_id:
                type: string
              id:
                type: integer
              login:
                type: string
              url:
                type: string
            type: object
          total:
            description: The Total number of commits authored by the contributor.
            type: integer
          weeks:
            items:
              properties:
                a:
                  description: Number of additions.
                  type: integer
                c:
                  description: Number of commits.
                  type: integer

examples/githubcl-appspec.yaml  view on Meta::CPAN

          type: string
        size:
          type: integer
        url:
          type: string
      type: object
    createFile:
      properties:
        commit:
          properties:
            author:
              properties:
                date:
                  type: string
                email:
                  type: string
                name:
                  type: string
              type: object
            committer:
              properties:

examples/githubcl-appspec.yaml  view on Meta::CPAN

          type: object
        content:
          type: string
        message:
          type: string
      type: object
    deleteFile:
      properties:
        commit:
          properties:
            author:
              properties:
                date:
                  type: string
                email:
                  type: string
                name:
                  type: string
              type: object
            committer:
              properties:

examples/githubcl-appspec.yaml  view on Meta::CPAN

                type: integer
              login:
                type: string
              url:
                type: string
            type: object
        type: object
      type: array
    gitCommit:
      properties:
        author:
          properties:
            date:
              type: string
            email:
              type: string
            name:
              type: string
          type: object
        message:
          type: string

examples/githubcl-appspec.yaml  view on Meta::CPAN

          type: string
      type: object
    mergesConflict:
      properties:
        message:
          description: Error message
          type: string
      type: object
    mergesSuccessful:
      properties:
        author:
          properties:
            avatar_url:
              type: string
            events_url:
              type: string
            followers_url:
              type: string
            following_url:
              type: string
            gists_url:

examples/githubcl-appspec.yaml  view on Meta::CPAN

              type: string
            type:
              type: string
            url:
              type: string
          type: object
        comments_url:
          type: string
        commit:
          properties:
            author:
              properties:
                date:
                  type: string
                email:
                  type: string
                name:
                  type: string
              type: object
            comment_count:
              type: integer

examples/githubcl-appspec.yaml  view on Meta::CPAN

                    type: string
                  url:
                    type: string
                type: object
              url:
                type: string
            type: object
          type: array
        assets_url:
          type: string
        author:
          properties:
            avatar_url:
              type: string
            events_url:
              type: string
            followers_url:
              type: string
            following_url:
              type: string
            gists_url:

examples/githubcl-appspec.yaml  view on Meta::CPAN

                      type: string
                    url:
                      type: string
                  type: object
                url:
                  type: string
              type: object
            type: array
          assets_url:
            type: string
          author:
            properties:
              avatar_url:
                type: string
              events_url:
                type: string
              followers_url:
                type: string
              following_url:
                type: string
              gists_url:

examples/githubcl-appspec.yaml  view on Meta::CPAN

                type: integer
              login:
                type: string
              url:
                type: string
            type: object
        type: object
      type: array
    repoCommit:
      properties:
        author:
          properties:
            date:
              description: 'ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ'
              type: string
            email:
              type: string
            name:
              type: string
          type: object
        committer:

examples/githubcl-appspec.yaml  view on Meta::CPAN

            sha:
              type: string
            url:
              type: string
          type: object
        url:
          type: string
      type: object
    repoCommitBody:
      properties:
        author:
          properties:
            date:
              type: string
            email:
              type: string
            name:
              type: string
          type: object
        message:
          type: string

examples/githubcl-appspec.yaml  view on Meta::CPAN

          description: String of the SHA of the git object this is tagging.
          type: string
        tag:
          type: string
        tagger:
          properties:
            date:
              description: Timestamp of when this object was tagged.
              type: string
            email:
              description: String of the email of the author of the tag.
              type: string
            name:
              description: String of the name of the author of the tag.
              type: string
          type: object
        type:
          description: 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.
          type: string
      required:
      - tag
      - message
      - object

examples/githubcl-appspec.yaml  view on Meta::CPAN

              $ref: '#/definitions/events'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /feeds:
      get:
        description: |
          List Feeds.
          GitHub provides several timeline resources in Atom format. The Feeds API
           lists all the feeds available to the authenticating user.
        parameters:
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string
        - description: Is used to set specified media type.
          in: header
          name: Accept
          type: string

examples/githubcl-appspec.yaml  view on Meta::CPAN

            description: OK
            schema:
              $ref: '#/definitions/feeds'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /gists:
      get:
        description: |
          List the authenticated user's gists or if called anonymously, this will
          return all public gists.
        parameters:
        - description: |
            Timestamp in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ.
            Only gists updated at or after this time are returned.
          in: query
          name: since
          type: string
        - description: |
            You can check the current version of media type in responses.

examples/githubcl-appspec.yaml  view on Meta::CPAN

          '200':
            description: OK
            schema:
              $ref: '#/definitions/gists'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /gists/starred:
      get:
        description: List the authenticated user's starred gists.
        parameters:
        - description: |
            Timestamp in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ.
            Only gists updated at or after this time are returned.
          in: query
          name: since
          type: string
        - description: |
            You can check the current version of media type in responses.
          in: header

examples/githubcl-appspec.yaml  view on Meta::CPAN

            schema:
              $ref: '#/definitions/gitignore-lang'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /issues:
      get:
        description: |
          List issues.
          List all issues across all the authenticated user's visible repositories.
        parameters:
        - default: all
          description: |
            Issues assigned to you / created by you / mentioning you / you're
            subscribed to updates for / All issues the authenticated user can see
          enum: &1
          - assigned
          - created
          - mentioned
          - subscribed
          - all
          in: query
          name: filter
          required: true
          type: string

examples/githubcl-appspec.yaml  view on Meta::CPAN

            schema:
              $ref: '#/definitions/events'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /orgs/{org}/issues:
      get:
        description: |
          List issues.
          List all issues for a given organization for the authenticated user.
        parameters:
        - description: Name of organisation.
          in: path
          name: org
          required: true
          type: string
        - default: all
          description: |
            Issues assigned to you / created by you / mentioning you / you're
            subscribed to updates for / All issues the authenticated user can see
          enum: &10
          - assigned
          - created
          - mentioned
          - subscribed
          - all
          in: query
          name: filter
          required: true
          type: string

examples/githubcl-appspec.yaml  view on Meta::CPAN

              $ref: '#/definitions/issues'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /orgs/{org}/members:
      get:
        description: |
          Members list.
          List all users who are members of an organization. A member is a user tha
          belongs to at least 1 team in the organization. If the authenticated user
          is also an owner of this organization then both concealed and public members
          will be returned. If the requester is not an owner of the organization the
          query will be redirected to the public members list.
        parameters:
        - description: Name of organisation.
          in: path
          name: org
          required: true
          type: string
        - description: |

examples/githubcl-appspec.yaml  view on Meta::CPAN

          '200':
            description: OK
            schema:
              $ref: '#/definitions/repos'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
      post:
        description: |
          Create a new repository for the authenticated user. OAuth users must supply
          repo scope.
        parameters:
        - description: Name of organisation.
          in: path
          name: org
          required: true
          type: string
        - description: |
            You can check the current version of media type in responses.
          in: header

examples/githubcl-appspec.yaml  view on Meta::CPAN

            description: OK
            schema:
              $ref: '#/definitions/teams'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
      post:
        description: |
          Create team.
          In order to create a team, the authenticated user must be an owner of organization.
        parameters:
        - description: Name of organisation.
          in: path
          name: org
          required: true
          type: string
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type

examples/githubcl-appspec.yaml  view on Meta::CPAN

            schema:
              $ref: '#/definitions/branch'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /repos/{owner}/{repo}/collaborators:
      get:
        description: |
          List.
          When authenticating as an organization owner of an organization-owned
          repository, all organization owners are included in the list of
          collaborators. Otherwise, only users with access to the repository are
          returned in the collaborators list.
        parameters:
        - description: Name of repository owner.
          in: path
          name: owner
          required: true
          type: string
        - description: Name of repository.

examples/githubcl-appspec.yaml  view on Meta::CPAN

          name: since
          type: string
        - description: Sha or branch to start listing commits from.
          in: query
          name: sha
          type: string
        - description: Only commits containing this file path will be returned.
          in: query
          name: path
          type: string
        - description: GitHub login, name, or email by which to filter by commit author.
          in: query
          name: author
          type: string
        - description: ISO 8601 Date - Only commits before this date will be returned.
          in: query
          name: until
          type: string
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string

examples/githubcl-appspec.yaml  view on Meta::CPAN

          required: true
          type: string
        - description: Name of repository.
          in: path
          name: repo
          required: true
          type: string
        - default: all
          description: |
            Issues assigned to you / created by you / mentioning you / you're
            subscribed to updates for / All issues the authenticated user can see
          enum: &16
          - assigned
          - created
          - mentioned
          - subscribed
          - all
          in: query
          name: filter
          required: true
          type: string

examples/githubcl-appspec.yaml  view on Meta::CPAN

            schema:
              $ref: '#/definitions/search-users'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /teams/{teamId}:
      delete:
        description: |
          Delete team.
          In order to delete a team, the authenticated user must be an owner of the
          org that the team is associated with.
        parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer
        - description: |
            You can check the current version of media type in responses.
          in: header

examples/githubcl-appspec.yaml  view on Meta::CPAN

            description: OK
            schema:
              $ref: '#/definitions/team'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
      patch:
        description: |
          Edit team.
          In order to edit a team, the authenticated user must be an owner of the org
          that the team is associated with.
        parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer
        - description: |
            You can check the current version of media type in responses.
          in: header

examples/githubcl-appspec.yaml  view on Meta::CPAN

            schema:
              $ref: '#/definitions/team'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /teams/{teamId}/members:
      get:
        description: |
          List team members.
          In order to list members in a team, the authenticated user must be a member
          of the team.
        parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer
        - description: |
            You can check the current version of media type in responses.
          in: header

examples/githubcl-appspec.yaml  view on Meta::CPAN

          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /teams/{teamId}/members/{username}:
      delete:
        description: |
          The "Remove team member" API is deprecated and is scheduled for removal in the next major version of the API. We recommend using the Remove team membership API instead. It allows you to remove both active and pending memberships.

          Remove team member.
          In order to remove a user from a team, the authenticated user must have 'admin'
          permissions to the team or be an owner of the org that the team is associated
          with.
          NOTE This does not delete the user, it just remove them from the team.
        parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer
        - description: Name of a member.

examples/githubcl-appspec.yaml  view on Meta::CPAN

            description: Team member removed.
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
      get:
        description: |
          The "Get team member" API is deprecated and is scheduled for removal in the next major version of the API. We recommend using the Get team membership API instead. It allows you to get both active and pending memberships.

          Get team member.
          In order to get if a user is a member of a team, the authenticated user mus
          be a member of the team.
        parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer
        - description: Name of a member.
          in: path
          name: username

examples/githubcl-appspec.yaml  view on Meta::CPAN

            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
          '404':
            description: User is not a member.
      put:
        description: |
          The API (described below) is deprecated and is scheduled for removal in the next major version of the API. We recommend using the Add team membership API instead. It allows you to invite new organization members to your teams.

          Add team member.
          In order to add a user to a team, the authenticated user must have 'admin'
          permissions to the team or be an owner of the org that the team is associated
          with.
        parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer
        - description: Name of a member.
          in: path

examples/githubcl-appspec.yaml  view on Meta::CPAN

              for details.
          '422':
            description: If you attempt to add an organization to a team, you will
              get this.
            schema:
              $ref: '#/definitions/organizationAsTeamMember'
    /teams/{teamId}/memberships/{username}:
      delete:
        description: |
          Remove team membership.
          In order to remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. NOTE: This does not delete the user, it just re...
        parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer
        - description: Name of a member.
          in: path
          name: username
          required: true

examples/githubcl-appspec.yaml  view on Meta::CPAN

        responses:
          '204':
            description: Team member removed.
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
      get:
        description: |
          Get team membership.
          In order to get a user's membership with a team, the authenticated user must be a member of the team or an owner of the team's organization.
        parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer
        - description: Name of a member.
          in: path
          name: username
          required: true

examples/githubcl-appspec.yaml  view on Meta::CPAN

              $ref: '#/definitions/teamMembership'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
          '404':
            description: User has no membership with team
      put:
        description: |
          Add team membership.
          In order to add a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with.

          If the user is already a part of the team's organization (meaning they're on at least one other team in the organization), this endpoint will add the user to the team.

          If the user is completely unaffiliated with the team's organization (meaning they're on none of the organization's teams), this endpoint will send an invitation to the user via email. This newly-created membership will be in the 'pending' s...
        parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer

examples/githubcl-appspec.yaml  view on Meta::CPAN

          '200':
            description: OK
            schema:
              $ref: '#/definitions/teamRepos'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /teams/{teamId}/repos/{org}/{repo}:
      put:
        description: In order to add a repository to a team, the authenticated user
          must be an owner of the org that the team is associated with. Also, the
          repository must be owned by the organization, or a direct fork of a repository
          owned by the organization.
        parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer
        - description: Name of a organization.

examples/githubcl-appspec.yaml  view on Meta::CPAN

        - in: header
          name: X-GitHub-Request-Id
          type: integer
        responses:
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /teams/{teamId}/repos/{owner}/{repo}:
      delete:
        description: 'In order to remove a repository from a team, the authenticated
          user must be an owner of the org that the team is associated with. NOTE:
          This does not delete the repository, it just removes it from the team.'
        parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer
        - description: Name of a repository owner.
          in: path

examples/githubcl-appspec.yaml  view on Meta::CPAN

        - in: header
          name: X-GitHub-Request-Id
          type: integer
        responses:
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /user:
      get:
        description: Get the authenticated user.
        parameters:
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string
        - description: Is used to set specified media type.
          in: header
          name: Accept
          type: string

examples/githubcl-appspec.yaml  view on Meta::CPAN

        responses:
          '200':
            description: OK
            schema:
              $ref: '#/definitions/user'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
      patch:
        description: Update the authenticated user.
        parameters:
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string
        - description: Is used to set specified media type.
          in: header
          name: Accept
          type: string

examples/githubcl-appspec.yaml  view on Meta::CPAN

          required: true
          schema:
            $ref: '#/definitions/emailsPost'
        responses:
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /user/followers:
      get:
        description: List the authenticated user's followers
        parameters:
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string
        - description: Is used to set specified media type.
          in: header
          name: Accept
          type: string

examples/githubcl-appspec.yaml  view on Meta::CPAN

          '200':
            description: OK
            schema:
              $ref: '#/definitions/users'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /user/following:
      get:
        description: List who the authenticated user is following.
        parameters:
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string
        - description: Is used to set specified media type.
          in: header
          name: Accept
          type: string

examples/githubcl-appspec.yaml  view on Meta::CPAN

            schema:
              $ref: '#/definitions/users'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /user/following/{username}:
      delete:
        description: |
          Unfollow a user.
          Unfollowing a user requires the user to be logged in and authenticated with
          basic auth or OAuth with the user:follow scope.
        parameters:
        - description: Name of user.
          in: path
          name: username
          required: true
          type: string
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type

examples/githubcl-appspec.yaml  view on Meta::CPAN

            description: Response if you are following this user.
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
          '404':
            description: Response if you are not following this user.
      put:
        description: |
          Follow a user.
          Following a user requires the user to be logged in and authenticated with
          basic auth or OAuth with the user:follow scope.
        parameters:
        - description: Name of user.
          in: path
          name: username
          required: true
          type: string
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type

examples/githubcl-appspec.yaml  view on Meta::CPAN

          '204':
            description: You are now following the user.
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /user/issues:
      get:
        description: |
          List issues.
          List all issues across owned and member repositories for the authenticated
          user.
        parameters:
        - default: all
          description: |
            Issues assigned to you / created by you / mentioning you / you're
            subscribed to updates for / All issues the authenticated user can see
          enum: &34
          - assigned
          - created
          - mentioned
          - subscribed
          - all
          in: query
          name: filter
          required: true
          type: string

examples/githubcl-appspec.yaml  view on Meta::CPAN

              $ref: '#/definitions/issues'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /user/keys:
      get:
        description: |
          List your public keys.
          Lists the current user's keys. Management of public keys via the API requires
          that you are authenticated through basic auth, or OAuth with the 'user', 'write:public_key' scopes.
        parameters:
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string
        - description: Is used to set specified media type.
          in: header
          name: Accept
          type: string

examples/githubcl-appspec.yaml  view on Meta::CPAN

            description: Created
            schema:
              $ref: '#/definitions/user-keys-keyId'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /user/keys/{keyId}:
      delete:
        description: Delete a public key. Removes a public key. Requires that you
          are authenticated via Basic Auth or via OAuth with at least admin:public_key
          scope.
        parameters:
        - description: ID of key.
          in: path
          name: keyId
          required: true
          type: integer
        - description: |
            You can check the current version of media type in responses.
          in: header

examples/githubcl-appspec.yaml  view on Meta::CPAN

          '200':
            description: OK
            schema:
              $ref: '#/definitions/user-keys-keyId'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /user/orgs:
      get:
        description: List public and private organizations for the authenticated user.
        parameters:
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string
        - description: Is used to set specified media type.
          in: header
          name: Accept
          type: string

examples/githubcl-appspec.yaml  view on Meta::CPAN

            description: OK
            schema:
              $ref: '#/definitions/gitignore'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /user/repos:
      get:
        description: |
          List repositories for the authenticated user. Note that this does not include
          repositories owned by organizations which the user can access. You can lis
          user organizations and list organization repositories separately.
        parameters:
        - default: all
          enum: &38
          - all
          - public
          - private
          - forks
          - sources

examples/githubcl-appspec.yaml  view on Meta::CPAN

          '200':
            description: OK
            schema:
              $ref: '#/definitions/repos'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
      post:
        description: |
          Create a new repository for the authenticated user. OAuth users must supply
          repo scope.
        parameters:
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string
        - description: Is used to set specified media type.
          in: header
          name: Accept

examples/githubcl-appspec.yaml  view on Meta::CPAN

          '201':
            description: Created
            schema:
              $ref: '#/definitions/repos'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /user/starred:
      get:
        description: List repositories being starred by the authenticated user.
        parameters:
        - description: Ignored without 'sort' parameter.
          in: query
          name: direction
          type: string
        - default: created
          description: ''
          enum: &39
          - created
          - updated

examples/githubcl-appspec.yaml  view on Meta::CPAN

          type: integer
        responses:
          '204':
            description: Repository starred.
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /user/subscriptions:
      get:
        description: List repositories being watched by the authenticated user.
        parameters:
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string
        - description: Is used to set specified media type.
          in: header
          name: Accept
          type: string

examples/githubcl-appspec.yaml  view on Meta::CPAN

        responses:
          '204':
            description: Repository is watched.
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /user/teams:
      get:
        description: List all of the teams across all of the organizations to which
          the authenticated user belongs. This method requires user or repo scope
          when authenticating via OAuth.
        parameters:
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string
        - description: Is used to set specified media type.
          in: header
          name: Accept
          type: string

examples/githubcl-appspec.yaml  view on Meta::CPAN

          '200':
            description: OK
            schema:
              $ref: '#/definitions/users'
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /users/{username}/events:
      get:
        description: If you are authenticated as the given user, you will see your
          private events. Otherwise, you'll only see public events.
        parameters:
        - description: Name of user.
          in: path
          name: username
          required: true
          type: string
        - description: |
            You can check the current version of media type in responses.
          in: header

examples/githubcl-appspec.yaml  view on Meta::CPAN

        - in: header
          name: X-GitHub-Request-Id
          type: integer
        responses:
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
    /users/{username}/events/orgs/{org}:
      get:
        description: This is the user's organization dashboard. You must be authenticated
          as the user to view this.
        parameters:
        - description: Name of user.
          in: path
          name: username
          required: true
          type: string
        - in: path
          name: org
          required: true

examples/githubcl-appspec.yaml  view on Meta::CPAN

        responses:
          '403':
            description: |
              API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
              for details.
  produces:
  - application/json
  schemes:
  - https
  securityDefinitions:
    oauth_2_0:
      authorizationUrl: https://github.com/login/oauth/authorize
      description: |
        OAuth2 is a protocol that lets external apps request authorization to private
        details in a user's GitHub account without getting their password. This is
        preferred over Basic Authentication because tokens can be limited to specific
        types of data, and can be revoked by users at any time.
      flow: accessCode
      scopes:
        admin:org: ''
        admin:org_hook: ''
        admin:public_key: ''
        admin:repo_hook: ''
        delete_repo: ''

examples/githubcl-appspec.yaml  view on Meta::CPAN

        read:repo_hook: ''
        repo: ''
        repo:status: ''
        repo_deployment: ''
        user: ''
        user:email: ''
        user:follow: ''
        write:org: ''
        write:public_key: ''
        write:repo_hook: ''
      tokenUrl: https://github.com/login/oauth/access_token
      type: oauth2
  swagger: '2.0'
  x-hasEquivalentPaths: true
options:
- name: data-file
  summary: File with data for POST/PUT/PATCH/DELETE requests
  type: file
- aliases:
  - d
  name: debug
  summary: debug

examples/githubcl-appspec.yaml  view on Meta::CPAN

        summary: List Feeds.
      /gists:
        options:
        - name: q-since
          required: ~
          summary: |
            Timestamp in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ.
            Only gists updated at or after this time are returned.
          type: string
        parameters: []
        summary: List the authenticated user's gists or if called a...
      /gists/:id:
        options: []
        parameters:
        - name: id
          required: 1
          summary: Id of gist.
          type: integer
        summary: Get a single gist.
      /gists/:id/comments:
        options: []

examples/githubcl-appspec.yaml  view on Meta::CPAN

        summary: List all public gists.
      /gists/starred:
        options:
        - name: q-since
          required: ~
          summary: |
            Timestamp in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ.
            Only gists updated at or after this time are returned.
          type: string
        parameters: []
        summary: List the authenticated user's starred gists....
      /gitignore/templates:
        options: []
        parameters: []
        summary: Listing available templates.
      /gitignore/templates/:language:
        options: []
        parameters:
        - name: language
          required: 1
          summary: ~
          type: string
        summary: Get a single template.
      /issues:
        options:
        - enum: *1
          name: q-filter
          required: 1
          summary: |
            Issues assigned to you / created by you / mentioning you / you're
            subscribed to updates for / All issues the authenticated user can see
          type: string
        - enum: *2
          name: q-state
          required: 1
          summary: ~
          type: string
        - name: q-labels
          required: 1
          summary: String list of comma separated Label names. Example - bug,ui,@high.
          type: string

examples/githubcl-appspec.yaml  view on Meta::CPAN

          summary: Name of organisation.
          type: string
        summary: List public events for an organization....
      /orgs/:org/issues:
        options:
        - enum: *10
          name: q-filter
          required: 1
          summary: |
            Issues assigned to you / created by you / mentioning you / you're
            subscribed to updates for / All issues the authenticated user can see
          type: string
        - enum: *11
          name: q-state
          required: 1
          summary: ~
          type: string
        - name: q-labels
          required: 1
          summary: String list of comma separated Label names. Example - bug,ui,@high.
          type: string

examples/githubcl-appspec.yaml  view on Meta::CPAN

            Example: "2012-10-09T23:39:01Z".
          type: string
        - name: q-sha
          required: ~
          summary: Sha or branch to start listing commits from.
          type: string
        - name: q-path
          required: ~
          summary: Only commits containing this file path will be returned.
          type: string
        - name: q-author
          required: ~
          summary: GitHub login, name, or email by which to filter by commit author.
          type: string
        - name: q-until
          required: ~
          summary: ISO 8601 Date - Only commits before this date will be returned.
          type: string
        parameters:
        - name: owner
          required: 1
          summary: Name of repository owner.
          type: string

examples/githubcl-appspec.yaml  view on Meta::CPAN

          summary: Id of hook.
          type: integer
        summary: Get single hook.
      /repos/:owner/:repo/issues:
        options:
        - enum: *16
          name: q-filter
          required: 1
          summary: |
            Issues assigned to you / created by you / mentioning you / you're
            subscribed to updates for / All issues the authenticated user can see
          type: string
        - enum: *17
          name: q-state
          required: 1
          summary: ~
          type: string
        - name: q-labels
          required: 1
          summary: String list of comma separated Label names. Example - bug,ui,@high.
          type: string

examples/githubcl-appspec.yaml  view on Meta::CPAN

          summary: Name of a repository owner.
          type: string
        - name: repo
          required: 1
          summary: Name of a repository.
          type: string
        summary: Check if a team manages a repository...
      /user:
        options: []
        parameters: []
        summary: Get the authenticated user.
      /user/emails:
        options: []
        parameters: []
        summary: List email addresses for a user....
      /user/followers:
        options: []
        parameters: []
        summary: List the authenticated user's followers...
      /user/following:
        options: []
        parameters: []
        summary: List who the authenticated user is following....
      /user/following/:username:
        options: []
        parameters:
        - name: username
          required: 1
          summary: Name of user.
          type: string
        summary: Check if you are following a user....
      /user/issues:
        options:
        - enum: *34
          name: q-filter
          required: 1
          summary: |
            Issues assigned to you / created by you / mentioning you / you're
            subscribed to updates for / All issues the authenticated user can see
          type: string
        - enum: *35
          name: q-state
          required: 1
          summary: ~
          type: string
        - name: q-labels
          required: 1
          summary: String list of comma separated Label names. Example - bug,ui,@high.
          type: string

examples/githubcl-appspec.yaml  view on Meta::CPAN

        options: []
        parameters:
        - name: keyId
          required: 1
          summary: ID of key.
          type: integer
        summary: Get a single public key.
      /user/orgs:
        options: []
        parameters: []
        summary: List public and private organizations for the auth...
      /user/repos:
        options:
        - enum: *38
          name: q-type
          required: ~
          summary: ~
          type: string
        parameters: []
        summary: List repositories for the authenticated user. Note...
      /user/starred:
        options:
        - name: q-direction
          required: ~
          summary: Ignored without 'sort' parameter.
          type: string
        - enum: *39
          name: q-sort
          required: ~
          summary: ''
          type: string
        parameters: []
        summary: List repositories being starred by the authenticat...
      /user/starred/:owner/:repo:
        options: []
        parameters:
        - name: owner
          required: 1
          summary: Name of a repository owner.
          type: string
        - name: repo
          required: 1
          summary: Name of a repository.
          type: string
        summary: Check if you are starring a repository....
      /user/subscriptions:
        options: []
        parameters: []
        summary: List repositories being watched by the authenticat...
      /user/subscriptions/:owner/:repo:
        options: []
        parameters:
        - name: owner
          required: 1
          summary: Name of the owner.
          type: string
        - name: repo
          required: 1
          summary: Name of repository.

examples/githubcl-appspec.yaml  view on Meta::CPAN

          summary: Name of user.
          type: string
        summary: Get a single user.
      /users/:username/events:
        options: []
        parameters:
        - name: username
          required: 1
          summary: Name of user.
          type: string
        summary: If you are authenticated as the given user, you wi...
      /users/:username/events/orgs/:org:
        options: []
        parameters:
        - name: username
          required: 1
          summary: Name of user.
          type: string
        - name: org
          required: 1
          summary: ~

examples/githubcl-appspec.yaml  view on Meta::CPAN

        options: []
        parameters:
        - name: teamId
          required: 1
          summary: Id of team.
          type: integer
        summary: Edit team.
      /user:
        options: []
        parameters: []
        summary: Update the authenticated user.
    summary: PATCH call
  POST:
    op: apicall
    subcommands:
      /gists:
        options: []
        parameters: []
        summary: Create a gist.
      /gists/:id/comments:
        options: []

examples/githubcl-appspec.yaml  view on Meta::CPAN

        options: []
        parameters: []
        summary: Render a Markdown document in raw mode...
      /orgs/:org/repos:
        options: []
        parameters:
        - name: org
          required: 1
          summary: Name of organisation.
          type: string
        summary: Create a new repository for the authenticated user...
      /orgs/:org/teams:
        options: []
        parameters:
        - name: org
          required: 1
          summary: Name of organisation.
          type: string
        summary: Create team.
      /repos/:owner/:repo/commits/:shaCode/comments:
        options: []

examples/githubcl-appspec.yaml  view on Meta::CPAN

        options: []
        parameters: []
        summary: Add email address(es).
      /user/keys:
        options: []
        parameters: []
        summary: Create a public key.
      /user/repos:
        options: []
        parameters: []
        summary: Create a new repository for the authenticated user...
    summary: POST call
  PUT:
    op: apicall
    subcommands:
      /gists/:id/star:
        options: []
        parameters:
        - name: id
          required: 1
          summary: Id of gist.

examples/githubcl-appspec.yaml  view on Meta::CPAN

          summary: Id of team.
          type: integer
        - name: org
          required: 1
          summary: Name of a organization.
          type: string
        - name: repo
          required: 1
          summary: Name of a repository.
          type: string
        summary: In order to add a repository to a team, the authen...
      /user/following/:username:
        options: []
        parameters:
        - name: username
          required: 1
          summary: Name of user.
          type: string
        summary: Follow a user.
      /user/starred/:owner/:repo:
        options: []

examples/githubcl-openapi.yaml  view on Meta::CPAN

    version: '2.0'
  x-providerName: github.com
  x-unofficialSpec: true
externalDocs:
  url: 'https://developer.github.com/v3/'
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  oauth_2_0:
    authorizationUrl: 'https://github.com/login/oauth/authorize'
    description: |
      OAuth2 is a protocol that lets external apps request authorization to private
      details in a user's GitHub account without getting their password. This is
      preferred over Basic Authentication because tokens can be limited to specific
      types of data, and can be revoked by users at any time.
    flow: accessCode
    scopes:
      'admin:org': ''
      'admin:org_hook': ''
      'admin:public_key': ''
      'admin:repo_hook': ''
      delete_repo: ''

examples/githubcl-openapi.yaml  view on Meta::CPAN

      'read:repo_hook': ''
      repo: ''
      'repo:status': ''
      repo_deployment: ''
      user: ''
      'user:email': ''
      'user:follow': ''
      'write:org': ''
      'write:public_key': ''
      'write:repo_hook': ''
    tokenUrl: 'https://github.com/login/oauth/access_token'
    type: oauth2
paths:
  /emojis:
    get:
      description: Lists all the emojis available to use on GitHub.
      parameters:
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string

examples/githubcl-openapi.yaml  view on Meta::CPAN

            $ref: '#/definitions/events'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  /feeds:
    get:
      description: |
        List Feeds.
        GitHub provides several timeline resources in Atom format. The Feeds API
         lists all the feeds available to the authenticating user.
      parameters:
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string
        - description: Is used to set specified media type.
          in: header
          name: Accept
          type: string

examples/githubcl-openapi.yaml  view on Meta::CPAN

          description: OK
          schema:
            $ref: '#/definitions/feeds'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  /gists:
    get:
      description: |
        List the authenticated user's gists or if called anonymously, this will
        return all public gists.
      parameters:
        - description: |
            Timestamp in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ.
            Only gists updated at or after this time are returned.
          in: query
          name: since
          type: string
        - description: |
            You can check the current version of media type in responses.

examples/githubcl-openapi.yaml  view on Meta::CPAN

        '200':
          description: OK
          schema:
            $ref: '#/definitions/gists'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  /gists/starred:
    get:
      description: List the authenticated user's starred gists.
      parameters:
        - description: |
            Timestamp in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ.
            Only gists updated at or after this time are returned.
          in: query
          name: since
          type: string
        - description: |
            You can check the current version of media type in responses.
          in: header

examples/githubcl-openapi.yaml  view on Meta::CPAN

          schema:
            $ref: '#/definitions/gitignore-lang'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  /issues:
    get:
      description: |
        List issues.
        List all issues across all the authenticated user's visible repositories.
      parameters:
        - default: all
          description: |
            Issues assigned to you / created by you / mentioning you / you're
            subscribed to updates for / All issues the authenticated user can see
          enum:
            - assigned
            - created
            - mentioned
            - subscribed
            - all
          in: query
          name: filter
          required: true
          type: string

examples/githubcl-openapi.yaml  view on Meta::CPAN

          schema:
            $ref: '#/definitions/events'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  '/orgs/{org}/issues':
    get:
      description: |
        List issues.
        List all issues for a given organization for the authenticated user.
      parameters:
        - description: Name of organisation.
          in: path
          name: org
          required: true
          type: string
        - default: all
          description: |
            Issues assigned to you / created by you / mentioning you / you're
            subscribed to updates for / All issues the authenticated user can see
          enum:
            - assigned
            - created
            - mentioned
            - subscribed
            - all
          in: query
          name: filter
          required: true
          type: string

examples/githubcl-openapi.yaml  view on Meta::CPAN

            $ref: '#/definitions/issues'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  '/orgs/{org}/members':
    get:
      description: |
        Members list.
        List all users who are members of an organization. A member is a user tha
        belongs to at least 1 team in the organization. If the authenticated user
        is also an owner of this organization then both concealed and public members
        will be returned. If the requester is not an owner of the organization the
        query will be redirected to the public members list.
      parameters:
        - description: Name of organisation.
          in: path
          name: org
          required: true
          type: string
        - description: |

examples/githubcl-openapi.yaml  view on Meta::CPAN

        '200':
          description: OK
          schema:
            $ref: '#/definitions/repos'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
    post:
      description: |
        Create a new repository for the authenticated user. OAuth users must supply
        repo scope.
      parameters:
        - description: Name of organisation.
          in: path
          name: org
          required: true
          type: string
        - description: |
            You can check the current version of media type in responses.
          in: header

examples/githubcl-openapi.yaml  view on Meta::CPAN

          description: OK
          schema:
            $ref: '#/definitions/teams'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
    post:
      description: |
        Create team.
        In order to create a team, the authenticated user must be an owner of organization.
      parameters:
        - description: Name of organisation.
          in: path
          name: org
          required: true
          type: string
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type

examples/githubcl-openapi.yaml  view on Meta::CPAN

          schema:
            $ref: '#/definitions/branch'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  '/repos/{owner}/{repo}/collaborators':
    get:
      description: |
        List.
        When authenticating as an organization owner of an organization-owned
        repository, all organization owners are included in the list of
        collaborators. Otherwise, only users with access to the repository are
        returned in the collaborators list.
      parameters:
        - description: Name of repository owner.
          in: path
          name: owner
          required: true
          type: string
        - description: Name of repository.

examples/githubcl-openapi.yaml  view on Meta::CPAN

          name: since
          type: string
        - description: Sha or branch to start listing commits from.
          in: query
          name: sha
          type: string
        - description: Only commits containing this file path will be returned.
          in: query
          name: path
          type: string
        - description: 'GitHub login, name, or email by which to filter by commit author.'
          in: query
          name: author
          type: string
        - description: ISO 8601 Date - Only commits before this date will be returned.
          in: query
          name: until
          type: string
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string

examples/githubcl-openapi.yaml  view on Meta::CPAN

          required: true
          type: string
        - description: Name of repository.
          in: path
          name: repo
          required: true
          type: string
        - default: all
          description: |
            Issues assigned to you / created by you / mentioning you / you're
            subscribed to updates for / All issues the authenticated user can see
          enum:
            - assigned
            - created
            - mentioned
            - subscribed
            - all
          in: query
          name: filter
          required: true
          type: string

examples/githubcl-openapi.yaml  view on Meta::CPAN

          schema:
            $ref: '#/definitions/search-users'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  '/teams/{teamId}':
    delete:
      description: |
        Delete team.
        In order to delete a team, the authenticated user must be an owner of the
        org that the team is associated with.
      parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer
        - description: |
            You can check the current version of media type in responses.
          in: header

examples/githubcl-openapi.yaml  view on Meta::CPAN

          description: OK
          schema:
            $ref: '#/definitions/team'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
    patch:
      description: |
        Edit team.
        In order to edit a team, the authenticated user must be an owner of the org
        that the team is associated with.
      parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer
        - description: |
            You can check the current version of media type in responses.
          in: header

examples/githubcl-openapi.yaml  view on Meta::CPAN

          schema:
            $ref: '#/definitions/team'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  '/teams/{teamId}/members':
    get:
      description: |
        List team members.
        In order to list members in a team, the authenticated user must be a member
        of the team.
      parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer
        - description: |
            You can check the current version of media type in responses.
          in: header

examples/githubcl-openapi.yaml  view on Meta::CPAN

        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  '/teams/{teamId}/members/{username}':
    delete:
      description: |
        The "Remove team member" API is deprecated and is scheduled for removal in the next major version of the API. We recommend using the Remove team membership API instead. It allows you to remove both active and pending memberships.

        Remove team member.
        In order to remove a user from a team, the authenticated user must have 'admin'
        permissions to the team or be an owner of the org that the team is associated
        with.
        NOTE This does not delete the user, it just remove them from the team.
      parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer
        - description: Name of a member.

examples/githubcl-openapi.yaml  view on Meta::CPAN

          description: Team member removed.
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
    get:
      description: |
        The "Get team member" API is deprecated and is scheduled for removal in the next major version of the API. We recommend using the Get team membership API instead. It allows you to get both active and pending memberships.

        Get team member.
        In order to get if a user is a member of a team, the authenticated user mus
        be a member of the team.
      parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer
        - description: Name of a member.
          in: path
          name: username

examples/githubcl-openapi.yaml  view on Meta::CPAN

          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
        '404':
          description: User is not a member.
    put:
      description: |
        The API (described below) is deprecated and is scheduled for removal in the next major version of the API. We recommend using the Add team membership API instead. It allows you to invite new organization members to your teams.

        Add team member.
        In order to add a user to a team, the authenticated user must have 'admin'
        permissions to the team or be an owner of the org that the team is associated
        with.
      parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer
        - description: Name of a member.
          in: path

examples/githubcl-openapi.yaml  view on Meta::CPAN

            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
        '422':
          description: 'If you attempt to add an organization to a team, you will get this.'
          schema:
            $ref: '#/definitions/organizationAsTeamMember'
  '/teams/{teamId}/memberships/{username}':
    delete:
      description: |
        Remove team membership.
        In order to remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. NOTE: This does not delete the user, it just remo...
      parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer
        - description: Name of a member.
          in: path
          name: username
          required: true

examples/githubcl-openapi.yaml  view on Meta::CPAN

      responses:
        '204':
          description: Team member removed.
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
    get:
      description: |
        Get team membership.
        In order to get a user's membership with a team, the authenticated user must be a member of the team or an owner of the team's organization.
      parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer
        - description: Name of a member.
          in: path
          name: username
          required: true

examples/githubcl-openapi.yaml  view on Meta::CPAN

            $ref: '#/definitions/teamMembership'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
        '404':
          description: User has no membership with team
    put:
      description: |
        Add team membership.
        In order to add a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with.

        If the user is already a part of the team's organization (meaning they're on at least one other team in the organization), this endpoint will add the user to the team.

        If the user is completely unaffiliated with the team's organization (meaning they're on none of the organization's teams), this endpoint will send an invitation to the user via email. This newly-created membership will be in the 'pending' sta...
      parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer

examples/githubcl-openapi.yaml  view on Meta::CPAN

        '200':
          description: OK
          schema:
            $ref: '#/definitions/teamRepos'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  '/teams/{teamId}/repos/{org}/{repo}':
    put:
      description: 'In order to add a repository to a team, the authenticated user must be an owner of the org that the team is associated with. Also, the repository must be owned by the organization, or a direct fork of a repository owned by the org...
      parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer
        - description: Name of a organization.
          in: path
          name: org
          required: true

examples/githubcl-openapi.yaml  view on Meta::CPAN

        - in: header
          name: X-GitHub-Request-Id
          type: integer
      responses:
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  '/teams/{teamId}/repos/{owner}/{repo}':
    delete:
      description: 'In order to remove a repository from a team, the authenticated user must be an owner of the org that the team is associated with. NOTE: This does not delete the repository, it just removes it from the team.'
      parameters:
        - description: Id of team.
          in: path
          name: teamId
          required: true
          type: integer
        - description: Name of a repository owner.
          in: path
          name: owner
          required: true

examples/githubcl-openapi.yaml  view on Meta::CPAN

        - in: header
          name: X-GitHub-Request-Id
          type: integer
      responses:
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  /user:
    get:
      description: Get the authenticated user.
      parameters:
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string
        - description: Is used to set specified media type.
          in: header
          name: Accept
          type: string

examples/githubcl-openapi.yaml  view on Meta::CPAN

      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/user'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
    patch:
      description: Update the authenticated user.
      parameters:
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string
        - description: Is used to set specified media type.
          in: header
          name: Accept
          type: string

examples/githubcl-openapi.yaml  view on Meta::CPAN

          required: true
          schema:
            $ref: '#/definitions/emailsPost'
      responses:
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  /user/followers:
    get:
      description: List the authenticated user's followers
      parameters:
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string
        - description: Is used to set specified media type.
          in: header
          name: Accept
          type: string

examples/githubcl-openapi.yaml  view on Meta::CPAN

        '200':
          description: OK
          schema:
            $ref: '#/definitions/users'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  /user/following:
    get:
      description: List who the authenticated user is following.
      parameters:
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string
        - description: Is used to set specified media type.
          in: header
          name: Accept
          type: string

examples/githubcl-openapi.yaml  view on Meta::CPAN

          schema:
            $ref: '#/definitions/users'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  '/user/following/{username}':
    delete:
      description: |
        Unfollow a user.
        Unfollowing a user requires the user to be logged in and authenticated with
        basic auth or OAuth with the user:follow scope.
      parameters:
        - description: Name of user.
          in: path
          name: username
          required: true
          type: string
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type

examples/githubcl-openapi.yaml  view on Meta::CPAN

          description: Response if you are following this user.
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
        '404':
          description: Response if you are not following this user.
    put:
      description: |
        Follow a user.
        Following a user requires the user to be logged in and authenticated with
        basic auth or OAuth with the user:follow scope.
      parameters:
        - description: Name of user.
          in: path
          name: username
          required: true
          type: string
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type

examples/githubcl-openapi.yaml  view on Meta::CPAN

        '204':
          description: You are now following the user.
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  /user/issues:
    get:
      description: |
        List issues.
        List all issues across owned and member repositories for the authenticated
        user.
      parameters:
        - default: all
          description: |
            Issues assigned to you / created by you / mentioning you / you're
            subscribed to updates for / All issues the authenticated user can see
          enum:
            - assigned
            - created
            - mentioned
            - subscribed
            - all
          in: query
          name: filter
          required: true
          type: string

examples/githubcl-openapi.yaml  view on Meta::CPAN

            $ref: '#/definitions/issues'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  /user/keys:
    get:
      description: |
        List your public keys.
        Lists the current user's keys. Management of public keys via the API requires
        that you are authenticated through basic auth, or OAuth with the 'user', 'write:public_key' scopes.
      parameters:
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string
        - description: Is used to set specified media type.
          in: header
          name: Accept
          type: string

examples/githubcl-openapi.yaml  view on Meta::CPAN

        '201':
          description: Created
          schema:
            $ref: '#/definitions/user-keys-keyId'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  '/user/keys/{keyId}':
    delete:
      description: 'Delete a public key. Removes a public key. Requires that you are authenticated via Basic Auth or via OAuth with at least admin:public_key scope.'
      parameters:
        - description: ID of key.
          in: path
          name: keyId
          required: true
          type: integer
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type

examples/githubcl-openapi.yaml  view on Meta::CPAN

        '200':
          description: OK
          schema:
            $ref: '#/definitions/user-keys-keyId'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  /user/orgs:
    get:
      description: List public and private organizations for the authenticated user.
      parameters:
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string
        - description: Is used to set specified media type.
          in: header
          name: Accept
          type: string

examples/githubcl-openapi.yaml  view on Meta::CPAN

          description: OK
          schema:
            $ref: '#/definitions/gitignore'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  /user/repos:
    get:
      description: |
        List repositories for the authenticated user. Note that this does not include
        repositories owned by organizations which the user can access. You can lis
        user organizations and list organization repositories separately.
      parameters:
        - default: all
          enum:
            - all
            - public
            - private
            - forks
            - sources

examples/githubcl-openapi.yaml  view on Meta::CPAN

        '200':
          description: OK
          schema:
            $ref: '#/definitions/repos'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
    post:
      description: |
        Create a new repository for the authenticated user. OAuth users must supply
        repo scope.
      parameters:
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string
        - description: Is used to set specified media type.
          in: header
          name: Accept

examples/githubcl-openapi.yaml  view on Meta::CPAN

        '201':
          description: Created
          schema:
            $ref: '#/definitions/repos'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  /user/starred:
    get:
      description: List repositories being starred by the authenticated user.
      parameters:
        - description: Ignored without 'sort' parameter.
          in: query
          name: direction
          type: string
        - default: created
          description: ''
          enum:
            - created
            - updated

examples/githubcl-openapi.yaml  view on Meta::CPAN

          type: integer
      responses:
        '204':
          description: Repository starred.
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  /user/subscriptions:
    get:
      description: List repositories being watched by the authenticated user.
      parameters:
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string
        - description: Is used to set specified media type.
          in: header
          name: Accept
          type: string

examples/githubcl-openapi.yaml  view on Meta::CPAN

          type: integer
      responses:
        '204':
          description: Repository is watched.
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  /user/teams:
    get:
      description: List all of the teams across all of the organizations to which the authenticated user belongs. This method requires user or repo scope when authenticating via OAuth.
      parameters:
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type
          type: string
        - description: Is used to set specified media type.
          in: header
          name: Accept
          type: string

examples/githubcl-openapi.yaml  view on Meta::CPAN

        '200':
          description: OK
          schema:
            $ref: '#/definitions/users'
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  '/users/{username}/events':
    get:
      description: 'If you are authenticated as the given user, you will see your private events. Otherwise, you''ll only see public events.'
      parameters:
        - description: Name of user.
          in: path
          name: username
          required: true
          type: string
        - description: |
            You can check the current version of media type in responses.
          in: header
          name: X-GitHub-Media-Type

examples/githubcl-openapi.yaml  view on Meta::CPAN

        - in: header
          name: X-GitHub-Request-Id
          type: integer
      responses:
        '403':
          description: |
            API rate limit exceeded. See http://developer.github.com/v3/#rate-limiting
            for details.
  '/users/{username}/events/orgs/{org}':
    get:
      description: This is the user's organization dashboard. You must be authenticated as the user to view this.
      parameters:
        - description: Name of user.
          in: path
          name: username
          required: true
          type: string
        - in: path
          name: org
          required: true
          type: string

examples/githubcl-openapi.yaml  view on Meta::CPAN

    properties:
      _links:
        properties:
          html:
            type: string
          self:
            type: string
        type: object
      commit:
        properties:
          author:
            properties:
              avatar_url:
                type: string
              gravatar_id:
                type: string
              id:
                type: integer
              login:
                type: string
              url:
                type: string
            type: object
          commit:
            properties:
              author:
                properties:
                  date:
                    description: 'ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ'
                    type: string
                  email:
                    type: string
                  name:
                    type: string
              committer:
                properties:

examples/githubcl-openapi.yaml  view on Meta::CPAN

              type: integer
            login:
              type: string
            url:
              type: string
          type: object
      type: object
    type: array
  commit:
    properties:
      author:
        properties:
          avatar_url:
            type: string
          gravatar_id:
            type: string
          id:
            type: integer
          login:
            type: string
          url:
            type: string
        type: object
      commit:
        properties:
          author:
            properties:
              date:
                description: 'ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ'
                type: string
              email:
                type: string
              name:
                type: string
            type: object
          committer:

examples/githubcl-openapi.yaml  view on Meta::CPAN

            type: integer
          login:
            type: string
          url:
            type: string
        type: object
    type: object
  commits:
    items:
      properties:
        author:
          properties:
            avatar_url:
              type: string
            gravatar_id:
              type: string
            id:
              type: integer
            login:
              type: string
            url:
              type: string
          type: object
        commit:
          properties:
            author:
              properties:
                date:
                  description: 'ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ'
                  type: string
                email:
                  type: string
                name:
                  type: string
              type: object
            committer:

examples/githubcl-openapi.yaml  view on Meta::CPAN

        url:
          type: string
      type: object
    type: array
  compare-commits:
    properties:
      ahead_by:
        type: integer
      base_commit:
        properties:
          author:
            properties:
              avatar_url:
                type: string
              events_url:
                type: string
              followers_url:
                type: string
              following_url:
                type: string
              gists_url:

examples/githubcl-openapi.yaml  view on Meta::CPAN

                type: string
              subscriptions_url:
                type: string
              type:
                type: string
              url:
                type: string
            type: object
          commit:
            properties:
              author:
                properties:
                  date:
                    type: string
                  email:
                    type: string
                  name:
                    type: string
                type: object
              committer:
                properties:

examples/githubcl-openapi.yaml  view on Meta::CPAN

          sha:
            type: string
          url:
            type: string
        type: object
      behind_by:
        type: integer
      commits:
        items:
          properties:
            author:
              properties:
                avatar_url:
                  type: string
                events_url:
                  type: string
                followers_url:
                  type: string
                following_url:
                  type: string
                gists_url:

examples/githubcl-openapi.yaml  view on Meta::CPAN

                  type: string
                subscriptions_url:
                  type: string
                type:
                  type: string
                url:
                  type: string
              type: object
            commit:
              properties:
                author:
                  properties:
                    date:
                      type: string
                    email:
                      type: string
                    name:
                      type: string
                  type: object
                committer:
                  properties:

examples/githubcl-openapi.yaml  view on Meta::CPAN

          type: integer
        login:
          type: string
        url:
          type: string
      type: object
    type: array
  contributorsStats:
    items:
      properties:
        author:
          properties:
            avatar_url:
              type: string
            gravatar_id:
              type: string
            id:
              type: integer
            login:
              type: string
            url:
              type: string
          type: object
        total:
          description: The Total number of commits authored by the contributor.
          type: integer
        weeks:
          items:
            properties:
              a:
                description: Number of additions.
                type: integer
              c:
                description: Number of commits.
                type: integer

examples/githubcl-openapi.yaml  view on Meta::CPAN

        type: string
      size:
        type: integer
      url:
        type: string
    type: object
  createFile:
    properties:
      commit:
        properties:
          author:
            properties:
              date:
                type: string
              email:
                type: string
              name:
                type: string
            type: object
          committer:
            properties:

examples/githubcl-openapi.yaml  view on Meta::CPAN

        type: object
      content:
        type: string
      message:
        type: string
    type: object
  deleteFile:
    properties:
      commit:
        properties:
          author:
            properties:
              date:
                type: string
              email:
                type: string
              name:
                type: string
            type: object
          committer:
            properties:

examples/githubcl-openapi.yaml  view on Meta::CPAN

              type: integer
            login:
              type: string
            url:
              type: string
          type: object
      type: object
    type: array
  gitCommit:
    properties:
      author:
        properties:
          date:
            type: string
          email:
            type: string
          name:
            type: string
        type: object
      message:
        type: string

examples/githubcl-openapi.yaml  view on Meta::CPAN

        type: string
    type: object
  mergesConflict:
    properties:
      message:
        description: Error message
        type: string
    type: object
  mergesSuccessful:
    properties:
      author:
        properties:
          avatar_url:
            type: string
          events_url:
            type: string
          followers_url:
            type: string
          following_url:
            type: string
          gists_url:

examples/githubcl-openapi.yaml  view on Meta::CPAN

            type: string
          type:
            type: string
          url:
            type: string
        type: object
      comments_url:
        type: string
      commit:
        properties:
          author:
            properties:
              date:
                type: string
              email:
                type: string
              name:
                type: string
            type: object
          comment_count:
            type: integer

examples/githubcl-openapi.yaml  view on Meta::CPAN

                  type: string
                url:
                  type: string
              type: object
            url:
              type: string
          type: object
        type: array
      assets_url:
        type: string
      author:
        properties:
          avatar_url:
            type: string
          events_url:
            type: string
          followers_url:
            type: string
          following_url:
            type: string
          gists_url:

examples/githubcl-openapi.yaml  view on Meta::CPAN

                    type: string
                  url:
                    type: string
                type: object
              url:
                type: string
            type: object
          type: array
        assets_url:
          type: string
        author:
          properties:
            avatar_url:
              type: string
            events_url:
              type: string
            followers_url:
              type: string
            following_url:
              type: string
            gists_url:

examples/githubcl-openapi.yaml  view on Meta::CPAN

              type: integer
            login:
              type: string
            url:
              type: string
          type: object
      type: object
    type: array
  repoCommit:
    properties:
      author:
        properties:
          date:
            description: 'ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ'
            type: string
          email:
            type: string
          name:
            type: string
        type: object
      committer:

examples/githubcl-openapi.yaml  view on Meta::CPAN

          sha:
            type: string
          url:
            type: string
        type: object
      url:
        type: string
    type: object
  repoCommitBody:
    properties:
      author:
        properties:
          date:
            type: string
          email:
            type: string
          name:
            type: string
        type: object
      message:
        type: string

examples/githubcl-openapi.yaml  view on Meta::CPAN

        description: String of the SHA of the git object this is tagging.
        type: string
      tag:
        type: string
      tagger:
        properties:
          date:
            description: Timestamp of when this object was tagged.
            type: string
          email:
            description: String of the email of the author of the tag.
            type: string
          name:
            description: String of the name of the author of the tag.
            type: string
        type: object
      type:
        description: 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.
        type: string
    required:
      - tag
      - message
      - object
      - type

examples/html/githubcl.html  view on Meta::CPAN

<h3 id="GET-feeds">GET /feeds</h3>

<pre><code>    githubcl GET /feeds</code></pre>

<p>List Feeds.</p>

<h3 id="GET-gists">GET /gists</h3>

<pre><code>    githubcl GET /gists [options]</code></pre>

<p>List the authenticated user&#39;s gists or if called a...</p>

<p>Options:</p>

<pre><code>    --q-since    Timestamp in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ.    
                 Only gists updated at or after this time are returned.</code></pre>

<h3 id="GET-gists-:id">GET /gists/:id</h3>

<pre><code>    githubcl GET /gists/:id &lt;id&gt;</code></pre>

examples/html/githubcl.html  view on Meta::CPAN


<p>Options:</p>

<pre><code>    --q-since    Timestamp in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ.    
                 Only gists updated at or after this time are returned.</code></pre>

<h3 id="GET-gists-starred">GET /gists/starred</h3>

<pre><code>    githubcl GET /gists/starred [options]</code></pre>

<p>List the authenticated user&#39;s starred gists....</p>

<p>Options:</p>

<pre><code>    --q-since    Timestamp in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ.    
                 Only gists updated at or after this time are returned.</code></pre>

<h3 id="GET-gitignore-templates">GET /gitignore/templates</h3>

<pre><code>    githubcl GET /gitignore/templates</code></pre>

examples/html/githubcl.html  view on Meta::CPAN


<h3 id="GET-issues">GET /issues</h3>

<pre><code>    githubcl GET /issues [options]</code></pre>

<p>List issues.</p>

<p>Options:</p>

<pre><code>    --q-filter     *  Issues assigned to you / created by you / mentioning you / you&#39;re       
                      subscribed to updates for / All issues the authenticated user can see   
    --q-state      *                                                                          
    --q-labels     *  String list of comma separated Label names. Example - bug,ui,@high.     
    --q-sort       *                                                                          
    --q-direction  *                                                                          
    --q-since         Optional string of a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
                      Only issues updated at or after this time are returned.                 </code></pre>

<h3 id="GET-legacy-issues-search-:owner-:repository-:state-:keyword">GET /legacy/issues/search/:owner/:repository/:state/:keyword</h3>

<pre><code>    githubcl GET /legacy/issues/search/:owner/:repository/:state/:keyword &lt;keyword&gt; &lt;state&gt; &lt;owner&gt; &lt;repository&gt;</code></pre>

examples/html/githubcl.html  view on Meta::CPAN


<h3 id="GET-orgs-:org-issues">GET /orgs/:org/issues</h3>

<pre><code>    githubcl GET /orgs/:org/issues [options] &lt;org&gt;</code></pre>

<p>List issues.</p>

<p>Options:</p>

<pre><code>    --q-filter     *  Issues assigned to you / created by you / mentioning you / you&#39;re       
                      subscribed to updates for / All issues the authenticated user can see   
    --q-state      *                                                                          
    --q-labels     *  String list of comma separated Label names. Example - bug,ui,@high.     
    --q-sort       *                                                                          
    --q-direction  *                                                                          
    --q-since         Optional string of a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
                      Only issues updated at or after this time are returned.                 </code></pre>

<p>Parameters:</p>

<pre><code>    org  *  Name of organisation.</code></pre>

examples/html/githubcl.html  view on Meta::CPAN

<pre><code>    githubcl GET /repos/:owner/:repo/commits [options] &lt;owner&gt; &lt;repo&gt;</code></pre>

<p>List commits on a repository.</p>

<p>Options:</p>

<pre><code>    --q-since     The time should be passed in as UTC in the ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
                  Example: &quot;2012-10-09T23:39:01Z&quot;.                                                 
    --q-sha       Sha or branch to start listing commits from.                                     
    --q-path      Only commits containing this file path will be returned.                         
    --q-author    GitHub login, name, or email by which to filter by commit author.                
    --q-until     ISO 8601 Date - Only commits before this date will be returned.                  </code></pre>

<p>Parameters:</p>

<pre><code>    owner  *  Name of repository owner.
    repo   *  Name of repository.      </code></pre>

<h3 id="GET-repos-:owner-:repo-commits-:ref-status">GET /repos/:owner/:repo/commits/:ref/status</h3>

<pre><code>    githubcl GET /repos/:owner/:repo/commits/:ref/status &lt;owner&gt; &lt;repo&gt; &lt;ref&gt;</code></pre>

examples/html/githubcl.html  view on Meta::CPAN


<h3 id="GET-repos-:owner-:repo-issues">GET /repos/:owner/:repo/issues</h3>

<pre><code>    githubcl GET /repos/:owner/:repo/issues [options] &lt;owner&gt; &lt;repo&gt;</code></pre>

<p>List issues for a repository.</p>

<p>Options:</p>

<pre><code>    --q-filter     *  Issues assigned to you / created by you / mentioning you / you&#39;re       
                      subscribed to updates for / All issues the authenticated user can see   
    --q-state      *                                                                          
    --q-labels     *  String list of comma separated Label names. Example - bug,ui,@high.     
    --q-sort       *                                                                          
    --q-direction  *                                                                          
    --q-since         Optional string of a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
                      Only issues updated at or after this time are returned.                 </code></pre>

<p>Parameters:</p>

<pre><code>    owner  *  Name of repository owner.

examples/html/githubcl.html  view on Meta::CPAN

<p>Parameters:</p>

<pre><code>    teamId  *  Id of team.                
    owner   *  Name of a repository owner.
    repo    *  Name of a repository.      </code></pre>

<h3 id="GET-user">GET /user</h3>

<pre><code>    githubcl GET /user</code></pre>

<p>Get the authenticated user.</p>

<h3 id="GET-user-emails">GET /user/emails</h3>

<pre><code>    githubcl GET /user/emails</code></pre>

<p>List email addresses for a user....</p>

<h3 id="GET-user-followers">GET /user/followers</h3>

<pre><code>    githubcl GET /user/followers</code></pre>

<p>List the authenticated user&#39;s followers...</p>

<h3 id="GET-user-following">GET /user/following</h3>

<pre><code>    githubcl GET /user/following</code></pre>

<p>List who the authenticated user is following....</p>

<h3 id="GET-user-following-:username">GET /user/following/:username</h3>

<pre><code>    githubcl GET /user/following/:username &lt;username&gt;</code></pre>

<p>Check if you are following a user....</p>

<p>Parameters:</p>

<pre><code>    username  *  Name of user.</code></pre>

<h3 id="GET-user-issues">GET /user/issues</h3>

<pre><code>    githubcl GET /user/issues [options]</code></pre>

<p>List issues.</p>

<p>Options:</p>

<pre><code>    --q-filter     *  Issues assigned to you / created by you / mentioning you / you&#39;re       
                      subscribed to updates for / All issues the authenticated user can see   
    --q-state      *                                                                          
    --q-labels     *  String list of comma separated Label names. Example - bug,ui,@high.     
    --q-sort       *                                                                          
    --q-direction  *                                                                          
    --q-since         Optional string of a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
                      Only issues updated at or after this time are returned.                 </code></pre>

<h3 id="GET-user-keys">GET /user/keys</h3>

<pre><code>    githubcl GET /user/keys</code></pre>

examples/html/githubcl.html  view on Meta::CPAN

<p>Get a single public key.</p>

<p>Parameters:</p>

<pre><code>    keyId  *  ID of key.</code></pre>

<h3 id="GET-user-orgs">GET /user/orgs</h3>

<pre><code>    githubcl GET /user/orgs</code></pre>

<p>List public and private organizations for the auth...</p>

<h3 id="GET-user-repos">GET /user/repos</h3>

<pre><code>    githubcl GET /user/repos [options]</code></pre>

<p>List repositories for the authenticated user. Note...</p>

<p>Options:</p>

<pre><code>    --q-type    </code></pre>

<h3 id="GET-user-starred">GET /user/starred</h3>

<pre><code>    githubcl GET /user/starred [options]</code></pre>

<p>List repositories being starred by the authenticat...</p>

<p>Options:</p>

<pre><code>    --q-direction    Ignored without &#39;sort&#39; parameter.
    --q-sort                                          </code></pre>

<h3 id="GET-user-starred-:owner-:repo">GET /user/starred/:owner/:repo</h3>

<pre><code>    githubcl GET /user/starred/:owner/:repo &lt;owner&gt; &lt;repo&gt;</code></pre>

examples/html/githubcl.html  view on Meta::CPAN


<p>Parameters:</p>

<pre><code>    owner  *  Name of a repository owner.
    repo   *  Name of a repository.      </code></pre>

<h3 id="GET-user-subscriptions">GET /user/subscriptions</h3>

<pre><code>    githubcl GET /user/subscriptions</code></pre>

<p>List repositories being watched by the authenticat...</p>

<h3 id="GET-user-subscriptions-:owner-:repo">GET /user/subscriptions/:owner/:repo</h3>

<pre><code>    githubcl GET /user/subscriptions/:owner/:repo &lt;owner&gt; &lt;repo&gt;</code></pre>

<p>Check if you are watching a repository....</p>

<p>Parameters:</p>

<pre><code>    owner  *  Name of the owner. 

examples/html/githubcl.html  view on Meta::CPAN

<p>Get a single user.</p>

<p>Parameters:</p>

<pre><code>    username  *  Name of user.</code></pre>

<h3 id="GET-users-:username-events">GET /users/:username/events</h3>

<pre><code>    githubcl GET /users/:username/events &lt;username&gt;</code></pre>

<p>If you are authenticated as the given user, you wi...</p>

<p>Parameters:</p>

<pre><code>    username  *  Name of user.</code></pre>

<h3 id="GET-users-:username-events-orgs-:org">GET /users/:username/events/orgs/:org</h3>

<pre><code>    githubcl GET /users/:username/events/orgs/:org &lt;username&gt; &lt;org&gt;</code></pre>

<p>This is the user&#39;s organization dashboard. You mus...</p>

examples/html/githubcl.html  view on Meta::CPAN

<p>Edit team.</p>

<p>Parameters:</p>

<pre><code>    teamId  *  Id of team.</code></pre>

<h3 id="PATCH-user">PATCH /user</h3>

<pre><code>    githubcl PATCH /user</code></pre>

<p>Update the authenticated user.</p>

<h3 id="POST">POST</h3>

<pre><code>    githubcl  POST &lt;subcommands&gt;</code></pre>

<p>POST call</p>

<h3 id="POST-gists">POST /gists</h3>

<pre><code>    githubcl POST /gists</code></pre>

examples/html/githubcl.html  view on Meta::CPAN

<h3 id="POST-markdown-raw">POST /markdown/raw</h3>

<pre><code>    githubcl POST /markdown/raw</code></pre>

<p>Render a Markdown document in raw mode...</p>

<h3 id="POST-orgs-:org-repos">POST /orgs/:org/repos</h3>

<pre><code>    githubcl POST /orgs/:org/repos &lt;org&gt;</code></pre>

<p>Create a new repository for the authenticated user...</p>

<p>Parameters:</p>

<pre><code>    org  *  Name of organisation.</code></pre>

<h3 id="POST-orgs-:org-teams">POST /orgs/:org/teams</h3>

<pre><code>    githubcl POST /orgs/:org/teams &lt;org&gt;</code></pre>

<p>Create team.</p>

examples/html/githubcl.html  view on Meta::CPAN

<h3 id="POST-user-keys">POST /user/keys</h3>

<pre><code>    githubcl POST /user/keys</code></pre>

<p>Create a public key.</p>

<h3 id="POST-user-repos">POST /user/repos</h3>

<pre><code>    githubcl POST /user/repos</code></pre>

<p>Create a new repository for the authenticated user...</p>

<h3 id="PUT">PUT</h3>

<pre><code>    githubcl  PUT &lt;subcommands&gt;</code></pre>

<p>PUT call</p>

<h3 id="PUT-gists-:id-star">PUT /gists/:id/star</h3>

<pre><code>    githubcl PUT /gists/:id/star &lt;id&gt;</code></pre>

examples/html/githubcl.html  view on Meta::CPAN


<p>Parameters:</p>

<pre><code>    teamId    *  Id of team.      
    username  *  Name of a member.</code></pre>

<h3 id="PUT-teams-:teamId-repos-:org-:repo">PUT /teams/:teamId/repos/:org/:repo</h3>

<pre><code>    githubcl PUT /teams/:teamId/repos/:org/:repo &lt;teamId&gt; &lt;org&gt; &lt;repo&gt;</code></pre>

<p>In order to add a repository to a team, the authen...</p>

<p>Parameters:</p>

<pre><code>    teamId  *  Id of team.            
    org     *  Name of a organization.
    repo    *  Name of a repository.  </code></pre>

<h3 id="PUT-user-following-:username">PUT /user/following/:username</h3>

<pre><code>    githubcl PUT /user/following/:username &lt;username&gt;</code></pre>

examples/html/metacpancl.html  view on Meta::CPAN


<ul id="index">
  <li><a href="#NAME">NAME</a></li>
  <li><a href="#ABSTRACT">ABSTRACT</a></li>
  <li><a href="#DESCRIPTION">DESCRIPTION</a>
    <ul>
      <li><a href="#GLOBAL-OPTIONS">GLOBAL OPTIONS</a></li>
      <li><a href="#SUBCOMMANDS">SUBCOMMANDS</a>
        <ul>
          <li><a href="#GET">GET</a></li>
          <li><a href="#GET-author-:author">GET /author/:author</a></li>
          <li><a href="#GET-distribution-:distribution">GET /distribution/:distribution</a></li>
          <li><a href="#GET-module-:module">GET /module/:module</a></li>
          <li><a href="#GET-pod-:module">GET /pod/:module</a></li>
          <li><a href="#GET-release-:author-:release">GET /release/:author/:release</a></li>
          <li><a href="#GET-release-:distribution">GET /release/:distribution</a></li>
          <li><a href="#GET-release-_search">GET /release/_search</a></li>
          <li><a href="#POST">POST</a></li>
          <li><a href="#POST-file">POST /file</a></li>
          <li><a href="#help">help</a></li>
          <li><a href="#meta">_meta</a></li>
          <li><a href="#meta-completion">_meta completion</a></li>
          <li><a href="#meta-completion-generate">_meta completion generate</a></li>
          <li><a href="#meta-pod">_meta pod</a></li>
          <li><a href="#meta-pod-generate">_meta pod generate</a></li>

examples/html/metacpancl.html  view on Meta::CPAN

    --help -h       Show command help (flag)                         </code></pre>

<h2 id="SUBCOMMANDS">SUBCOMMANDS</h2>

<h3 id="GET">GET</h3>

<pre><code>    metacpancl  GET &lt;subcommands&gt;</code></pre>

<p>GET call</p>

<h3 id="GET-author-:author">GET /author/:author</h3>

<pre><code>    metacpancl GET /author/:author &lt;author&gt;</code></pre>

<p>Author information</p>

<p>Parameters:</p>

<pre><code>    author  *  CPAN handle</code></pre>

<h3 id="GET-distribution-:distribution">GET /distribution/:distribution</h3>

<pre><code>    metacpancl GET /distribution/:distribution &lt;distribution&gt;</code></pre>

<p>Distribution information not specific to a version...</p>

<p>Parameters:</p>

<pre><code>    distribution  *  distribution name</code></pre>

examples/html/metacpancl.html  view on Meta::CPAN

<p>Module POD</p>

<p>Options:</p>

<pre><code>    --q-content-type    Default is text/html</code></pre>

<p>Parameters:</p>

<pre><code>    module  *  Module name</code></pre>

<h3 id="GET-release-:author-:release">GET /release/:author/:release</h3>

<pre><code>    metacpancl GET /release/:author/:release &lt;author&gt; &lt;release&gt;</code></pre>

<p>Release information</p>

<p>Parameters:</p>

<pre><code>    author   *  CPAN handle            
    release  *  release, e.g. Moose-123</code></pre>

<h3 id="GET-release-:distribution">GET /release/:distribution</h3>

<pre><code>    metacpancl GET /release/:distribution &lt;distribution&gt;</code></pre>

<p>Release information</p>

<p>Parameters:</p>

<pre><code>    distribution  *  distribution name</code></pre>

<h3 id="GET-release-_search">GET /release/_search</h3>

<pre><code>    metacpancl GET /release/_search [options]</code></pre>

<p>Search releases</p>

<p>Options:</p>

<pre><code>    --q-q       *  query (&quot;author:ANDK AND status:latest&quot;)
    --q-fields     resultset fields                       
    --q-size       how many results                       </code></pre>

<h3 id="POST">POST</h3>

<pre><code>    metacpancl  POST &lt;subcommands&gt;</code></pre>

<p>POST call</p>

<h3 id="POST-file">POST /file</h3>

examples/metacpancl-appspec.yaml  view on Meta::CPAN

class: API::CLI
name: metacpancl
openapi:
  basePath: /v0
  host: api.metacpan.org
  info:
    description: Unofficial MetaCPAN API specification
    title: MetaCPAN API
    version: 3
  paths:
    /author/:author:
      get:
        description: Author information
        parameters:
        - description: CPAN handle
          in: path
          name: author
          required: true
          type: string
    /distribution/:distribution:
      get:
        description: Distribution information not specific to a version
        parameters:
        - description: distribution name
          in: path
          name: distribution
          required: true

examples/metacpancl-appspec.yaml  view on Meta::CPAN

          type: string
        - description: Default is text/html
          enum: &1
          - text/html
          - text/plain
          - text/x-pod
          - text/x-markdown
          in: query
          name: content-type
          type: string
    /release/:author/:release:
      get:
        description: Release information
        parameters:
        - description: CPAN handle
          in: path
          name: author
          required: true
          type: string
        - description: release, e.g. Moose-123
          in: path
          name: release
          required: true
          type: string
    /release/:distribution:
      get:
        description: Release information
        parameters:
        - description: distribution name
          in: path
          name: distribution
          required: true
          type: string
    /release/_search:
      get:
        description: Search releases
        parameters:
        - description: query ("author:ANDK AND status:latest")
          in: query
          name: q
          required: true
          type: string
        - description: resultset fields
          in: query
          name: fields
          type: string
        - description: how many results
          in: query

examples/metacpancl-appspec.yaml  view on Meta::CPAN

  type: flag
- aliases:
  - v
  name: verbose
  summary: verbose
  type: flag
subcommands:
  GET:
    op: apicall
    subcommands:
      /author/:author:
        options: []
        parameters:
        - name: author
          required: 1
          summary: CPAN handle
          type: string
        summary: Author information
      /distribution/:distribution:
        options: []
        parameters:
        - name: distribution
          required: 1
          summary: distribution name

examples/metacpancl-appspec.yaml  view on Meta::CPAN

          name: q-content-type
          required: ~
          summary: Default is text/html
          type: string
        parameters:
        - name: module
          required: 1
          summary: Module name
          type: string
        summary: Module POD
      /release/:author/:release:
        options: []
        parameters:
        - name: author
          required: 1
          summary: CPAN handle
          type: string
        - name: release
          required: 1
          summary: release, e.g. Moose-123
          type: string
        summary: Release information
      /release/:distribution:
        options: []
        parameters:
        - name: distribution
          required: 1
          summary: distribution name
          type: string
        summary: Release information
      /release/_search:
        options:
        - name: q-q
          required: 1
          summary: query ("author:ANDK AND status:latest")
          type: string
        - name: q-fields
          required: ~
          summary: resultset fields
          type: string
        - name: q-size
          required: ~
          summary: how many results
          type: integer
        parameters: []

examples/metacpancl-openapi.yaml  view on Meta::CPAN

swagger: 2.0
info:
  title: MetaCPAN API
  description: Unofficial MetaCPAN API specification
  version: 3
host: api.metacpan.org
schemes: [https]
basePath: /v0

paths:
  /author/:author:
    get:
      description: Author information
      parameters:
        -
          name: author
          in: path
          type: string
          required: true
          description: CPAN handle

  /distribution/:distribution:
    get:
      description: Distribution information not specific to a version
      parameters:
        -

examples/metacpancl-openapi.yaml  view on Meta::CPAN

    get:
      description: Release information
      parameters:
        -
          name: distribution
          in: path
          type: string
          required: true
          description: distribution name

  /release/:author/:release:
    get:
      description: Release information
      parameters:
        -
          name: author
          in: path
          type: string
          required: true
          description: CPAN handle
        -
          name: release
          in: path
          type: string
          required: true
          description: release, e.g. Moose-123

examples/metacpancl-openapi.yaml  view on Meta::CPAN


  /release/_search:
    get:
      description: Search releases
      parameters:
        -
          name: q
          in: query
          type: string
          required: true
          description: query ("author:ANDK AND status:latest")
        -
          name: fields
          in: query
          type: string
          description: resultset fields
        -
          name: size
          in: query
          type: integer
          description: how many results

examples/pod/githubcl.pod  view on Meta::CPAN


    githubcl GET /feeds

List Feeds.


=head3 GET /gists

    githubcl GET /gists [options]

List the authenticated user's gists or if called a...

Options:

    --q-since    Timestamp in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ.    
                 Only gists updated at or after this time are returned.


=head3 GET /gists/:id

    githubcl GET /gists/:id <id>

examples/pod/githubcl.pod  view on Meta::CPAN

Options:

    --q-since    Timestamp in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ.    
                 Only gists updated at or after this time are returned.


=head3 GET /gists/starred

    githubcl GET /gists/starred [options]

List the authenticated user's starred gists....

Options:

    --q-since    Timestamp in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ.    
                 Only gists updated at or after this time are returned.


=head3 GET /gitignore/templates

    githubcl GET /gitignore/templates

examples/pod/githubcl.pod  view on Meta::CPAN


=head3 GET /issues

    githubcl GET /issues [options]

List issues.

Options:

    --q-filter     *  Issues assigned to you / created by you / mentioning you / you're       
                      subscribed to updates for / All issues the authenticated user can see   
    --q-state      *                                                                          
    --q-labels     *  String list of comma separated Label names. Example - bug,ui,@high.     
    --q-sort       *                                                                          
    --q-direction  *                                                                          
    --q-since         Optional string of a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
                      Only issues updated at or after this time are returned.                 


=head3 GET /legacy/issues/search/:owner/:repository/:state/:keyword

examples/pod/githubcl.pod  view on Meta::CPAN


=head3 GET /orgs/:org/issues

    githubcl GET /orgs/:org/issues [options] <org>

List issues.

Options:

    --q-filter     *  Issues assigned to you / created by you / mentioning you / you're       
                      subscribed to updates for / All issues the authenticated user can see   
    --q-state      *                                                                          
    --q-labels     *  String list of comma separated Label names. Example - bug,ui,@high.     
    --q-sort       *                                                                          
    --q-direction  *                                                                          
    --q-since         Optional string of a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
                      Only issues updated at or after this time are returned.                 

Parameters:

    org  *  Name of organisation.

examples/pod/githubcl.pod  view on Meta::CPAN

    githubcl GET /repos/:owner/:repo/commits [options] <owner> <repo>

List commits on a repository.

Options:

    --q-since     The time should be passed in as UTC in the ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
                  Example: "2012-10-09T23:39:01Z".                                                 
    --q-sha       Sha or branch to start listing commits from.                                     
    --q-path      Only commits containing this file path will be returned.                         
    --q-author    GitHub login, name, or email by which to filter by commit author.                
    --q-until     ISO 8601 Date - Only commits before this date will be returned.                  

Parameters:

    owner  *  Name of repository owner.
    repo   *  Name of repository.      

=head3 GET /repos/:owner/:repo/commits/:ref/status

    githubcl GET /repos/:owner/:repo/commits/:ref/status <owner> <repo> <ref>

examples/pod/githubcl.pod  view on Meta::CPAN


=head3 GET /repos/:owner/:repo/issues

    githubcl GET /repos/:owner/:repo/issues [options] <owner> <repo>

List issues for a repository.

Options:

    --q-filter     *  Issues assigned to you / created by you / mentioning you / you're       
                      subscribed to updates for / All issues the authenticated user can see   
    --q-state      *                                                                          
    --q-labels     *  String list of comma separated Label names. Example - bug,ui,@high.     
    --q-sort       *                                                                          
    --q-direction  *                                                                          
    --q-since         Optional string of a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
                      Only issues updated at or after this time are returned.                 

Parameters:

    owner  *  Name of repository owner.

examples/pod/githubcl.pod  view on Meta::CPAN

Parameters:

    teamId  *  Id of team.                
    owner   *  Name of a repository owner.
    repo    *  Name of a repository.      

=head3 GET /user

    githubcl GET /user

Get the authenticated user.


=head3 GET /user/emails

    githubcl GET /user/emails

List email addresses for a user....


=head3 GET /user/followers

    githubcl GET /user/followers

List the authenticated user's followers...


=head3 GET /user/following

    githubcl GET /user/following

List who the authenticated user is following....


=head3 GET /user/following/:username

    githubcl GET /user/following/:username <username>

Check if you are following a user....

Parameters:

examples/pod/githubcl.pod  view on Meta::CPAN


=head3 GET /user/issues

    githubcl GET /user/issues [options]

List issues.

Options:

    --q-filter     *  Issues assigned to you / created by you / mentioning you / you're       
                      subscribed to updates for / All issues the authenticated user can see   
    --q-state      *                                                                          
    --q-labels     *  String list of comma separated Label names. Example - bug,ui,@high.     
    --q-sort       *                                                                          
    --q-direction  *                                                                          
    --q-since         Optional string of a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
                      Only issues updated at or after this time are returned.                 


=head3 GET /user/keys

examples/pod/githubcl.pod  view on Meta::CPAN

Get a single public key.

Parameters:

    keyId  *  ID of key.

=head3 GET /user/orgs

    githubcl GET /user/orgs

List public and private organizations for the auth...


=head3 GET /user/repos

    githubcl GET /user/repos [options]

List repositories for the authenticated user. Note...

Options:

    --q-type    


=head3 GET /user/starred

    githubcl GET /user/starred [options]

List repositories being starred by the authenticat...

Options:

    --q-direction    Ignored without 'sort' parameter.
    --q-sort                                          


=head3 GET /user/starred/:owner/:repo

    githubcl GET /user/starred/:owner/:repo <owner> <repo>

examples/pod/githubcl.pod  view on Meta::CPAN


Parameters:

    owner  *  Name of a repository owner.
    repo   *  Name of a repository.      

=head3 GET /user/subscriptions

    githubcl GET /user/subscriptions

List repositories being watched by the authenticat...


=head3 GET /user/subscriptions/:owner/:repo

    githubcl GET /user/subscriptions/:owner/:repo <owner> <repo>

Check if you are watching a repository....

Parameters:

examples/pod/githubcl.pod  view on Meta::CPAN

Get a single user.

Parameters:

    username  *  Name of user.

=head3 GET /users/:username/events

    githubcl GET /users/:username/events <username>

If you are authenticated as the given user, you wi...

Parameters:

    username  *  Name of user.

=head3 GET /users/:username/events/orgs/:org

    githubcl GET /users/:username/events/orgs/:org <username> <org>

This is the user's organization dashboard. You mus...

examples/pod/githubcl.pod  view on Meta::CPAN

Edit team.

Parameters:

    teamId  *  Id of team.

=head3 PATCH /user

    githubcl PATCH /user

Update the authenticated user.


=head3  POST

    githubcl  POST <subcommands>

POST call


=head3 POST /gists

examples/pod/githubcl.pod  view on Meta::CPAN


    githubcl POST /markdown/raw

Render a Markdown document in raw mode...


=head3 POST /orgs/:org/repos

    githubcl POST /orgs/:org/repos <org>

Create a new repository for the authenticated user...

Parameters:

    org  *  Name of organisation.

=head3 POST /orgs/:org/teams

    githubcl POST /orgs/:org/teams <org>

Create team.

examples/pod/githubcl.pod  view on Meta::CPAN


    githubcl POST /user/keys

Create a public key.


=head3 POST /user/repos

    githubcl POST /user/repos

Create a new repository for the authenticated user...


=head3  PUT

    githubcl  PUT <subcommands>

PUT call


=head3 PUT /gists/:id/star

examples/pod/githubcl.pod  view on Meta::CPAN


Parameters:

    teamId    *  Id of team.      
    username  *  Name of a member.

=head3 PUT /teams/:teamId/repos/:org/:repo

    githubcl PUT /teams/:teamId/repos/:org/:repo <teamId> <org> <repo>

In order to add a repository to a team, the authen...

Parameters:

    teamId  *  Id of team.            
    org     *  Name of a organization.
    repo    *  Name of a repository.  

=head3 PUT /user/following/:username

    githubcl PUT /user/following/:username <username>

examples/pod/metacpancl.pod  view on Meta::CPAN


=head2 SUBCOMMANDS

=head3  GET

    metacpancl  GET <subcommands>

GET call


=head3 GET /author/:author

    metacpancl GET /author/:author <author>

Author information

Parameters:

    author  *  CPAN handle

=head3 GET /distribution/:distribution

    metacpancl GET /distribution/:distribution <distribution>

Distribution information not specific to a version...

Parameters:

    distribution  *  distribution name

examples/pod/metacpancl.pod  view on Meta::CPAN

Module POD

Options:

    --q-content-type    Default is text/html

Parameters:

    module  *  Module name

=head3 GET /release/:author/:release

    metacpancl GET /release/:author/:release <author> <release>

Release information

Parameters:

    author   *  CPAN handle            
    release  *  release, e.g. Moose-123

=head3 GET /release/:distribution

    metacpancl GET /release/:distribution <distribution>

Release information

Parameters:

    distribution  *  distribution name

=head3 GET /release/_search

    metacpancl GET /release/_search [options]

Search releases

Options:

    --q-q       *  query ("author:ANDK AND status:latest")
    --q-fields     resultset fields                       
    --q-size       how many results                       


=head3  POST

    metacpancl  POST <subcommands>

POST call

examples/zsh/_githubcl  view on Meta::CPAN

                # ---- Command: GET
                _arguments -s -C \
                    '1: :->cmd1' \
                    '2: :->cmd2' \
                    '*: :->args' \
                    && ret=0


                case $state in
                cmd2)
                    _alternative 'args:cmd3:((/emojis\:"Lists all the emojis available to use on GitHub...." /events\:"List public events." /feeds\:"List Feeds." /gists\:"List the authenticated user'"'"'s gists or if called a..." /gists/\\:id\:"Get a...
                ;;

                args)
                    case $line[2] in
                    /emojis)

                        # ---- Command: GET /emojis
                        _arguments -s -C \
                            '1: :->cmd1' \
                            '2: :->cmd2' \

examples/zsh/_githubcl  view on Meta::CPAN

                            '1: :->cmd1' \
                            '2: :->cmd2' \
                            '--data-file[File with data for POST/PUT/PATCH/DELETE requests]:data-file:_files' \
                            '--debug[debug]' \
                            '-d[debug]' \
                            '--verbose[verbose]' \
                            '-v[verbose]' \
                            '--help[Show command help]' \
                            '-h[Show command help]' \
                            '--q-filter[Issues assigned to you / created by you / mentioning you / you'"'"'re
subscribed to updates for / All issues the authenticated user can see
]:q-filter:("assigned" "created" "mentioned" "subscribed" "all")' \
                            '--q-state[]:q-state:("open" "closed")' \
                            '--q-labels[String list of comma separated Label names. Example - bug,ui,@high.]:q-labels' \
                            '--q-sort[]:q-sort:("created" "updated" "comments")' \
                            '--q-direction[]:q-direction:("asc" "desc")' \
                            '--q-since[Optional string of a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
Only issues updated at or after this time are returned.
]:q-since' \
                            && ret=0

examples/zsh/_githubcl  view on Meta::CPAN

                            '2: :->cmd2' \
                            '3: :->org' \
                            '--data-file[File with data for POST/PUT/PATCH/DELETE requests]:data-file:_files' \
                            '--debug[debug]' \
                            '-d[debug]' \
                            '--verbose[verbose]' \
                            '-v[verbose]' \
                            '--help[Show command help]' \
                            '-h[Show command help]' \
                            '--q-filter[Issues assigned to you / created by you / mentioning you / you'"'"'re
subscribed to updates for / All issues the authenticated user can see
]:q-filter:("assigned" "created" "mentioned" "subscribed" "all")' \
                            '--q-state[]:q-state:("open" "closed")' \
                            '--q-labels[String list of comma separated Label names. Example - bug,ui,@high.]:q-labels' \
                            '--q-sort[]:q-sort:("created" "updated" "comments")' \
                            '--q-direction[]:q-direction:("asc" "desc")' \
                            '--q-since[Optional string of a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
Only issues updated at or after this time are returned.
]:q-since' \
                            && ret=0

examples/zsh/_githubcl  view on Meta::CPAN

                            '-d[debug]' \
                            '--verbose[verbose]' \
                            '-v[verbose]' \
                            '--help[Show command help]' \
                            '-h[Show command help]' \
                            '--q-since[The time should be passed in as UTC in the ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
Example: "2012-10-09T23:39:01Z".
]:q-since' \
                            '--q-sha[Sha or branch to start listing commits from.]:q-sha' \
                            '--q-path[Only commits containing this file path will be returned.]:q-path' \
                            '--q-author[GitHub login, name, or email by which to filter by commit author.]:q-author' \
                            '--q-until[ISO 8601 Date - Only commits before this date will be returned.]:q-until' \
                            && ret=0

                        case $state in
                        owner)

                        ;;
                        repo)

                        ;;

examples/zsh/_githubcl  view on Meta::CPAN

                            '3: :->owner' \
                            '4: :->repo' \
                            '--data-file[File with data for POST/PUT/PATCH/DELETE requests]:data-file:_files' \
                            '--debug[debug]' \
                            '-d[debug]' \
                            '--verbose[verbose]' \
                            '-v[verbose]' \
                            '--help[Show command help]' \
                            '-h[Show command help]' \
                            '--q-filter[Issues assigned to you / created by you / mentioning you / you'"'"'re
subscribed to updates for / All issues the authenticated user can see
]:q-filter:("assigned" "created" "mentioned" "subscribed" "all")' \
                            '--q-state[]:q-state:("open" "closed")' \
                            '--q-labels[String list of comma separated Label names. Example - bug,ui,@high.]:q-labels' \
                            '--q-sort[]:q-sort:("created" "updated" "comments")' \
                            '--q-direction[]:q-direction:("asc" "desc")' \
                            '--q-since[Optional string of a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
Only issues updated at or after this time are returned.
]:q-since' \
                            && ret=0

examples/zsh/_githubcl  view on Meta::CPAN

                            '1: :->cmd1' \
                            '2: :->cmd2' \
                            '--data-file[File with data for POST/PUT/PATCH/DELETE requests]:data-file:_files' \
                            '--debug[debug]' \
                            '-d[debug]' \
                            '--verbose[verbose]' \
                            '-v[verbose]' \
                            '--help[Show command help]' \
                            '-h[Show command help]' \
                            '--q-filter[Issues assigned to you / created by you / mentioning you / you'"'"'re
subscribed to updates for / All issues the authenticated user can see
]:q-filter:("assigned" "created" "mentioned" "subscribed" "all")' \
                            '--q-state[]:q-state:("open" "closed")' \
                            '--q-labels[String list of comma separated Label names. Example - bug,ui,@high.]:q-labels' \
                            '--q-sort[]:q-sort:("created" "updated" "comments")' \
                            '--q-direction[]:q-direction:("asc" "desc")' \
                            '--q-since[Optional string of a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.
Only issues updated at or after this time are returned.
]:q-since' \
                            && ret=0

examples/zsh/_githubcl  view on Meta::CPAN

                # ---- Command: PATCH
                _arguments -s -C \
                    '1: :->cmd1' \
                    '2: :->cmd2' \
                    '*: :->args' \
                    && ret=0


                case $state in
                cmd2)
                    _alternative 'args:cmd3:((/gists/\\:id\:"Edit a gist." /gists/\\:id/comments/\\:commentId\:"Edit a comment." /notifications/threads/\\:id\:"Mark a thread as read" /orgs/\\:org\:"Edit an Organization." /repos/\\:owner/\\:repo\:"Edi...
                ;;

                args)
                    case $line[2] in
                    /gists/:id)

                        # ---- Command: PATCH /gists/:id
                        _arguments -s -C \
                            '1: :->cmd1' \
                            '2: :->cmd2' \

examples/zsh/_githubcl  view on Meta::CPAN

                # ---- Command: POST
                _arguments -s -C \
                    '1: :->cmd1' \
                    '2: :->cmd2' \
                    '*: :->args' \
                    && ret=0


                case $state in
                cmd2)
                    _alternative 'args:cmd3:((/gists\:"Create a gist." /gists/\\:id/comments\:"Create a commen" /gists/\\:id/forks\:"Fork a gist." /markdown\:"Render an arbitrary Markdown document..." /markdown/raw\:"Render a Markdown document in raw...
                ;;

                args)
                    case $line[2] in
                    /gists)

                        # ---- Command: POST /gists
                        _arguments -s -C \
                            '1: :->cmd1' \
                            '2: :->cmd2' \

examples/zsh/_githubcl  view on Meta::CPAN

                # ---- Command: PUT
                _arguments -s -C \
                    '1: :->cmd1' \
                    '2: :->cmd2' \
                    '*: :->args' \
                    && ret=0


                case $state in
                cmd2)
                    _alternative 'args:cmd3:((/gists/\\:id/star\:"Star a gist." /notifications\:"Mark as read." /notifications/threads/\\:id/subscription\:"Set a Thread Subscription." /orgs/\\:org/public_members/\\:username\:"Publicize a user'"'"'s m...
                ;;

                args)
                    case $line[2] in
                    /gists/:id/star)

                        # ---- Command: PUT /gists/:id/star
                        _arguments -s -C \
                            '1: :->cmd1' \
                            '2: :->cmd2' \

examples/zsh/_metacpancl  view on Meta::CPAN

                # ---- Command: GET
                _arguments -s -C \
                    '1: :->cmd1' \
                    '2: :->cmd2' \
                    '*: :->args' \
                    && ret=0


                case $state in
                cmd2)
                    _alternative 'args:cmd3:((/author/\\:author\:"Author information" /distribution/\\:distribution\:"Distribution information not specific to a version..." /module/\\:module\:"Module information" /pod/\\:module\:"Module POD" /release...
                ;;

                args)
                    case $line[2] in
                    /author/:author)

                        # ---- Command: GET /author/:author
                        _arguments -s -C \
                            '1: :->cmd1' \
                            '2: :->cmd2' \
                            '3: :->author' \
                            '--data-file[File with data for POST/PUT/PATCH/DELETE requests]:data-file:_files' \
                            '--debug[debug]' \
                            '-d[debug]' \
                            '--verbose[verbose]' \
                            '-v[verbose]' \
                            '--help[Show command help]' \
                            '-h[Show command help]' \
                            && ret=0

                        case $state in
                        author)

                        ;;
                        esac

                    ;;
                    /distribution/:distribution)

                        # ---- Command: GET /distribution/:distribution
                        _arguments -s -C \
                            '1: :->cmd1' \

examples/zsh/_metacpancl  view on Meta::CPAN

                            '--q-content-type[Default is text/html]:q-content-type:("text/html" "text/plain" "text/x-pod" "text/x-markdown")' \
                            && ret=0

                        case $state in
                        module)

                        ;;
                        esac

                    ;;
                    /release/:author/:release)

                        # ---- Command: GET /release/:author/:release
                        _arguments -s -C \
                            '1: :->cmd1' \
                            '2: :->cmd2' \
                            '3: :->author' \
                            '4: :->release' \
                            '--data-file[File with data for POST/PUT/PATCH/DELETE requests]:data-file:_files' \
                            '--debug[debug]' \
                            '-d[debug]' \
                            '--verbose[verbose]' \
                            '-v[verbose]' \
                            '--help[Show command help]' \
                            '-h[Show command help]' \
                            && ret=0

                        case $state in
                        author)

                        ;;
                        release)

                        ;;
                        esac

                    ;;
                    /release/:distribution)

examples/zsh/_metacpancl  view on Meta::CPAN

                        _arguments -s -C \
                            '1: :->cmd1' \
                            '2: :->cmd2' \
                            '--data-file[File with data for POST/PUT/PATCH/DELETE requests]:data-file:_files' \
                            '--debug[debug]' \
                            '-d[debug]' \
                            '--verbose[verbose]' \
                            '-v[verbose]' \
                            '--help[Show command help]' \
                            '-h[Show command help]' \
                            '--q-q[query ("author:ANDK AND status:latest")]:q-q' \
                            '--q-fields[resultset fields]:q-fields' \
                            '--q-size[how many results]:q-size' \
                            && ret=0


                    ;;
                    esac

                ;;

examples/zsh/_metacpancl  view on Meta::CPAN

                        _arguments -s -C \
                            '1: :->cmd1' \
                            '2: :->cmd2' \
                            '3: :->cmd3' \
                            '*: :->args' \
                            && ret=0


                        case $state in
                        cmd3)
                            _alternative 'args:cmd4:((/author/\\:author /distribution/\\:distribution /module/\\:module /pod/\\:module /release/\\:author/\\:release /release/\\:distribution /release/_search))'
                        ;;

                        args)
                            case $line[3] in
                            /author/:author)

                                # ---- Command: help GET /author/:author
                                _arguments -s -C \
                                    '1: :->cmd1' \
                                    '2: :->cmd2' \
                                    '3: :->cmd3' \
                                    '--data-file[File with data for POST/PUT/PATCH/DELETE requests]:data-file:_files' \
                                    '--debug[debug]' \
                                    '-d[debug]' \
                                    '--verbose[verbose]' \
                                    '-v[verbose]' \
                                    '--help[Show command help]' \

examples/zsh/_metacpancl  view on Meta::CPAN

                                    '-d[debug]' \
                                    '--verbose[verbose]' \
                                    '-v[verbose]' \
                                    '--help[Show command help]' \
                                    '-h[Show command help]' \
                                    '--all[]' \
                                    && ret=0


                            ;;
                            /release/:author/:release)

                                # ---- Command: help GET /release/:author/:release
                                _arguments -s -C \
                                    '1: :->cmd1' \
                                    '2: :->cmd2' \
                                    '3: :->cmd3' \
                                    '--data-file[File with data for POST/PUT/PATCH/DELETE requests]:data-file:_files' \
                                    '--debug[debug]' \
                                    '-d[debug]' \
                                    '--verbose[verbose]' \
                                    '-v[verbose]' \
                                    '--help[Show command help]' \

lib/API/CLI.pm  view on Meta::CPAN

use HTTP::Request;
use App::Spec;
use JSON::XS;
use API::CLI::Request;

use Moo;

has dir => ( is => 'ro' );
has openapi => ( is => 'ro' );

sub add_auth {
    my ($self, $req) = @_;
    my $appconfig = $self->read_appconfig;
    my $token = $appconfig->{token};
    $req->header(Authorization => "Bearer $token");
}

sub read_appconfig {
    my ($self) = @_;
    my $dir = $self->dir;
    my $appconfig = YAML::XS::LoadFile("$dir/config.yaml");

lib/API/CLI.pm  view on Meta::CPAN


    my $REQ = API::CLI::Request->from_openapi(
        openapi => $run->spec->openapi,
        method => $method,
        path => $path,
        options => $opt,
        parameters => $params,
        verbose => $opt->{verbose} ? 1 : 0,
    );

    $self->add_auth($REQ);

    if ($method =~ m/^(POST|PUT|PATCH|DELETE)$/) {
        my $data_file = $opt->{'data-file'};
        if (defined $data_file) {
            open my $fh, '<', $data_file or die "Could not open '$data_file': $!";
            my $data = do { local $/; <$fh> };
            close $fh;
            $REQ->content($data);
        }
    }

lib/API/CLI.pm  view on Meta::CPAN


API::CLI - Generic Framework for REST API Command Line Clients

=head1 SYNOPSIS

    use API::CLI::App::Spec;

    package API::CLI::MetaCPAN;
    use base 'API::CLI';

    sub add_auth {
    }

    package main;

    my $appspec_file = "$Bin/../metacpancl-appspec.yaml";
    my $spec = API::CLI::App::Spec->read($appspec_file);
    my $runner = App::Spec::Run->new(
        spec => $spec,
        cmd => API::CLI::MetaCPAN->new(
            dir => "$ENV{HOME}/.githubcl",

lib/API/CLI.pm  view on Meta::CPAN


Bash users: Note that completion for options and parameters currently does not
work.



=head1 METHODS

=over 4

=item add_auth

=item apicall

=item dir

=item read_appconfig

=item openapi

=back



( run in 1.532 second using v1.01-cache-2.11-cpan-5c0b1e786e0 )