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
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.
- Step 1. Connect GitHub and Google Sheets with Unito
- Step 2. Choose a flow direction for creating rows or GitHub issues automatically
- Step 3. Set up rules to filter data between GitHub and Google Sheets
- Step 4. Link fields between GitHub and Google Sheets
- Step 5. Launch your GitHub Google Sheets integration
- What’s next after you sync multiple GitHub projects with Unito?
Before you integrate GitHub and Google Sheets:
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.
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.
Step 1. Connect GitHub and Google Sheets with Unito
- Login the Unito App and click + Create Flow.
- 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.
- 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.
- Click Confirm.
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
- First, you’ll be prompted to select an organization or your personal GitHub account. Chooes the organization you plan on syncing.
- 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.
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.
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.
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:
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.
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.
What’s next after you sync multiple GitHub projects with Unito?
- Unito’s flow duplication feature lets you copy existing flows, keeping your rules, mappings, and many other settings intact. This allows you to sync multiple GitHub projects to a master without starting each flow from scratch.
- Browse more templates and onboarding tutorials.
- Promote collaboration between technical and non-technical teams by syncing GitHub with Asana, Trello, or monday.com.
- Read a case study from a Unito user who did just that.
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:
- Supported fields in Google Sheets and other features
- Setting rules in Unito to manage your spreadsheets
- Creating spreadsheets with Unito
- Adjusting the date + time format in a spreadsheet
- Finding spreadsheets by their URL
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.