GitHub Exposes Commit Status Via API

Garrett Wilkin
Sep. 07 2012, 09:00AM EDT

GitHub, the premier open source collaboration platform, has extended the functionality of it's API to accommodate development work-flows that occur after a code commit.  Third party services will now be able to set one of four status codes on a commit: pending, error, failure, or success.

A few notes for the uninitiated, GitHub is a platform that allows programmers to work on software together while seeing a fine grained timeline of changes to the code base.  As a developer creates new functionality or fixes bugs in the code, she will 'commit' the changes to the code base as she works.  The git version control system sits at the heart of GitHub.

There are several key reasons that services which integrate with GitHub would benefit from the ability to set a status on a commit.  Modern software development methodologies call for practices such as continuous integration, in which code changes are constantly tested and deployed to the production environment in small batches through an automated system.  In such systems, after a code commit arrives a batch of tests would execute with the goal of confirming that the commit did not introduce any breaking changes.  If all tests pass, then the commit is ready for acceptance into the code base.  If the tests fail, the commit should be appropriately flagged in order to warn the developers to revisit the code change.  Indicating whether or not the tests pass for a commit is part of a very common workflow in software development.

Another common work-flow is the code review, which is the process of subjecting the code to the approval of another  more senior programmer.  In such cases the code reviewer needs the ability to mark the code as unacceptable based on his analysis and experience.

With this API change GitHub demonstrates once again that they are committed to supporting software developments existing work-flows and best practices.

Garrett Wilkin

Comments

User HTML

  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • Web page addresses and e-mail addresses turn into links automatically.