TL; DR: After nearly a decade of hosting code repositories and promoting open-source collaboration, the GitHub universe has grown to more than 23 million users developing more than 64 million projects. The company aims to appeal to businesses of all sizes by emphasizing collaborative code review and project management tools. GitHub Enterprise provides a secure platform for all aspects of the dev cycle, while apps in GitHub Marketplace add functionalities to improve teams’ workflows.
With more than 35 teams of developers working on various projects, leaders at HubSpot recognized the need to simplify the development process and consolidate tools.
The sales, marketing, and customer relationship management company chose GitHub Enterprise in 2012 and have since uploaded more than 1,000 repositories and 1,500 components. HubSpot engineers deploy to production up to 300 times a day, according to Tech Lead Mike Champion, who said GitHub has become a central forum for communication for the teams.
“GitHub has definitely become more than where we store code,” he said in a case study. “It’s where we communicate about building software.”
The go-to platform for Git version control and source code management, GitHub has long appealed to developers for collaborative tools for code reviews and project management.
“A lot of us were already fans of GitHub,” Mike said. “We care a lot about the tools we use every day. If we like a tool, and it makes us happy and productive, we will want to invest in it.”
According to Mike, the rapidly growing company considers GitHub a critical part of recruiting and onboarding talented new developers, in addition to company-wide productivity and morale.
“Using GitHub is a sign of an environment in which people prioritize the tools that they enjoy,” he said. “It’s part of a larger investment in developer happiness and in helping them focus on the challenging problems of building products, rather than on tools.”
GitHub Marketplace: 7 Apps for Revamping Your Workflow
Paving the way for efficiency and scalability, the company launched GitHub Marketplace in May 2017 to empower users to find apps that streamline, improve, or extend their development and deployment processes.
More than a dozen integrators currently make apps available in the Marketplace, with more coming soon. We went ahead and highlighted some of the newest and most exciting tools:
1. Better Code Hub: Immediate Feedback for Code Quality
Checking code compliance against 10 software engineering guidelines, Better Code Hub analyzes code and provides suggestions within minutes for every push and pull request. The criteria include rules for brevity and simplicity, along with relationships among components of a project’s architecture.
Teams can add quality goals, and the app creators annually adjust the metrics and benchmarks to mitigate the number of minor or irrelevant violations. In addition to proposing refactoring candidates, Better Code Hub will tell users what impact each candidate has on compliance.
2. Code Climate: Automated Code Review
Every GitHub pull request is automatically examined with line-by-line test coverage reports, technical debt assessments, and style checks to ensure development teams merge only clean, maintainable, and thoroughly tested code.
Code Climate analyzes every commit, branch, and pull request for complexity, duplication, security, and other components to boost quality and identify troublesome parts of a team’s codebase. An included command line interface allows engineers to run the same analysis on local machines, giving coders the confidence to push clean code.
3. Coveralls: Test Coverage, History, and Statistics
With a well-tested codebase being mission-critical to businesses, Coveralls finds which parts of an organization’s code aren’t being covered by part of a testing suite. The app integrates with the continuous integration server to sift through coverage data to expose gaps.
Coveralls displays test coverage percentages as a badge of honor and tracks a project’s historical data. Like many apps in the GitHub Marketplace, Coveralls is free for open-source users and becomes more expensive as the number of commercial repositories grows.
4. StyleCI: Automatic Code Analysis for Push and Pull Requests
Continuous integration with a difference — that’s how the creators of StyleCI tout the app’s PHP coding style service. StyleCI automatically analyzes every push or pull request made to both open- and closed-source repositories, checking the code against one of several included presets or user-defined standards.
StyleCI integrates with GitHub’s commit status to notify teams of potential issues and is easily configurable using an in-browser editor. The program can be set up to automatically create a pull request with fixes and, if preferred, immediately merge the request.
5. Gemnasium: Dependency Management and Security Notifications
Keeping applications secure, Gemnasium monitors dependencies and notifies users when a component has become vulnerable or outdated. The app consolidates security information and updates across all repositories into a single interface, giving developers a clear overview of their projects’ health.
The app currently supports Ruby, npm, PyPI, and Packagist, with Java support coming soon. An included command line tool gives users full control over access to private projects, along with the ability to automatically find and install compatible Ruby dependencies.
6. GitLocalize: Simplified Translation Management
Built for teams looking to streamline workflows associated with translating content, GitLocalize automatically syncs with GitHub repositories to bridge development and localization processes.
After configuration, the app pulls target files and makes them translatable. The files are parsed into trackable chunks, with translations linked with the original language version. GitLocalize will automatically sync with the chosen repository by pulling, committing, and sending pull requests, all while tracking any changes between files.
7. WakaTime: Programming Metrics, Insights, and Time Tracking
Giving developers and teams a fascinating look into their programming, WakaTime automatically generates data about the time and languages used to complete projects. The open-source app automatically detects projects and doesn’t require coders to change their processes.
The WakaTime dashboard tracks stats on how developers work, even providing leaderboards to promote a sense of healthy competition. Perfect for teams and contract workers, WakaTime metrics and commit stats are available as fully embeddable SVG charts.
Why GitHub Open-Sourced Its Site Policies and Terms of Service
From the first days of GitHub, company leaders have promoted open-source collaboration and development. Grit, GitHub’s foundational program that allows for object-oriented read-write access to Git repositories through Ruby, was shared with the world from Day One.
In mid-2017, the company invited users to watch, fork, and collaborate on a new version of the GitHub terms of service and other site policies.
Open-sourcing the site’s governing documents came with several benefits, according to the announcement: time and money savings, more brainstorming power, and direct and immediate user feedback.
The company received nearly 100 comments, with many contributors offering positive feedback and copy editing services. GitHub users expressed a need to refine the descriptions of licenses among contributions and the GitHub platform.
The new terms of service, which emphasized accessibility and readability, formalized the company’s stance on advertising and GitHub Pages, along with an acceptable use policy that is easier to understand.
New in GitHub Enterprise 2.10: Improved Organization and Reviews
Emphasizing the business-critical aspects of efficient programming and collaboration, the company launched several updates to GitHub Enterprise in mid-2017.
Repository administrators can organize and label repositories with tags for easy search and discovery, whether a project is described by languages used, project goals, or teams responsible for development.
GitHub also added more details to the agile project boards that track the status of various tasks, enabling teams to see all activity across the project’s lifespan.
Updates to GitHub Enterprise also empower teams to refine their review processes by filtering and prioritizing pull requests. Leaders can easily find pull requests that are either awaiting review, suggesting changes, reviewed by a specific user, or approved and ready to merge.
For those developers or teams who can’t find exactly the app they need in GitHub Marketplace, the GitHub GraphQL API allows for custom tools with full access to data.