Awesome
Gitty
A client for the GitHub REST API v3, written in Bash.
Installation
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.
Configuration
Authentication
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
.
User agent
All API requests MUST include a valid User-Agent
header. The library supports a custom header through the environment variable GITTY_USER_AGENT
.
Similar Projects
Implemented Parts
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 Reference
api
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
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
commit_comment
commit_comment::create
commit_comment::delete
commit_comment::edit
commit_comment::get
commit_comment::path
commit_comment::position
commit_comment::ref
commit_comment::text
conduct
defs
emails
emojis
events
events::network
events::org
events::public
events::repo
events::user_org_received_events
events::user_public_received
events::user_received
gist
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
gist_comment::create
gist_comment::delete
gist_comment::edit
gist_comment::get
gist_comment::text
gist_comment::user
github
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
gitignore
help
json
licenses
markdown
meta
network
org
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
path
project
project::create
project::creator
project::delete
project::edit
project::get
project::name
project::state
project::text
rate_limit
repo
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
root
search
search::code
search::commits
search::issues
search::labels
search::repositories
search::topics
search::users
user
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
utils
Methods Description
api::count
Get the number of result pages.
api::delete
Delete a resouce.
api::endpoint
Get API root endpoint.
api::extract_header_value
Extract a given value from the HTTP headers.
api::extract_rel
Get the Link header values. Get the link relation for the given page of results.
api::extract_rels
Get the Link header values.
api::filter
Filter JSON content.
api::get
Retrieve a resource.
api::header
Get the HTTP headers. Extract a given value from the HTTP headers.
api::header_value
Extract a given value from the HTTP headers.
api::last
Get the link relation for the last page of results.
api::next
Get the link relation for the next page of results.
api::paginate
Get paginated items.
api::patch
Update a resource with partial JSON data.
api::post
Create a resource. Specialized POST method that expects a 200 status code. Create a resource in an asynchronous fashion.
api::post200
Specialized POST method that expects a 200 status code.
api::post202
Create a resource in an asynchronous fashion.
api::put
Replace a resource or a collection.
api::request
Make a generic HTTP request.
api::status
Get the HTTP status code.
api::version
Get API version.
auth::am_following
Check if the authorized user follows another.
auth::block
Block a user. List the users the authenticated user has blocked on her personal account.
auth::blocked_users
List the users the authenticated user has blocked on her personal account.
auth::emails
List email addresses for the authenticated user.
auth::followers
List followers of the authenticated user.
auth::following
List who the authenticated user is following.
auth::have_blocked
Check whether the authorized user has blocked another user.
auth::orgs
List all the organizations for the authenticated user.
auth::public_emails
List public email addresses for the authenticated user.
auth::public_timeline
Get the public timeline for the authenticated user, in Atom format. Get the public timeline URI for the authenticated user.
auth::public_timeline_url
Get the public timeline URI for the authenticated user.
auth::repos
List all the repositories for the authenticated user.
auth::starred_gists
List all the starred gists for the authenticated user.
auth::starred_repos
List repositories being starred by the specified user.
auth::unblock
Unblock a user.
commit::comments
List comments for a commit.
commit_comment::create
Create a commit comment.
commit_comment::delete
Delete a commit comment.
commit_comment::edit
Update a commit comment.
commit_comment::get
Get a single commit comment.
commit_comment::path
Get the path of a single commit comment.
commit_comment::position
Get the position of a single commit comment.
commit_comment::ref
Get the commit ID of a single commit comment.
commit_comment::text
Get the text of a single commit comment.
conduct::name
Get the name of an individual code of conduct.
conduct::text
Get the text of an individual code of conduct.
conduct::url
Get the url of an individual code of conduct.
emails::add
Add email address(es).
emails::delete
Delete email address(es).
emails::toggle_primary_visibility
Toggle primary email visibility.
emojis::all
Lists all the emojis available to use on GitHub.
events::network
List public events for a network of repositories
events::org
List public organization events.
events::public
List public events IDs.
events::repo
List repository events IDs.
events::user_org_received_events
List organization events for the authenticated user.
events::user_public_received
List public events for a user.
events::user_received
List events received by the authenticated user.
gist::clone
Download gist files.
gist::comments
List comments on a gist.
gist::commits
List gist commits.
gist::create
Create a gist.
gist::delete
Delete a gist.
gist::describe
Describe a gist.
gist::download
Download gist files.
gist::edit
Edit a gist.
gist::files
List gist files.
gist::fork
Fork a gist. List gist forks.
gist::forks
List gist forks.
gist::get
Get a single gist.
gist::is_starred
Check if a gist is starred.
gist::owner
Get the a gist's owner.
gist::public
List all public gists.
gist::star
Star a gist.
gist::unstar
Unstar a gist.
gist_comment::create
Create a comment on a gist.
gist_comment::delete
Delete a comment on a gist.
gist_comment::edit
Edit a comment on a gist.
gist_comment::get
Get a single comment on a gist.
gist_comment::text
Get the text of a single comment on a gist.
gist_comment::user
Get the user of a single comment on a gist.
github::conducts
List all Codes of Conduct.
github::gitignores
List all .gitignore templates available to pass as an option when creating a
github::git_servers
List all IP addresses (in CIDR format) specifying the Git servers for
github::hooks
Get a list of IP addresses in CIDR format specifying the addresses that
github::importers
Get a list of IP addresses in CIDR format specifying the addresses that
github::orgs
List all organizations.
github::pages
List all IP addresses (in CIDR format) specifying the A records for GitHub
github::password_auth
Tell whether authentication with username and password is supported.
github::repos
List all public repositories.
github::sha
Get the currently-deployed SHA of github-services.
github::timeline
Get the GitHub global public timeline, in Atom format. Get the GitHub global public timeline URI.
github::timeline_url
Get the GitHub global public timeline URI.
github::users
List all users, in the order that they signed up on GitHub.
gitignore::all
Get all gitignore templates.
gitignore::by_name
Get a gitignore template.
help::method_desc
Get the description of a method in Gitty.
help::methods
List all methods for a given module in Gitty.
help::modules
List all modules in Gitty.
json::build_array
Build a JSON array from argv.
licenses::all
Get all commonly used licenses.
licenses::license
Get all commonly used licenses. Get a license. Get the license for a repository.
licenses::repo
Get the license for a repository.
markdown::from_file
Render an arbitrary Markdown document from a file.
markdown::from_stream
Render an arbitrary Markdown document from stdin.
markdown::from_string
Render an arbitrary Markdown document from a string (private method). Render an arbitrary Markdown document from a string.
meta::all
Get GitHub meta information.
meta::octocat
Get Octocat.
meta::root
GitHub API Root.
meta::zen
Get the Zen of GitHub
network::events
List public events for a network of repositories
org::block
Block a user. List the users blocked by an organization.
org::blocked_users
List the users blocked by an organization.
org::company
Get an organization company.
org::describe
Get an organization description.
org::edit
Edit an organization.
org::email
Get an organization email.
org::events
List public organization events.
org::get
Get an organization.
org::is_blocked
Check whether a user is blocked from an organization.
org::location
Get an organization location.
org::name
Get an organization name.
org::projects
List organization projects.
org::repos
List organization repositories.
org::unblock
Unblock a user.
org::url
Get an organization url.
path::content
Get the content of a file.
path::ls
List contents of a directory or the name of file (similar to the ls command).
path::type
Return the type of a path.
project::create
Create a project.
project::creator
Get a project creator.
project::delete
Delete a project.
project::edit
Edit a project.
project::get
Get a project.
project::name
Get a project name.
project::state
Get a project state.
project::text
Get a project text.
rate_limit::all
Get rate limit status for the authenticated user.
repo::by_id
Get repository by ID (undocumented).
repo::comments
List commit comments for a repository.
repo::commits
List commits on a repository.
repo::conduct
Get a repository's code of conduct.
repo::create
Create a new repository for the authenticated user.
repo::delete
Delete a repository.
repo::events
List repository events IDs.
repo::fork
Fork a repository. List forks for a repository.
repo::forks
List forks for a repository.
repo::is_starred
Check if a gist is starred.
repo::projects
List repository projects.
repo::readme
Return the preferred README for a repository.
repo::star
Star a repository. List Stargazers for a repository.
repo::stargazers
List Stargazers for a repository.
repo::tags
List tags for a repository.
repo::topics
List all topics for a repository.
repo::unstar
Unstar a repository.
root::events
List public events IDs.
search::code
Find file contents via various criteria.
search::commits
Find commits via various criteria.
search::issues
Find issues by state and keyword.
search::labels
Find labels in a repository with names or descriptions that match search
search::repositories
Find repositories via various criteria.
search::topics
Find topics via various criteria.
search::users
Find users via various criteria.
user::follow
Follow a user. List followers of the specified user. List who the specified user is following.
user::followers
List followers of the specified user.
user::following
List who the specified user is following.
user::gists
List public gists for the specified user.
user::is_following
Check if the specified user follows another.
user::keys
List the verified public keys for the specified user.
user::org_received_events
List organization events for the authenticated user.
user::public_received_events
List public events for a user.
user::received_events
List events received by the authenticated user.
user::repos
List public repositories for the specified user.
user::starred_repos
List repositories being starred by the specified user.
user::timeline
Get the public timeline for the specified user, in Atom format. Get the public timeline URI for the specified user.
user::timeline_url
Get the public timeline URI for the specified user.
user::unfollow
Unfollow a user.