Featured image illustrating a step-by-step guide on syncing GitHub issues to Google Sheets using Unito, depicted by the connected logos of GitHub and Google Sheets through circles and dotted lines.
How to Export and Sync GitHub Issues and Pull Requests to Google Sheets Automatically
Featured image illustrating a step-by-step guide on syncing GitHub issues to Google Sheets using Unito, depicted by the connected logos of GitHub and Google Sheets through circles and dotted lines.

How to Export and Sync GitHub Issues and Pull Requests to Google Sheets Automatically

Do you find it intimidating to search your dev team’s GitHub repo looking for project details to share in a spreadsheet? You’re not alone. Any project manager or product team can tell you how important it is to provide stakeholders with timely and accurate reports on development projects.

But you need to know the in’s and out’s of GitHub to find what you’re looking for. And even then, it can take hours to relay the details of issues or pull requests into a spreadsheet, such as Google Sheets or Microsoft Excel. One solution that can make that process far easier for whoever’s building the report is a 2-way sync with Unito — no messing around with the GitHub API.

This guide will show you exactly how to set up a simple integration between GitHub and Google Sheets to export issues and pull requests into a table so that no one needs to do so manually.

Here’s a spreadsheet full of exported GitHub issues from a Unito flow

Google Sheets after syncing with Unito. Synced fields include issue, issue type, milestone, assignee, issue number, status, due date and title.
This integration can’t create pull requests and doesn’t support syncing comments or descriptions to Google Sheets. But you can sync issues from your pull requests into your spreadsheet!

New to Unito? Check out our GitHub + Google Sheets integration overview.

By the end of this walkthrough, you’ll know how to:

  • Export GitHub issues or pull requests to Google Sheets;
  • Keep your sheet up-to-date in real-time with a 2-way sync.

In this GitHub Google Sheets integration guide:

Feel free to skip ahead if you’ve already started building your GitHub Google Sheets integration.

Before you integrate GitHub and Google Sheets:

  • Install the Unito Spreadsheet Sync Extension for Google Sheets in order for your data to sync from GitHub.
  • You must be a GitHub admin or organization owner in order to connect GitHub to Unito.
  • Unito needs to know where to put the details of your GitHub issues and pull requests. A table header serves this purpose with each column acting as a separate container for each field.

IMPORTANT: Unito’s Spreadsheet Sync add-on for Google Sheets will create two additional columns labeled: “UnitoID” and “Last Modified”. Only data between those two columns will sync with Unito.

Don’t delete or modify these columns! You can hide them, but if they’re removed from an active sheet, your data will stop syncing.

The first and last columns are created by the Unito add-on. You can hide the columns if you don’t want to see them in your reports, but don’t delete them.

Install the Unito Spreadsheet Sync Extension

Here’s a tutorial showing you how to install Unito Spreadsheet Sync in your Google Workspace

You can find more detailed steps on how to install Spreadsheet Sync here.

Add a header row to Google Sheets

Your GitHub fields (attachment, description, due date, etc.) will be linked to Google Sheets columns through the row header.

How to auto-populate your header row

Unito Spreadsheet Sync allows you to automatically populate a header row in a blank spreadsheet by selecting import from Unito Spreadsheet Sync.

After you insert two columns into a blank sheet, click Create Flow from within Unito Spreadsheet Sync and Import data from the tool of your choice. When you create a flow this way, you’ll be given an option to auto-populate your row header.

Autopopulate

Step 1. Connect GitHub and Google Sheets with Unito

  1. Login the Unito App and click + Create Flow.
  2. Now, click Start Here to connect your tools. Follow the on-screen instructions to authorize GitHub and Google Sheets . If you need help with, here’s a breakdown of every permission needed by Unito.
  3. Next, select +Add a tool to this flow in either column. Then, +Choose account to specify the GitHub repository and Google Sheet you plan on syncing. If you can’t find your sheet, you can copy paste the URL into the search bar.
  4. Click Confirm.
Connect GitHub and Google Sheets to Unito
You can either search for the name of the Sheet or enter the matching URL directly into the search bar.

Connecting GitHub to Unito for the first time

If this is your first time connecting GitHub to Unito, you’ll need a GitHub admin or organization owner to complete a few extra steps to choose which GitHub organization(s) you wish to sync issues from.

Click to expand for GitHub setup instructions
  1. First, you’ll  be prompted to select an organization or your personal GitHub account. Chooes the organization you plan on syncing.
  2. On the next screen, you can choose to sync issues from specific repos within that organization, or issues from all repos. Choose whichever option you prefer.

If you can’t complete this process for any reason, don’t hesitate to reach out to our live support team.

When you’re ready, select Confirm.

Step 2. Choose a flow direction for creating rows or GitHub issues automatically

This step tells Unito where and how to create new work items (e.g., Google Sheets rows or GitHub issues). Since we’re setting up a reporting use case, you can select a one-way sync at this stage. Later, we’ll choose a two-way sync for field mappings so that any changes we make in GitHub will still appear in Google Sheets so that our integration keeps our tools updated in real-time as the development team works.

Set a One-Way Flow between GitHub and Google Sheets

What are work items?

Step 3. Set up rules to filter data between GitHub and Google Sheets

After setting a flow direction, you can now choose rules to filter specific GitHub issues or pull requests. You can do this by selecting a trigger that Unito will identify in your tools so that only work items matching that description sync with Google Sheets. You could filter by assignee, issue type, labels you’ve created, etc. This part is entirely up to you, but in our demo, we kept things simple, opting to sync by label as you can see below.

Setting rules to filter out certain GitHub issues from syncing to Google Sheets wtih Unito
In this case, only issues with the label “enhancement” will sync to Google Sheets. If we select multiple labels, then any issues with any of the labels we choose will sync to our spreadsheet.

You can also decide if any actions should be automated after the row is added to your Google Sheet. This could include setting a default assignee, changing a specific field, and more.

Step 4. Link fields between GitHub and Google Sheets

Fields represent the details of your GitHub issues and Google Sheets rows: assignee, issue number, due dates, status, label, etc. Typically we can either auto-map our fields or go with a DIY approach. Since Google Sheets allows us to name our fields whatever we wish, we’ll have to start from scratch for this particular integration.

Select Start mapping manually in this instance.

At the next screen you can click on + Add mapping to pick individual fields in GitHub that will sync over to Google Sheets. Here’s an example of our completed set of field mappings:

Select which fields to keep in sync between GitHub issues and your Google Sheets
In this case, any fields with a two-way sync selected can be updated in either tool, while those with only a one-way sync have a source and destination. If I change text in the destination tool, the source will be unaffected. But If I change text in the source tool, then the destination will also update accordingly.

Exact mappings might vary for your use case, but this is generally what you want. The key information from GitHub issues will appear in Google Sheets and nothing extra. Then your colleagues or stakeholders can quickly review without asking for help.

You can learn more about field mappings here.

Note: If you change a column name in a synced spreadsheet, be sure to update your flow’s field mappings in Unito or else your data will stop syncing.

Step 5. Launch your GitHub Google Sheets integration

And that’s it! Just like that, you’ve built a two-way flow to automate issue creation between GitHub projects with Unito!

If you’ve followed the steps above, your flow will now:

  • Send your GitHub issues into Google Sheets based on your rules.
  • Keep those issues synced automatically between GitHub and Google Sheets with live two-way updates.

Once all your fields are mapped, you’re done! You can launch your flow and watch as GitHub issues get synced over to Google Sheets. Build flows for other GitHub repos and you could have a single spreadsheet database to track all the work your development team is doing.

Call-to-action block - Sign up and create your first GitHub + Google Sheets flow in a few steps.

Essential Unito features for this use case

Custom fields

GitHub uses custom fields to give users more control over their projects. Unito can sync these fields from GitHub to other apps and back so you don’t lose any customizability. Unito’s pricing page has all the details on how many custom fields can by synced according to your plan.

Advanced mappings

For many integration solutions, you’re a bit stuck with what the tools give you. That makes it tough to truly recreate the environment from one tool in the other. Unito lets you customize your field mappings so that isn’t the case. When you’re using a flexible tool like Notion, that’s essential.

Ready to automate your reports?

Try Unito for 14 days, absolutely free.

Try it free

What’s next after you sync multiple GitHub projects with Unito?

Watch a demo of Unito’s GitHub integration with Teamwork

Although Teamwork is (obviously) a very different app than Google Sheets, you can apply the same learnings and principles to any software development use case with GitHub:

Best practices and troubleshooting for Unito’s Google Sheets integration

Common error messages

If you see either of the error messages below, it likely indicates that one or both of the columns: “UnitoID” and “Last Modified” have been deleted or modified from your sheet. You’ll need to re-insert them (either manually or with the add-on) before your data will sync again.

“We’ve detected that mandatory columns have been removed from your Google Sheet. Let’s get you back up and running.”

“The container configuration does not allow us to sync.”

Why connect GitHub to Google Sheets with Unito?

This process requires a very precise technical skillset, in particular how to find issues, pull requests, and milestones in GitHub and relay key information easily into a spreadsheet. Setting up an integration with Unito means no one has to worry about where and how to find those issues or pull requests anymore. You simply set it and forget it, then as you create work items or sync historical work items, they will appear automatically in your spreadsheet.

Save time with Unito’s 2-way integration and focus team efforts elsewhere

Think of Unito as your personal assistant when it comes to building reports. That means you can spend more time and effort on your dashboard or managing other projects. The basics of data entry are fully automated from GitHub to Google Sheets once you have the right integration in place. You’ll be able to sync any GitHub issues (including those from pull requests) into a spreadsheet in order to review your development team’s progress from the simplicity and flexibility of a spreadsheet. The only caveat is that you can’t create pull requests from Google Sheets back to GitHub.

Getting around with Google Sheets and Unito

You can find more information on the following topics in Unito’s knowledge base:

FAQ: Export issues in GitHub

Can you easily export GitHub issues to a CSV format?

Unfortunately, there’s no built-in way to export GitHub issues to a CSV file. This is a commonly-requested feature from the platform’s community, but hasn’t been made available yet. That means Unito is currently the best way to export issues to other tools.