Opening a path into open source

Most modern applications are built on open source—GitHub’s 2019 Octoverse put the average project at roughly 180 upstream dependencies. With so much riding on community-maintained code, both sides of the equation matter: contributors need an efficient on-ramp, and maintainers need workflows that don’t burn out. Brian Douglas, a GitHub developer advocate, has tips for both.

For contributors: get oriented before you code

The standard advice for joining a new project still applies—read the docs, scan the issue tracker, understand the contribution guidelines. But the missing piece for many newcomers is human contact. Find the project’s public chat channel, whether that’s Discord, Slack, or something else, and introduce yourself to the maintainers before you write a line of code. A quick conversation can confirm that an idea is still relevant, and it makes the eventual code review far less intimidating. Following the project on Twitter is a low-effort way to stay in the loop.

A shortcut to your first issue

Maintainers often mark approachable tasks with the good-first-issue label, but you don’t have to wait for that tag. GitHub’s /contribute URL surfaces unassigned issues that are ripe for engagement on any repository, even if they haven’t been labeled:

github.com/<owner>/<repository>/contribute

For instance, github.com/nodejs/node/contribute pulls up a list of suitable entry points in the Node.js codebase.

Track your triage with a personal project board

Project boards aren’t just for repository-level planning. You can create one on your GitHub profile and use it to track open source issues you’re considering. Paste the URL of any issue you’re curious about into a card, and you have a persistent queue for your own triage—no more losing track of what you were looking at yesterday.

Use notifications deliberately

Subscribing to an issue is an easy way to keep conversations you care about visible in your notifications dashboard, whether you’re on desktop or in the GitHub mobile app. To keep the list from becoming noise, you can filter your inbox with queries like reason:participating (issues you’ve commented on) or reason:author (issues you’ve opened). The notification search supports more advanced custom filters, all documented in GitHub’s help docs.

For maintainers: automate the busywork

Maintenance is partly about saying no to repetitive toil so you have energy for real problems. Automation is the maintainer’s ally here—set up tools to handle common chores, and you free yourself to focus on design and code.

GitHub Actions that maintain the project for you

GitHub Actions gives you a place to run that automation directly in your repository workflow. A few actions worth considering:

  • The github-script action lets you write JavaScript inline in your workflow files, with the GITHUB_TOKEN providing read-only and limited write permissions for API calls.
  • Release Drafter tracks merged pull requests and their authors, automating the chore of assembling release notes. Brian uses this to keep a running summary of what’s landed.

Get discovered with curated topics

Applying topics to your repository helps with discovery, but you can go further by curating a topic list yourself. The github/explore repository accepts pull requests that add or edit topic pages, so you can shape how your project’s ecosystem is presented in the explore view.

Canned answers with saved replies

For projects that aren’t ready for full automation, saved replies are a lightweight way to handle frequently asked questions consistently. They’re particularly helpful for small projects with limited maintainer bandwidth—write a good answer once, and reuse it with a few keystrokes.

The triage role as onboarding

GitHub’s triage and maintain roles, introduced for organizations, can double as an onboarding path for open source. The triage role lets someone help manage issues and pull requests without full write access. For projects where the documentation or contribution path isn’t obvious, triage can be a gentler first step than a code contribution. The expressjs/express project, for example, has used this role to bring new contributors into its maintenance workflow.

Bonus: Brian will be covering the full open source maintainer workflow—including code search, security advisories, and advanced GitHub Actions—during his talk at the first virtual GitHub Satellite. If you have your own workflow trick, share it with the #GitHubProtips hashtag.