README

WebService-GitHub

A wrapper for the GitHub REST API.

SYNOPSIS

use WebService::GitHub;

my $gh = WebService::GitHub.new(
    access-token => 'my-access-token'
);

my $res = $gh.request('/user');
say $res.data.name;

TODO

Patches welcome

  • Handle Errors

  • Auto Pagination

  • API Throttle

Setup

Authentication

One can order the library to authenticate using one of three different ways. Depending on which way you choose you need to pass a different set of arguments to the constructor:

  • auth_login & auth_token OAuth token authenticaation.

  • pat Personal Access Token authentication.

  • app-auth and install-id Application authentication. First construct a WebService::GitHub::AppAuth passing a pem-file or a pem string to its constructor. then pass it as app-auth to the WebService::GitHub constructor.

Other constructor arguments

  • endpoint Useful for GitHub Enterprise. Default to https://api.github.com

  • per_page from Doc, default to 30, max to 100.

  • jsonp_callback JSONP Callback

  • time-zone UTC by default, Doc

  • with Builds the object with a particular role

    my $gh = WebService::GitHub.new(
        with => ('Debug')
    );

Response

  • is-success Did it succeed?

  • raw HTTP::Response instance

  • data JSON decoded data

  • header(Str $field) Get header of HTTP Response

  • first-page-url, prev-page-url, next-page-url, last-page-url Parsed from the Link header, Doc

  • x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset Rate Limit

WebService::GitHub v0.2.2

GitHub API

Authors

  • Fayland Lam
  • Khalid Mohamed Elborai
  • Patrick Bรถker

License

Artistic-2.0

Dependencies

MIME::Base64:ver<1.2.3>:auth<zef:raku-community-modules>URI:ver<0.3.5>HTTP::UserAgent:ver<1.1.51>:auth<github:sergot>JSON::Fast:ver<0.17>:auth<cpan:TIMOTIMO>Cache::LRU:ver<0.1.0>Subset::Helper:ver<1.001002>:auth<zef:raku-community-modules>OO::Monitors:ver<1.1.1>JSON::JWT:ver<1.1.1>:auth<zef:raku-community-modules>

Provides

  • WebService::GitHub
  • WebService::GitHub::Actions::Artifacts
  • WebService::GitHub::Actions::Permissions
  • WebService::GitHub::Actions::Secrets
  • WebService::GitHub::Actions::SelfHostedRunnerGroups
  • WebService::GitHub::Actions::SelfHostedRunners
  • WebService::GitHub::Actions::WorkflowJobs
  • WebService::GitHub::Actions::WorkflowRuns
  • WebService::GitHub::Actions::Workflows
  • WebService::GitHub::Activity::Events
  • WebService::GitHub::Activity::Feeds
  • WebService::GitHub::Activity::Notifications
  • WebService::GitHub::Activity::Starring
  • WebService::GitHub::Activity::Watching
  • WebService::GitHub::AppAuth
  • WebService::GitHub::Apps
  • WebService::GitHub::Apps::Installations
  • WebService::GitHub::Apps::Marketplace
  • WebService::GitHub::Apps::OauthApplications
  • WebService::GitHub::Apps::Webhooks
  • WebService::GitHub::Billing
  • WebService::GitHub::Checks::Runs
  • WebService::GitHub::Checks::Suites
  • WebService::GitHub::CodeScanning
  • WebService::GitHub::CodesOfConduct
  • WebService::GitHub::Emojis
  • WebService::GitHub::EnterpriseAdmin::Actions
  • WebService::GitHub::EnterpriseAdmin::AuditLog
  • WebService::GitHub::EnterpriseAdmin::Billing
  • WebService::GitHub::EnterpriseAdmin::Scim
  • WebService::GitHub::Gists
  • WebService::GitHub::Gists::Comments
  • WebService::GitHub::Git::Blobs
  • WebService::GitHub::Git::Commits
  • WebService::GitHub::Git::Refs
  • WebService::GitHub::Git::Tags
  • WebService::GitHub::Git::Trees
  • WebService::GitHub::Gitignore
  • WebService::GitHub::GraphQL
  • WebService::GitHub::Interactions::Orgs
  • WebService::GitHub::Interactions::Repos
  • WebService::GitHub::Interactions::User
  • WebService::GitHub::Issues
  • WebService::GitHub::Issues::Assignees
  • WebService::GitHub::Issues::Comments
  • WebService::GitHub::Issues::Events
  • WebService::GitHub::Issues::Labels
  • WebService::GitHub::Issues::Milestones
  • WebService::GitHub::Issues::Timeline
  • WebService::GitHub::Licenses
  • WebService::GitHub::Markdown
  • WebService::GitHub::Meta
  • WebService::GitHub::Migrations::Orgs
  • WebService::GitHub::Migrations::SourceImports
  • WebService::GitHub::Migrations::Users
  • WebService::GitHub::OauthAuthorizations
  • WebService::GitHub::Orgs
  • WebService::GitHub::Orgs::Blocking
  • WebService::GitHub::Orgs::Members
  • WebService::GitHub::Orgs::OutsideCollaborators
  • WebService::GitHub::Orgs::Webhooks
  • WebService::GitHub::Packages
  • WebService::GitHub::Projects
  • WebService::GitHub::Projects::Cards
  • WebService::GitHub::Projects::Collaborators
  • WebService::GitHub::Projects::Columns
  • WebService::GitHub::Pulls
  • WebService::GitHub::Pulls::Comments
  • WebService::GitHub::Pulls::ReviewRequests
  • WebService::GitHub::Pulls::Reviews
  • WebService::GitHub::RateLimit
  • WebService::GitHub::Reactions
  • WebService::GitHub::Repos
  • WebService::GitHub::Repos::Branches
  • WebService::GitHub::Repos::Collaborators
  • WebService::GitHub::Repos::Comments
  • WebService::GitHub::Repos::Commits
  • WebService::GitHub::Repos::Community
  • WebService::GitHub::Repos::Contents
  • WebService::GitHub::Repos::Deployments
  • WebService::GitHub::Repos::Environments
  • WebService::GitHub::Repos::Forks
  • WebService::GitHub::Repos::Invitations
  • WebService::GitHub::Repos::Keys
  • WebService::GitHub::Repos::Merging
  • WebService::GitHub::Repos::Pages
  • WebService::GitHub::Repos::Releases
  • WebService::GitHub::Repos::Statistics
  • WebService::GitHub::Repos::Statuses
  • WebService::GitHub::Repos::Traffic
  • WebService::GitHub::Repos::Webhooks
  • WebService::GitHub::Response
  • WebService::GitHub::Role
  • WebService::GitHub::Role::CustomUserAgent
  • WebService::GitHub::Role::Debug
  • WebService::GitHub::Scim
  • WebService::GitHub::Search
  • WebService::GitHub::SecretScanning
  • WebService::GitHub::Teams
  • WebService::GitHub::Teams::DiscussionComments
  • WebService::GitHub::Teams::Discussions
  • WebService::GitHub::Teams::Members
  • WebService::GitHub::Teams::TeamSync
  • WebService::GitHub::Users
  • WebService::GitHub::Users::Blocking
  • WebService::GitHub::Users::Emails
  • WebService::GitHub::Users::Followers
  • WebService::GitHub::Users::GpgKeys
  • WebService::GitHub::Users::Keys

Documentation

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.

Built with Podlite โ€” the markup and publishing tools behind this site.