In 30 days, we'll be deprecating anonymous gist creation—a decision we made after a lot of deliberation. Anonymous gists are a handy tool for quickly putting a code snippet online, but as the only way to create anonymous content on GitHub, they also see a large volume of spam. In addition, many people already have a combination of tools authenticated with GitHub that allow them to create gists they own.
Current anonymous gists will always remain accessible, and it’s easy to create a GitHub account to make the most of a new gist. To learn more about creating gists, check out the documentation.
We'll deprecate anonymous gists using the following timeline:
March 19, 2018 19:00 UTC (11:00 am PST): Disable anonymous gist creation via the web and API.
Yesterday we filed an amicus brief alongside a group of other technology companies supporting San Francisco's and Santa Clara County's efforts to permanently block Executive Order 13768, which seeks to deprive sanctuary cities of federal funding. Sanctuary cities are jurisdictions that restrict local cooperation with federal immigration enforcement.
Our amicus brief contributes three basic arguments from a technology and emerging company perspective:
The order will encourage behavior that's antithetical to the values of innovative companies and their communities
The order threatens nearly every major U.S. innovation hub's ability to provide basic services
The order makes U.S. cities less safe
In other words, the order threatens many things that make Silicon Valley and other U.S. technology hubs attractive to the world’s best innovators and entrepreneurs, and undermines our ability to remain globally competitive.
The order is also bad for software developers worldwide, resulting in a net reduction of opportunity to collaborate and create great software—core parts of GitHub's mission. We support inclusive communities on our platform, but developers live in communities on the ground. We think it’s critical to foster collaboration, empathy, and innovation among all people, regardless of where they may be. Technology’s challenges are increasingly global and interconnected, and so our solutions must be as well.
How to get involved
Join us by supporting organizations that are fighting for inclusive communities like the ACLU.
To learn about human rights and their connection to developer opportunities, take a look at our our brief and the studies linked above—and keep building inclusive communities, both online and wherever you live.
From tougher security to more beautiful source code images, our first Release Radar of 2018 has something for everyone. Check out the latest tools that have been delighting and delivering since January.
osquery 3.0: SQL-powered operating system instrumentation, monitoring, and analytics
Osquery is a friendly, scalable way to query almost any infrastructure like a database, and monitor low-level operating system analytics, intrusion detection, compliance, and more.
We use osquery at GitHub with our custom macOS intrusion detection system to look for malicious activity on our team's laptops while respecting their privacy. Security firms, small startups, and large enterprises like Palantir also use it to avoid security vulnerabilities.
Let's say an attacker leaves a malicious process on a machine but deletes the binary. Osquery helps you run a query like SELECT name, path, pid FROM processes WHERE on_disk = 0; to catch it.
Godot 3.0: a game engine that's ready for the big leagues
Godot is a free, multi-platform 2D and 3D open source game engine with a huge set of tools, so you can focus on building your game without reinventing the wheel. With a flexible scene system, powerful visual editor, friendly content creation pipeline, and an amazing community, this is a must-try for game developers.
Godot 3.0 is a huge release, so be sure you check out all the new features and changes in the 3.0 announcement.
Wouldn't it be neat if you could detect faces in both 2D and 3D? Face Recognition built with Python and PyTorch does just that.
Spaceship 3.0: a Zsh prompt for astronauts
Spaceship touts itself as a minimalis, customizable Zsh prompt combining everything you need to be productive, without unnecessary complications just like a real spaceship. Read more about it in the 3.0 announcement post.
That's just a handful of releases you shipped last month—keep them coming! If you've got a release that should be on our radar, send us a note.
In the third programming course in the computer science major, Dan Wallach wants students to master programming in Java with a high degree of rigor and at a large scale. This past semester in his Comp215 course, he chose to use Java8, IntelliJ, and GitHub to implement a test-driven development workflow.
Teaching concepts with a long shelf life
Wallach sees three supporting “ladders” at work in his curricula: Java programming, software design, and tools like Checkstyle, Error Prone, Gradle, and GitHub.
Wallach encourages his students to focus less on specific tools and more on their fundamentals. “I want to teach ideas and concepts that’ll have a long shelf life. So 10 years from now, is IntelliJ going to be the thing? Is Java even going to be the thing? Probably not,” he said. “But mapping a function over a list to get another list, that will be there 10 years from now.”
Moving from Subversion to GitHub with Travis CI
Dan was looking for a scalable, reliable solution for his course: In 2015 the peak loads from his students’ work crashed their campus Subversion server, forcing them to extend their deadlines and ultimately run a private server, requiring significant assistance from Rice’s IT group.
He decided to move to GitHub and use GitHub Classroom in the fall of 2017.
I had confidence that GitHub would make sure their service would be up and available. Their commercial business depends on high uptime.
Dan used GitHub Classroom, a teacher-facing tool that enables the GitHub workflow for courses, to distribute assignments, and Travis CI to run unit tests.
I was initially worried that the complexity of Git would be a pain point for my students. As an example, I was afraid of having to explain to a student what a "detached HEAD state" might be. In practice, this was never an issue. We steered students to using IntelliJ’s front-end for Git, keeping them from getting into too much trouble. It's a nice bonus that students can visit the web page for their repo and double-check that everything was correctly pushed.
An example of distributing an assignment through GitHub Classroom and tests through Travis CI.
Nurture collaboration through filling in holes
As the semester progresses, his students get better at “filling in holes,” Wallach said. Initially, Wallach provides his students with code that has missing pieces.
After they fill in those holes with their own code, he introduces a more complex activity: Build an application from the library of code they’ve previously helped build.
“Every week builds on the previous week. I give you a bunch of code including a correct implementation of the prior week’s project, you write tests and add missing features, and then you submit it,” he explained.
Laying the groundwork for strong collaboration
Wallach has what he calls a “controversial” position on pair programming: He doesn’t use it in his classroom. He sees pairing as only one path to collaboration.
“Learning to use Git, from scratch, is hard enough without collaboration,” he said. He’d seen his students try to pair while learning Git:
“Hey, you didn’t push your changes.”
“What? Yes, I did.”
“Okay, now I’ve got a merge conflict.”
While that back and forth is a kind of collaboration, Wallach wants to set students up for success.
There's plenty enough to learn about version control systems in a solo environment. Comp215 is many of our students' first experience using development tools on their own computer, as opposed to in a browser. Partner-based collaboration with Git requires a more sophisticated understanding to deal with merge conflicts, pull requests, and so forth.
By having his students work by themselves first, Wallach prepares them with the habits and mental models for subsequent classes in the curriculum where they work in teams.
Contributing back to the GitHub Education community
Wallach built several scripts to help with his class workflow and shared them with the GitHub Education community. For example, Git takes its commit times from the clock on the students’ computers. When Wallach spotted a student attempting to use this to submit after a deadline—using his Travis CI/GitHub workflow which logs the time on Travis and cannot be forged by a student—he made a tool to produce a nice table with a given student’s commit times and GitHub’s push time.
Wallach encourages collaboration through his GitHub contributions and his classroom. And his groundwork has paid off. He often hears from past students that his class prepared them for a workplace environment. By teaching skills that have a long shelf life, Wallach's students feel ready to collaborate in the long term.
Here are some of Wallach’s helpful contributions to the GitHub Classroom community of tools:
Last year, GitHub brought 24 million people from almost 200 countries together to code better and build bigger. From frameworks to data visualizations across more than 25 million repositories, you were busy in 2017—and the activity is picking up even more this year. With 2018 well underway, we're using contributor, visitor, and star activity to identify some trends in open source projects for the year ahead.
Some of the projects that experienced the largest growth in activity were focused on cross-platform or web development. For example, Angular/angular-cli had 2.2 times more contributors in 2017 than in 2016. You contributed more, visited more often, and starred projects related to Angular/Angular, Facebook/React, and Electron/Electron. These projects simplify the development process, shortening the time from start to deployment across desktop and mobile platforms.
You've also been rallying around deep learning projects. Across multiple industries, artificial intelligence is solving a host of complex and interesting problems. You've helped drive that interest by upping your contributions to and visits to projects like Keras-team/Keras and Mozilla/DeepSpeech. TensorFlow/TensorFlow had 2.2 times more visits in 2017 than in 2016, and TensowFlow/models had 5.5 times more visits!
How did we discover these trends? We looked at three different types of activity. First, we identified the top 100 projects that had at least 2,000 contributors in 2016 and experienced the largest increase in contributors in 2017. We also identified the top 100 projects that received the largest increase in visits to the project's repo in 2017. Finally, we identified the top 100 projects that received the most new stars in 2017. Combining these lists, we categorized projects into broad communities and looked at the communities that were the most represented at the top of the lists.
If you'd like to see a lot more data covering what the GitHub community was up to from September 2016 through September 2017 including the most forked projects, the most social projects, and the most reviewed projects, check out the report we released at Universe: The State of the Octoverse.
Last year we announced the deprecation of several weak cryptographic standards. Then we provided a status update toward the end of last year outlining some changes we'd made to make the transition easier for clients. We quickly approached the February 1, 2018 cutoff date we mentioned in previous posts and, as a result, pushed back our schedule by one week. On February 8, 2018 we'll start disabling the following:
If you have some expertise to bring to topic pages, we've compiled a list of popular topics that don't have a lot of context, yet. Help us add information to these pages, so others can learn more about what's on GitHub. Whether you're a new contributor or a subject matter expert, your pull requests are welcome! This could be a good fit for your first open source contribution or as a project for Open Source Friday—no code required.
The field of data science has seen enormous growth over the last few years. Organizations increasingly leverage data as a strategic asset that data scientists turn into meaningful insights. These days, data science and machine learning are essential to software products that need to classify information, and deliver personalized experiences and unique interactions with users.
R and Python are popular programming languages in data science because they combine text with code to clean and explore data for reproducible insights. As data science and machine learning are iterative processes for testing new ideas, Git and GitHub are ideal tools for tracking changes and working together.
Git and GitHub help data scientists:
Store projects in GitHub repositories to organize work, track changes, and provide a clear and well documented path for analysis
Integrate with popular editors like RStudio, PyCharm, and Atom. You can also edit files directly on GitHub
With faster onboarding for junior developers, increased code quality, and more thorough code review, it's easy to see why more developers than ever are writing code collaboratively. Your team's (and our own) great results from social coding motivated us to popularize the pull request—and more recently—bring real-time collaboration to your text editor with Teletype for Atom. Today, we're building on these tools with support for multiple commit authors.
Commit co-authors makes it easy to see who has contributed to every commit, regardless of how many contributors there are—and every author gets attribution in the pull request and in their contribution graph.
How it works
To add co-authors to a commit, just add one or more "Co-authored-by" trailers to the end of the commit message:
Co-authored-by: Joel Califa <firstname.lastname@example.org>
Co-authored-by: Matt Clark <email@example.com>
Include your trailers at the end of your commit message, and have at least one line of white space before them.
Issue and pull request templates help teams gather the right information from the beginning of a thread, but sometimes one template just isn't enough. Now project maintainers can have and use multiple templates in their repositories.
To add multiple issue templates to a repository create an ISSUE_TEMPLATE/ directory in your project root. Within that ISSUE_TEMPLATE/ directory you can create as many issue templates as you need, for example ISSUE_TEMPLATE/bugs.md. To use those issue templates add ?template= and your template name to the new issue URL. Continuing the example, if you create the template bugs.md you add ?template=bugs.md to the new issue URL, so it becomes /issues/new?template=bugs.md.
Your default ISSUE_TEMPLATE.md files will continue to work as the default when a template isn't specified in the new issue URL. Pull request templates follow the same pattern: add a directory called PULL_REQUEST_TEMPLATE to the root directory of your repository, and add the ?template= to your pull request URLs. And if you're worried about extra clutter in the root directory of your project, all of these directories work within the .github folder as well
2017 was a busy year for IDEs and GitHub. From new additions like Xcode to complete rewrites of some of our favorites like GitHub Desktop, there's been a lot to cover.
The GitHub Professional Services Team (and special guests from each respective organization!) recorded a full webcast series to help you catch up on some of our favorites and kick off 2018 right. If you weren't able to attend live, check out our list of full recordings below to learn more and improve your day-to-day GitHub interactions with the tools you already use.
Data powers much of the software we use every day. Although data science teams operate differently than engineering teams, they can apply the same best practices that engineers use to share code, communicate, and work together more efficiently.
In a recent webcast, GitHub Senior Solutions Engineer Bryan Cross shows us how data scientists use GitHub to support their workflows. Below, you’ll find three key takeaways from the presentation, as well as the on-demand link.
With the ability to snapshot versions of your work, you can iterate and experiment freely without the worry of losing previous work. If you hit a dead end, back up to a previous version and continue from there. Even your dead ends are preserved on GitHub—giving your team a complete record of everything that did and didn't work.
With tools like GitHub search, finding and sharing work is no longer a chore. Using basic functions, your team can search for files, people, repositories, and specific conversations with search terms and more for in-depth discovery. When starting a new project, easily find what work has already been done on the topic and avoid duplicating efforts.
Collaborative work with GitHub
With issues and pull requests, you can seamlessly work together or cross-functionally with other development teams. Issues act as threaded discussions that loop in team members and other stakeholders. With issues, you can discuss how best to tackle a new project and keep everyone updated on the project's progress. And with pull requests, your team can review code, results, and commentary, suggesting ways to improve all three before sharing with stakeholders.
Once your work is written, reviewed, and ready to go, you’ll want to share your results. GitHub renders Jupyter Notebooks hosted in GitHub repositories, making notebook sharing a breeze. If you prefer, generate a markdown document from your RMarkdown Notebook and GitHub will render it automatically. To share your results as a webpage, GitHub Pages provides an easy way to host a simple website. Best of all, these are all hosted in a repository, so results benefit from all the snapshotting, search, and collaboration tools discussed above.
In a recent webcast, GitHub Enterprise Solutions Engineer Tommy Byrd shared how to get GitHub Enterprise up and running as a virtual appliance in just thirty minutes.
In this recording, Tommy walks through an example of an automated deployment by managing the provisioned resources using the open source version of Terraform and explains all the services included with the GitHub Enterprise appliance. He also reviews the available instance settings in the management console and shows how to use the GitHub Enterprise API to apply those settings programatically. Finally, Tommy shares the easiest way to work with our Enterprise Support Team to ensure you’re set up for success.
Low maintenance and installation overhead means happy administrators
The architecture of the GitHub Enterprise appliance includes all of the core services we use for GitHub.com, which makes life easier for admins. Not only do we provide critical infrastructure pieces, we also maintain and update the entire stack, reducing overhead and ensuring you have access to the latest, most secure product we offer.
As GitHub Enterprise works behind your firewall, our team doesn’t have direct access to your system. To assist you, we rely on a support bundle. This bundle contains vital logs that help us debug problems in the appliance, including authentication errors. On help.github.com, we also provide extensive documentation, resources, and administrator guides to help you identify and solve any issues that might pop up. If you’re really stuck, our team is just a ticket away and is happy to help with any question or problem.
This month, we're introducing two new apps to help you monitor your APIs and improve productivity by measuring team dynamics. Head over to GitHub Marketplace to discover new tools for building better software.
REST API monitoring
Moesif provides real-time visibility into your live API traffic with advanced analytics so you never miss a beat. Analyze customer usage on your API and deeply understand every error, and prevent minor issues from becoming major outages through passive monitoring of your live API traffic. You can even recieve automatic alerts to API problems with integrations for Slack and PagerDuty.
Measuring team dynamics
DeepAffects is an emotional analytics application for managers and team leads to get issue-level insights that improve team dynamics and productivity. DeepAffects analyzes emotional queues and tones in issue descriptions and comments to help identify high-resolution time issues or disagreements within teams. Monitor and measure happiness, trust, and conflicts among team members to determine overall impact on projects. DeepAffects provides you with information that can help you build and organize higher performing teams.
Ready to try out these new additions? See how they can help your team work better or discover even more tools in GitHub Marketplace.