The repository knows everything except who is waiting

Teams where the work is tracked in GitHub and the people who need to know about it — support, account management, whoever answers the customer — do not live there.

  • One repository becomes TWO tables — its issues and its pull requests
  • Both are imported whether open or closed, so history is there to measure
  • An automation can open an issue on a repository
  • Comments and review threads stay in GitHub, and the import says so
  • Give support read access without giving anybody a GitHub seat
  • Organisation repositories need the org permission, or only personal ones list
Start free 30 days free · no credit card
WHAT IT DOES

Exactly what connecting GitHub gives you

Brings data in

Pull GitHub into RowFold tables you own — filter them, report on them, link them to everything else in the workspace.

And it stays current: importing again updates the same tables, adding new records and updating changed ones, so links from your other tables hold. Keep in sync does that for you hourly or daily.

Writes back

Automation steps that act on GitHub when something happens in RowFold:

  • Create a GitHub issue Opens a new issue on a repository. Returns the new issue's link, which the step can save onto the record or pass to the next step.

What it doesn't do: It has no say in what a booking page offers. An import only reads: nothing is written back to GitHub, a record deleted there stays here, and a sync runs hourly at most rather than the moment something changes. Anything else you have read about GitHub and RowFold, this page is the authority: it is generated from the connector's own code.

HOW TO DO IT

The jobs people connect GitHub for

I want issues and pull requests where I can measure them

One repository produces two tables rather than one, because an issue and a pull request are different things people ask different questions about. Both come across whether open or closed, which is what makes any question about duration answerable.

  1. Connect GitHub under Manage workspace, then Integrations Sign in with an account that can see the repositories you want. The permissions asked for include organisation visibility, which is what makes company repositories appear at all.
  2. Press Import data and pick the repository Repositories list by owner and name together, because both halves are needed to identify one and a bare name is ambiguous across organisations.
  3. Expect two tables, named for the repository One of issues and one of pull requests. Keeping them apart matters because almost every useful question is about one or the other, not both at once.
  4. Read the warning about what stayed behind Comments and review threads are not imported — the issue and pull request records only. The discussion stays in GitHub, where the people having it already are.
  5. Link issues to the tickets and customers that raised them This is the step that answers “who is waiting for this”, which no amount of read access to GitHub will tell you.

You'll know it worked: Compare each table's row count against the repository with the state filter cleared, since both open and closed items are imported. A count that matches only the open ones means you were comparing against GitHub's default view rather than the whole set.

I want a confirmed bug to become a GitHub issue

The valuable version files the issue and then puts the link back on the ticket, so support can answer the customer later without searching GitHub for whichever issue it became.

  1. Decide what counts as worth filing and put it in the condition A triage decision, a tag, a status. Filing every ticket produces a backlog engineering learns to ignore, which is arguably worse than filing none.
  2. Add a guard so one ticket cannot file twice Nothing on the GitHub side refuses a duplicate issue, so a trigger that can fire twice opens two. Add a condition that the ticket's Issue link field is empty. Step 4 is what fills it.
  3. Add the Create a GitHub issue step and write a real title and body Build both from the ticket's own fields. An issue titled “Bug” costs an engineer a round trip to find out what broke and for whom.
  4. Save the issue link onto the ticket On the GitHub step, open Save the result to and choose a Url field on the ticket, such as Issue link. Add one first if the table has none. The step writes the new issue's address there as soon as GitHub confirms it, and a step below can quote the same address as {{connector.result}}, in a note or a reply.

You'll know it worked: Trigger it on a test ticket and check three things: the issue is on the right repository, its title reads on its own, and the ticket's Issue link now opens that issue. The third is the one people forget.

WHAT IT FIXES

The three things that actually go wrong

An issue knows nothing about who reported it commercially. Four customers hit the same bug and that fact lives in four support threads, so nobody can say what fixing it is worth or who to tell when it ships.

Link issues to the tickets and accounts that raised them. Then the release note's distribution list is a query rather than an archaeology exercise.

Anything you want to measure about pull requests means a script. How long review takes, which repositories are slowest, whether the backlog is growing: all of it is a CSV export and a spreadsheet nobody rebuilds twice.

Issues and pull requests arrive as separate tables, so the questions are ordinary filters and saved reports rather than a maintained script.

People without a seat, or without the appetite, cannot look. So the question usually goes to an engineer, who context-switches to answer something the data already knows.

Imported rows are governed by RowFold's own permissions, so anybody can be given read access without a GitHub seat and without the ability to change anything.

One automation worth building

When a support ticket is confirmed as a bug…

  1. Check no issue has been opened for this ticket already
  2. Open a GitHub issue with the ticket's summary and reproduction steps
  3. Put the issue link back on the ticket so support can follow it
QUESTIONS

Before you start

Why does one repository make two tables?

Because an issue and a pull request are different things, and almost every question you would ask is about one or the other. Review duration is a pull request question; time to fix is an issue question. Putting them in one table would mean every filter starting by separating them again, and a rollup that counted both would answer something nobody asked.

Do comments come across?

No, and the import reports that rather than leaving you to notice. Issue and pull request records only; the discussion threads and review comments stay in GitHub. That is deliberate — the conversation is where engineers work, and copying it produces two half-threads. What comes across is the state everybody else needs: who, what, when, and whether it is done.

I can only see my personal repositories. Why?

Organisation repositories need the organisation permission granted at sign-in, and some organisations additionally require an administrator to approve third-party access before anything owned by them is visible. Without it the import genuinely finds nothing under the organisation, which reads as an empty account rather than as a permission that was never granted.

Why does it ask for such broad repository access?

Because GitHub's classic OAuth scopes are coarse: the only one that can read issues on a private repository also grants write. The narrower alternative covers public repositories only, which would break the feature for anybody whose work is private. It is the least-privilege option available for the job rather than a convenience, and nothing in the connector writes to a repository beyond opening an issue you asked it to.

Does the table keep up with the repository?

It can, an hour behind at best. Importing again updates both tables, matched on the issue or pull request number, and Keep in sync does that hourly or daily; nothing is written back to GitHub by it. Each run reads the 2,000 most recently updated issues and the same number of pull requests, so on a busy repository an item left untouched long enough stops being refreshed, though it stays in the table. Anybody who needs the state to the minute should be looking at GitHub.

Describe yours and watch it build

There is no template to wait for. Type a sentence about what you run and RowFold assembles the tables, links, views and dashboard around it — then you change whatever does not fit.

Start free Free for 30 days. Then $29/month per editor, with unlimited free read-only viewers.