Polls GitHub for failing checks and stale PRs, opens Linear issues for the ones that need work, and posts a daily digest to Slack. It acts as the engineer, not a shared service account.
This repo uses a single SCALEKIT_USER_ID env var to simulate one user. In production, pass each user's real ID as the identifier on every Scalekit call, and send them an authorization link whenever their connector status is not ACTIVE. GitHub and Linear tokens refresh automatically.
class ScalekitConnector:
def __init__(self):
self.client = ScalekitClient(
env_url=Settings.SCALEKIT_ENV_URL,
client_id=Settings.SCALEKIT_CLIENT_ID,
client_secret=Settings.SCALEKIT_CLIENT_SECRET,
)
self._pr_links = self._load_pr_links()Three things you'd otherwise build: GitHub OAuth, Linear tokens, Slack credentials. Handled.
You have the Scalekit authstack plugin installed (AgentKit + SaaSKit skills and MCP auth). Before coding, auto-load the AgentKit skills relevant to connectors (GitHub, Linear, Slack) and use the Scalekit MCP server to validate tool calls instead of hand-written API logic.
Poll GitHub for open PRs. For each PR+label not already tracked, create a Linear issue via the appropriate AgentKit connector tool (idempotent — skip already tracked labels). Post a daily Slack digest of open PRs with reviewers, stale status, and linked Linear issue IDs. Ask before using write tools (creating Linear issues or posting to Slack); read-only steps run without asking.
Each one runs on delegated identity, scoped per user.