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::count
api::delete
api::endpoint
api::extract_header_value
api::extract_rel
api::extract_rels
api::filter
api::get
api::header
api::header_value
api::last
api::next
api::paginate
api::patch
api::post
api::post200
api::post202
api::put
api::request
api::status
api::version
auth::am_following
auth::block
auth::blocked_users
auth::emails
auth::followers
auth::following
auth::have_blocked
auth::orgs
auth::public_emails
auth::public_timeline
auth::public_timeline_url
auth::repos
auth::starred_gists
auth::starred_repos
auth::unblock
commit_comment::create
commit_comment::delete
commit_comment::edit
commit_comment::get
commit_comment::path
commit_comment::position
commit_comment::ref
commit_comment::text
events::network
events::org
events::public
events::repo
events::user_org_received_events
events::user_public_received
events::user_received
gist::clone
gist::comments
gist::commits
gist::create
gist::delete
gist::describe
gist::download
gist::edit
gist::files
gist::fork
gist::forks
gist::get
gist::is_starred
gist::owner
gist::public
gist::star
gist::unstar
gist_comment::create
gist_comment::delete
gist_comment::edit
gist_comment::get
gist_comment::text
gist_comment::user
github::conducts
github::gitignores
github::git_servers
github::hooks
github::importers
github::orgs
github::pages
github::password_auth
github::repos
github::sha
github::timeline
github::timeline_url
github::users
org::block
org::blocked_users
org::company
org::describe
org::edit
org::email
org::events
org::get
org::is_blocked
org::location
org::name
org::projects
org::repos
org::unblock
org::url
project::create
project::creator
project::delete
project::edit
project::get
project::name
project::state
project::text
repo::by_id
repo::comments
repo::commits
repo::conduct
repo::create
repo::delete
repo::events
repo::fork
repo::forks
repo::is_starred
repo::projects
repo::readme
repo::star
repo::stargazers
repo::tags
repo::topics
repo::unstar
search::code
search::commits
search::issues
search::labels
search::repositories
search::topics
search::users
user::follow
user::followers
user::following
user::gists
user::is_following
user::keys
user::org_received_events
user::public_received_events
user::received_events
user::repos
user::starred_repos
user::timeline
user::timeline_url
user::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.