# Challenge Accepted: Transposit

DevFeed: [Challenge Accepted: Transposit](<https://devfeed.tech/articles/challenge-accepted-transposit-35154.md>)

Original publisher: [Read original article](<https://blog.jessfraz.com/post/challenge-accepted-transposit/>)

Published: 2019-04-23T07:09:26Z

Content type: tutorial

Language: en

Sources: [Jessie Frazelle](<https://devfeed.tech/sources/jessie-frazelle.md>)

Topics: [API](<https://devfeed.tech/topics/api.md>), [Code](<https://devfeed.tech/topics/code.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Bot](<https://devfeed.tech/topics/bot.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [bots](<https://devfeed.tech/tags/bots.md>), [code](<https://devfeed.tech/tags/code.md>), [github](<https://devfeed.tech/tags/github.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [join](<https://devfeed.tech/tags/join.md>), [pagination](<https://devfeed.tech/tags/pagination.md>), [query](<https://devfeed.tech/tags/query.md>), [sql](<https://devfeed.tech/tags/sql.md>)

## AI overview

The author describes testing Transposit's SQL interface for combining multiple APIs, using a GitHub bot that syncs issues and pull requests to Airtable as a complex example.

## Source excerpt

Last week, I had the pleasure of meeting with the Transposit team in San Francisco. Tech is a super small world and it turns out the two founders and I are separated by one-degree through several different people we know. In meeting them I closed many loops without even realizing it, but I digress... Their product is really cool, it exposes a SQL interface for interacting with numerous APIs at once. For someone like myself who deploys a lot of bots, this is great. Usually when I have a complex bot I end up writing a lot of "glue code" to combine a few different APIs and get the information I want. Most of my bots have some sort of pagination logic and all have the N+1 problem where I don't really optimize my queries or use anything fancy like graphQL. Many APIs don't even have graphQL interfaces but also I am old school and I don't really want to learn something new. This is why I was super intrigued by Transposit's SQL interface, because hey, I know SQL! Adam, the CEO, challenged me to try it out, give them feedback, and see if I could break it with something complex. I am not one to back down from a challenge and I have some super weird ass bots, so I decided to start with the weirdest. Gitable Gitable is a bot I made for sending all my open issues and PRs on GitHub to a table in Airtable. I fucking love Airtable. It's design just feels right and works the way my brain works. I set out to make this bot work in Transposit because I know it has some super weird loops and has the N+1 problem where I loop over all my repos, then make another API call after. To reiterate, the goal of the bot is to iterate through all my repos on GitHub and sync the list of issue and PRs with a table in Airtable. Query all the user's repos First, I need to get all my repos that are not forks. So I need a SQL query for this, in Transposit it looks like this: SELECT name, full_name FROM github.list_repos_for_user WHERE username=@owner AND type='owner' AND fork=false The github.list_repos_fo