Create GitHub Issues Feed

User Intent

"How do I sync GitHub issues from a repository? Show me GitHub Issues feed configuration."

Operation

SDK Method: createFeed() with FeedTypes.Issue Auth: GitHub personal access token or OAuth


Code Example (TypeScript)

import { Graphlit } from 'graphlit-client';
import {
  FeedTypes,
  FeedServiceTypes,
  GitHubIssuesFeedPropertiesInput,
  GitHubIssueAuthenticationTypes,
  GitHubRepositoriesInput,
} from 'graphlit-client/dist/generated/graphql-types';

const graphlit = new Graphlit();

// Use the GitHub credential stored in the Developer Portal
const authorizationId = process.env.GRAPHLIT_GITHUB_ISSUES_AUTH_ID!;

const repositoriesInput: GitHubRepositoriesInput = {
  authenticationType: GitHubIssueAuthenticationTypes.OAuth,
  authorizationId,
};

// Enumerate repositories this credential can access
const repositoriesResponse = await graphlit.queryGitHubRepositories(repositoriesInput);
const repositories = repositoriesResponse.githubRepositories?.results ?? [];

if (repositories.length === 0) {
  throw new Error('No GitHub repositories available for the authorized account');
}

const { repositoryOwner, repositoryName } = repositories[0]!;
console.log(`Using GitHub repository: ${repositoryOwner}/${repositoryName}`);

const feed = await graphlit.createFeed({
  name: 'GraphQL Issues',
  type: FeedTypes.Issue,
  issue: {
    type: FeedServiceTypes.GitHubIssues,
    github: {
      authorizationId,
      authenticationType: GitHubIssueAuthenticationTypes.OAuth,
      repositoryOwner: repositoryOwner!,
      repositoryName: repositoryName!,
      readLimit: 100,
      includeAttachments: true,
    },
  },
  // Optional: add workflow for content processing
  // workflow: { id: workflow.createWorkflow.id }
});

console.log(`Created GitHub Issues feed: ${feed.createFeed.id}`);

Configuration

repositoryOwner: GitHub username or organization repositoryName: Repository name authorizationId: Stored GitHub credential identifier (OAuth recommended) authenticationType: GitHubIssueAuthenticationTypes.OAuth or GitHubIssueAuthenticationTypes.PersonalAccessToken readLimit: Number of issues to sync includeAttachments: Download issue attachments


GitHub Token Setup

  1. Developer Portal → Connectors → GitHub Issues

  2. Complete OAuth flow with required scopes (repo, write:discussion, read:user as needed)

  3. Store the resulting credential; note the authorizationId

  4. Use queryGitHubRepositories to confirm repository access before creating feeds


What Gets Synced

  • Issue titles and descriptions

  • Issue numbers and states (open/closed)

  • Labels and milestones

  • Assignees and authors

  • Comments and reactions

  • Timestamps (created, updated, closed)


Use Cases

Product Feedback:

repositoryOwner: 'facebook',
repositoryName: 'react'

Bug Tracking:

repositoryOwner: 'your-org',
repositoryName: 'your-product'

Support Tickets:

repositoryOwner: 'company',
repositoryName: 'customer-support'

OAuth vs Personal Access Token

Use OAuth when:

  • Building multi-user applications

  • Need user-specific permissions

  • Want connector-based auth

Use Personal Access Token when:

  • Single-user automation

  • Service account access

  • Simpler setup


Last updated

Was this helpful?