TestKase Docs
Core TestingRequirements

GitHub Integration

Connect TestKase to GitHub Issues for real-time requirement sync, defect push, and traceability.

Overview

The GitHub integration connects TestKase with GitHub Issues to sync requirements and defects between your test management platform and your development workflow. When connected, GitHub issues are automatically imported as requirements, changes are reflected in real time, and linked test cases appear as comments on the GitHub issue.

Prerequisites

Before setting up the GitHub integration, make sure you have the following ready:

  1. A GitHub Personal Access Token with repo scope (for private repos) or public_repo scope (for public repos).
  2. The repository URL you want to connect (e.g., https://github.com/your-org/your-repo).
  3. Project Admin or Owner role in the TestKase project. See User Permissions for details.

Generate a GitHub PAT at https://github.com/settings/tokens. Select the repo scope for full access to private repositories. For fine-grained tokens, ensure the token has read/write access to Issues for the target repository.

Setup

Follow these steps to connect your TestKase project to GitHub Issues:

  1. Navigate to SettingsJira Integration (the integration page supports all platforms).
  2. Select GitHub as your platform.
  3. Enter your GitHub repository URL (e.g., https://github.com/your-org/your-repo).
  4. Paste your Personal Access Token with repo scope.
  5. Click Connect. TestKase validates the token and fetches repository details.
  6. Click Save to complete the connection.

Each TestKase project can be connected to one external project at a time. If you need to sync with multiple GitHub repositories, create separate TestKase projects for each.

Auto-Sync

Once connected, TestKase automatically syncs GitHub issues as requirements in real time.

How Auto-Sync Works

  • Automatic import -- GitHub issues from the connected repository are automatically imported as requirements in TestKase. The issue title becomes the requirement title, and the issue body becomes the requirement description.
  • Real-time updates -- When a GitHub issue is updated (title, body, labels, or state changes), those changes are reflected in TestKase automatically.
  • Test case comments -- When test cases are linked to a synced requirement in TestKase, the linked test cases appear as comments on the corresponding GitHub issue. This gives your developers visibility into test coverage directly from GitHub.
  • Bidirectional defect sync -- Defect updates sync between TestKase and GitHub Issues.

Field Mapping

GitHub issue fields are automatically mapped to TestKase requirement fields:

GitHub FieldTestKase FieldNotes
TitleTitleMapped directly
BodyDescriptionMarkdown converted to rich text
LabelsPriorityMapped based on label naming conventions
State (open/closed)StatusOpen maps to Active, closed maps to Deprecated
Issue NumberExternal LinkStored as clickable reference link

Priority Mapping via Labels

GitHub LabelTestKase Priority
priority:criticalP0 (Critical)
priority:highP1 (High)
priority:mediumP2 (Medium)
priority:lowP3 (Low)

If your GitHub issues do not use priority labels, imported requirements will default to P2 (Medium). You can manually adjust the priority in TestKase after import.

Traceability

From the test case detail view, you can link test cases to GitHub-synced requirements. When a test case is linked, TestKase automatically posts a comment on the corresponding GitHub issue showing the linked test case details. This creates end-to-end traceability from your GitHub backlog through test cases to defects.

Defect Push

Push defects from TestKase to GitHub Issues, creating new issues automatically with all relevant information.

How Defect Push Works

  1. Open a defect in TestKase.
  2. Click the Push to GitHub button.
  3. TestKase creates a new GitHub issue in your connected repository with the defect details.
  4. A bidirectional link is established -- the TestKase defect shows a link to the GitHub issue, and the GitHub issue body includes a reference back to TestKase.

Field Mapping for Defects

TestKase Defect FieldGitHub Issue FieldNotes
TitleTitleMapped directly
DescriptionBodyIncludes TestKase defect link
PriorityLabelsMapped to priority labels

Troubleshooting

I see an 'Authentication failed' error

This usually means your Personal Access Token is invalid, expired, or lacks the required scope. Verify the token at https://github.com/settings/tokens and ensure it has the repo scope. Generate a new token if needed.

Synced requirements are missing description

If a GitHub issue has an empty body, the requirement description will also be empty. Custom fields and metadata beyond title, body, labels, and state are not synced automatically.

Pushed defect is not appearing in GitHub

Ensure the token user has write access to the repository. If the repository requires issue templates, the push may fail if required fields are not met.

What happens to synced requirements if I disconnect?

Synced requirements remain in TestKase as regular requirements. They become fully editable and no further sync operations occur. No data is lost during disconnection.