A client for the GitHub REST API v3, written in Bash.
A reasonably sane GNU environment is assumed to be at hand. More specifically, you need:
- Bash (of course)
- GNU Coreutils
- GNU grep, sed, awk
- curl
- the jq command-line JSON processor
- Make
To run the test suite, you will need Sam Stephenson's Bash Automated Testing System.
To check for proper programming, you will need ShellCheck.
The library supports both basic and OAuth authentication.
Basic authentication is supported through the environment variable GITTY_API_BASIC_AUTH, which must contain the username.
OAuth authentication, on the other hand, is supported through the environment variable GITTY_API_OAUTH_TOKEN.
All API requests MUST include a valid User-Agent header. The library supports a custom header through the environment variable GITTY_USER_AGENT.
The active links represent implemented parts of the full API.
-
Activity
-
Git Data
- Blobs
- Commits
- References
- Tags
- Trees
-
GitHub Apps
- Installations
- GitHub Marketplace
- Permissions
- Available Endpoints
-
Issues
- Assignees
- Comments
- Events
- Labels
- Milestones
- Timeline
-
Migration
- Migrations
- Source Imports
-
- Blocking Users
- Members
- Outside Collaborators
- Webhooks
-
- Cards
- Collaborators
- Columns
-
Pull Requests
- Reviews
- Review Comments
- Review Requests
-
Reactions
- Commit Comment
- Issue
- Issue Comment
- Pull Request Review Comment
- Team Discussion
- Team Discussion Comment
-
Repositories
- Branches
- Collaborators
- Comments
- Commits
- Community
- Contents
- Deploy Keys
- Deployments
Downloads(deprecated)- Forks
- Invitations
- Merging
- Pages
- Releases
- Statistics
- Statuses
- Traffic
- Webhooks
-
Teams
- Discussions
- Discussion comments
- Members
-
SCIM
-
Users
- Blocking Users
- Emails
- Followers
- Git SSH Keys
- GPG Keys
api::countapi::deleteapi::endpointapi::extract_header_valueapi::extract_relapi::extract_relsapi::filterapi::getapi::headerapi::header_valueapi::lastapi::nextapi::paginateapi::patchapi::postapi::post200api::post202api::putapi::requestapi::statusapi::version
auth::am_followingauth::blockauth::blocked_usersauth::emailsauth::followersauth::followingauth::have_blockedauth::orgsauth::public_emailsauth::public_timelineauth::public_timeline_urlauth::reposauth::starred_gistsauth::starred_reposauth::unblock
commit_comment::createcommit_comment::deletecommit_comment::editcommit_comment::getcommit_comment::pathcommit_comment::positioncommit_comment::refcommit_comment::text
events::networkevents::orgevents::publicevents::repoevents::user_org_received_eventsevents::user_public_receivedevents::user_received
gist::clonegist::commentsgist::commitsgist::creategist::deletegist::describegist::downloadgist::editgist::filesgist::forkgist::forksgist::getgist::is_starredgist::ownergist::publicgist::stargist::unstar
gist_comment::creategist_comment::deletegist_comment::editgist_comment::getgist_comment::textgist_comment::user
github::conductsgithub::gitignoresgithub::git_serversgithub::hooksgithub::importersgithub::orgsgithub::pagesgithub::password_authgithub::reposgithub::shagithub::timelinegithub::timeline_urlgithub::users
org::blockorg::blocked_usersorg::companyorg::describeorg::editorg::emailorg::eventsorg::getorg::is_blockedorg::locationorg::nameorg::projectsorg::reposorg::unblockorg::url
project::createproject::creatorproject::deleteproject::editproject::getproject::nameproject::stateproject::text
repo::by_idrepo::commentsrepo::commitsrepo::conductrepo::createrepo::deleterepo::eventsrepo::forkrepo::forksrepo::is_starredrepo::projectsrepo::readmerepo::starrepo::stargazersrepo::tagsrepo::topicsrepo::unstar
search::codesearch::commitssearch::issuessearch::labelssearch::repositoriessearch::topicssearch::users
user::followuser::followersuser::followinguser::gistsuser::is_followinguser::keysuser::org_received_eventsuser::public_received_eventsuser::received_eventsuser::reposuser::starred_reposuser::timelineuser::timeline_urluser::unfollow
Get the number of result pages.
Delete a resouce.
Get API root endpoint.
Extract a given value from the HTTP headers.
Get the Link header values. Get the link relation for the given page of results.
Get the Link header values.
Filter JSON content.
Retrieve a resource.
Get the HTTP headers. Extract a given value from the HTTP headers.
Extract a given value from the HTTP headers.
Get the link relation for the last page of results.
Get the link relation for the next page of results.
Get paginated items.
Update a resource with partial JSON data.
Create a resource. Specialized POST method that expects a 200 status code. Create a resource in an asynchronous fashion.
Specialized POST method that expects a 200 status code.
Create a resource in an asynchronous fashion.
Replace a resource or a collection.
Make a generic HTTP request.
Get the HTTP status code.
Get API version.
Check if the authorized user follows another.
Block a user. List the users the authenticated user has blocked on her personal account.
List the users the authenticated user has blocked on her personal account.
List email addresses for the authenticated user.
List followers of the authenticated user.
List who the authenticated user is following.
Check whether the authorized user has blocked another user.
List all the organizations for the authenticated user.
List public email addresses for the authenticated user.
Get the public timeline for the authenticated user, in Atom format. Get the public timeline URI for the authenticated user.
Get the public timeline URI for the authenticated user.
List all the repositories for the authenticated user.
List all the starred gists for the authenticated user.
List repositories being starred by the specified user.
Unblock a user.
List comments for a commit.
Create a commit comment.
Delete a commit comment.
Update a commit comment.
Get a single commit comment.
Get the path of a single commit comment.
Get the position of a single commit comment.
Get the commit ID of a single commit comment.
Get the text of a single commit comment.
Get the name of an individual code of conduct.
Get the text of an individual code of conduct.
Get the url of an individual code of conduct.
Add email address(es).
Delete email address(es).
Toggle primary email visibility.
Lists all the emojis available to use on GitHub.
List public events for a network of repositories
List public organization events.
List public events IDs.
List repository events IDs.
List organization events for the authenticated user.
List public events for a user.
List events received by the authenticated user.
Download gist files.
List comments on a gist.
List gist commits.
Create a gist.
Delete a gist.
Describe a gist.
Download gist files.
Edit a gist.
List gist files.
Fork a gist. List gist forks.
List gist forks.
Get a single gist.
Check if a gist is starred.
Get the a gist's owner.
List all public gists.
Star a gist.
Unstar a gist.
Create a comment on a gist.
Delete a comment on a gist.
Edit a comment on a gist.
Get a single comment on a gist.
Get the text of a single comment on a gist.
Get the user of a single comment on a gist.
List all Codes of Conduct.
List all .gitignore templates available to pass as an option when creating a
List all IP addresses (in CIDR format) specifying the Git servers for
Get a list of IP addresses in CIDR format specifying the addresses that
Get a list of IP addresses in CIDR format specifying the addresses that
List all organizations.
List all IP addresses (in CIDR format) specifying the A records for GitHub
Tell whether authentication with username and password is supported.
List all public repositories.
Get the currently-deployed SHA of github-services.
Get the GitHub global public timeline, in Atom format. Get the GitHub global public timeline URI.
Get the GitHub global public timeline URI.
List all users, in the order that they signed up on GitHub.
Get all gitignore templates.
Get a gitignore template.
Get the description of a method in Gitty.
List all methods for a given module in Gitty.
List all modules in Gitty.
Build a JSON array from argv.
Get all commonly used licenses.
Get all commonly used licenses. Get a license. Get the license for a repository.
Get the license for a repository.
Render an arbitrary Markdown document from a file.
Render an arbitrary Markdown document from stdin.
Render an arbitrary Markdown document from a string (private method). Render an arbitrary Markdown document from a string.
Get GitHub meta information.
Get Octocat.
GitHub API Root.
Get the Zen of GitHub
List public events for a network of repositories
Block a user. List the users blocked by an organization.
List the users blocked by an organization.
Get an organization company.
Get an organization description.
Edit an organization.
Get an organization email.
List public organization events.
Get an organization.
Check whether a user is blocked from an organization.
Get an organization location.
Get an organization name.
List organization projects.
List organization repositories.
Unblock a user.
Get an organization url.
Get the content of a file.
List contents of a directory or the name of file (similar to the ls command).
Return the type of a path.
Create a project.
Get a project creator.
Delete a project.
Edit a project.
Get a project.
Get a project name.
Get a project state.
Get a project text.
Get rate limit status for the authenticated user.
Get repository by ID (undocumented).
List commit comments for a repository.
List commits on a repository.
Get a repository's code of conduct.
Create a new repository for the authenticated user.
Delete a repository.
List repository events IDs.
Fork a repository. List forks for a repository.
List forks for a repository.
Check if a gist is starred.
List repository projects.
Return the preferred README for a repository.
Star a repository. List Stargazers for a repository.
List Stargazers for a repository.
List tags for a repository.
List all topics for a repository.
Unstar a repository.
List public events IDs.
Find file contents via various criteria.
Find commits via various criteria.
Find issues by state and keyword.
Find labels in a repository with names or descriptions that match search
Find repositories via various criteria.
Find topics via various criteria.
Find users via various criteria.
Follow a user. List followers of the specified user. List who the specified user is following.
List followers of the specified user.
List who the specified user is following.
List public gists for the specified user.
Check if the specified user follows another.
List the verified public keys for the specified user.
List organization events for the authenticated user.
List public events for a user.
List events received by the authenticated user.
List public repositories for the specified user.
List repositories being starred by the specified user.
Get the public timeline for the specified user, in Atom format. Get the public timeline URI for the specified user.
Get the public timeline URI for the specified user.
Unfollow a user.