TestKase
TestKase
|Docs
IntegrationsGitHub

API Integration

Connect TestKase to GitHub Issues for real-time requirement sync, defect push, and full traceability between your test management and development workflows.

Looking for a lighter-weight option? The Chrome Extension lets you push defects and link requirements without leaving your browser.

Overview

The GitHub API 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, defects can be pushed to GitHub as new issues, and linked test cases appear as comments on the GitHub issue -- creating end-to-end traceability from your backlog through test execution to defects.

Auto-sync requirements

GitHub issues are automatically imported and kept in sync as requirements

Push defects

Create GitHub issues directly from TestKase defects with one click

Bidirectional sync

Status, labels, and comments stay synchronized across both platforms

Full traceability

Link test cases to requirements with automatic GitHub comments

Priority mapping

GitHub labels map to TestKase priorities automatically

Developer visibility

Linked test cases and defect references appear on GitHub issues

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 Settings -> Jira 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.

Requirements 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.

Push a Defect to GitHub

When you discover a defect and want to create a corresponding GitHub issue:

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

Push During Test Execution

The most efficient workflow is to push defects during test execution:

  1. Execute a test case in a test cycle.
  2. When a test fails, create a defect directly from the execution view.
  3. The defect is automatically linked to the failed test case.
  4. Click Push to GitHub to immediately create the GitHub issue.

Bidirectional Sync

Once a defect is pushed to GitHub, changes are synchronized between both systems:

  • Status updates -- When the GitHub issue is closed or reopened, the defect status in TestKase updates automatically. Similarly, status changes in TestKase are reflected in GitHub.
  • Labels -- Priority labels are applied to the GitHub issue and kept in sync.
  • Comments -- Comments added on the GitHub issue appear on the TestKase defect, and vice versa.

Field Mapping for Defects

TestKase automatically maps defect fields to GitHub issue fields when pushing:

TestKase Defect FieldGitHub Issue FieldNotes
TitleTitleMapped directly
DescriptionBodyIncludes a link back to the TestKase defect
PriorityLabelsMapped to priority labels (see table below)
StatusStateOpen/In-Progress maps to open, Closed/Achieved maps to closed

Priority Mapping for Defects

TestKase Defect PriorityGitHub Label
Blockerpriority:critical
Criticalpriority:high
Majorpriority:medium
Minorpriority:low
Trivialpriority:low

If the priority labels do not exist in your GitHub repository, TestKase will create them automatically when the first defect is pushed.

Viewing Pushed Defects

After a defect is pushed to GitHub, the defect detail view in TestKase displays:

  • A GitHub badge with the issue number (e.g., #123). Clicking the badge opens the GitHub issue in a new tab.
  • The current sync status.

From the GitHub side, the created issue includes:

  • The defect title as the issue title.
  • The defect description with a link back to TestKase.
  • Priority labels applied automatically.

Management

Disconnecting the Integration

To disconnect the GitHub integration, go to Settings -> Jira Integration and remove the connection. When you disconnect:

  • Synced requirements remain in TestKase as regular, fully editable requirements. No data is lost and no further sync operations occur.
  • Pushed defects remain as issues in GitHub. The issues are not deleted or modified.
  • Bidirectional links stop functioning -- the GitHub badge on defects and the TestKase reference on GitHub issues will still be visible, but live sync stops.

You can reconnect at any time by following the Setup steps again.

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. Verify your token has the repo scope.

Priority labels are not being applied

TestKase creates priority labels automatically. If your repository has branch protection rules or restrictions on label creation, the labels may not be created. Create the labels manually in your repository settings.

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.

Does disconnecting delete pushed defects from GitHub?

No. Disconnecting only removes the integration link in TestKase. Issues created in GitHub via defect push remain in the repository regardless of the TestKase integration status.

Next Steps