Enterprise Best Practices: Custom Automation that Leverages our API

The GitHub Enterprise API is a collection of endpoints that enable you to automate most common tasks. For example, you could perform a simple task such as backing up your data, or even create integrations that extend GitHub using the Octokit. The endpoints available to Enterprise are almost identical to the GitHub.com endpoints with some exceptions, and administrative additions for resource management on the appliance. Some administrative additions to the GitHub Enterprise API include performing changes to the management console, collecting statistics, or configuration of LDAP sync.

Below are a few assorted tools created by our customers that utilize our API endpoints, many of which are open source and available for public use.

Bloomberg’s Webhook Creator Micro-framework

A very simple, but powerful, microframework for writing GitHub webhooks in Python. It can be used to write webhooks for individual repositories or whole organisations and can be used for GitHub.com or GitHub Enterprise installations; in fact, it was originally developed for Bloomberg’s GHE install.

Autodesk’s Hubble Enterprise

This amazing tool allows you to visualize GitHub Enterprise collaboration, usage, and health data. If you’re interested in seeing it in action prior to installing, Autodesk has a live interactive demo available here, or you can watch a recording (including a demo) of their talk at GitHub Universe.

One example of what makes this tool super useful is the Contributors data graph shown below. This graph shows the top 20 repositories with the most contributors within the past month. You can also view the live version of this graph.

Capital One’s Hygieia

Hygieia is a robust DevOps dashboard tool that provides near real-time, consolidated views of the entire delivery pipeline. Hygieia appears in two self-contained dashboards – one for engineers and another for executives - that visually depict CICD pipelines. Hygieia’s dashboards simplify the ability to view CICD pipelines in near real-time. The dashboards enable DevOps engineers and executives to monitor the health of code commit to deployment in final production.

In essence, Hygieia itself is an aggregator that pulls data from various DevOps tools that teams use in their CICD pipeline, making it easily digestible in dashboard view(s). Although it is an easily manipulated tool, Hygieia provides complex insights into the following areas:

  • DevOps Maturity: It offers fully automated CICD tracking quality and pipeline speed.
  • Risk Management and Investing: It connects operational metrics to developmental metrics, offering a full understanding of where to invest in order to improve processes that reduce unnecessary risk-taking in the future.
  • On-going Enhancements for Agile Environments: It quantifies DevOps metrics to track and improve DevOps maturity.
  • Establishes and Raises Standards: It sets and achieves a profile for maturity metrics and products. When products dip below the bar, it triggers an alert notification. In addition, this bar goes up incrementally to ensure that all products undergo simultaneous improvements.

Below is a screen capture of the Team Dashboard created for engineers which offers a streamlined view of the DevOps pipeline and the ability to review more granular metrics. Views for this board include Widget View, Pipeline View, and Cloud view.

Shown below, the Product Dashboard displays multiple applications in a single illustration, enabling executives to review the pipeline at a higher level. This dashboard includes progression of an application from its inception (commit) to its final release (prod) for multiple teams.

An overview of how Hygieia works can be found here.

Cloudify’s Surch tool

While not limited to just GitHub Enterprise, this super useful tool can provide the ability to search GitHub organizations, a list of user repositories, or single repositories for strings. Surch enables iteration through a single GitHub repository or a whole GitHub organization for different strings based on user input.

For example, if provided with a single repository, all commits and branches will be searched.

Honorable mentions

Here are a few other projects that are still in the works, aren’t open source, or aren’t publicly available (yet).

The Sony Playstation team has a project in the works that utilizes the API to manage LDAP users. We hope to see more of that soon :fingers-crossed:

HomeDepot’s Shamebot or DoTheRightThing Facilitator project from their talk at GitHub Universe 2017. This tool was originally created to call out team members over-utilizing the API via Slack WebHooks. After some acknowledgement and growth, the project later became used as a tool to encourage users to do the right thing. The HomeDepot team also created other tools which allowed users to unsuspend their own accounts, helping eliminate unused licenses.

Resources for learning how to use the GitHub Enterprise API

If any of these tools have piqued your interest in getting to know how the GitHub Enterprise API works, or if you’d like to learn how to implement your own solution, the Using the GitHub API in your app quickstart guide is a great place to start.

Also, be sure to bookmark the complete documentation for the GitHub Enterprise API as it will surely come in handy at some point during your adventure. If you run into any pitfalls along the way, our GitHub API Development and Support Forum can provide further guidance or advice.

Have any additional questions on this? Let us know by reaching out at github.com/support.