API Integration
Connect TestKase to GitHub Issues to search issues, link them to test cases, post coverage comments, and refresh issue status on demand.
Looking for a lighter-weight option? The Chrome Extension lets you link requirements and manage test cases without leaving your browser.
Overview
The GitHub API integration connects a TestKase project to GitHub Issues so you can search issues, link them to your test cases as requirements, and keep a lightweight traceability bridge between test management and development. When you link a test case to a GitHub issue, TestKase posts a comment on that issue listing the linked test cases, giving developers visibility into test coverage. Issue status is pulled from GitHub on demand whenever you refresh it.
Search and link
Search your GitHub issues on demand and link them to test cases as requirements
Coverage comments
Linked test cases are posted as a comment on the corresponding GitHub issue
Manual status refresh
Pull the latest GitHub issue state into TestKase whenever you refresh
Developer visibility
Linked test cases appear as a comment on the GitHub issue
Easy setup
Connect with a Personal Access Token in minutes
Non-destructive
Disconnect anytime, data is preserved
Prerequisites
Before setting up the GitHub integration, make sure you have the following ready:
- A GitHub Personal Access Token with
reposcope (for private repos) orpublic_reposcope (for public repos). - The repository URL you want to connect (e.g.,
https://github.com/your-org/your-repo). - 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
In TestKase project settings, requirement and defect integrations are configured separately. To search and link GitHub issues from your test cases, configure the requirement integration:
- Open your TestKase project Settings and go to the requirement integration configuration.
- Select GitHub as your platform.
- Enter your GitHub repository URL (e.g.,
https://github.com/your-org/your-repo). - Paste your Personal Access Token with
reposcope. - Click Connect. TestKase validates the token and fetches repository details.
- Click Save to complete the connection.
Each TestKase project can be connected to one external project at a time (per integration type). If you need to work with multiple GitHub repositories, create separate TestKase projects for each.
Linking Requirements
Once connected, you can search your GitHub repository's issues from within TestKase and link them to test cases as requirements. There is no automatic bulk import and no continuous background sync -- issues are searched on demand and linked individually.
How Linking Works
- Search on demand -- From a test case, search your connected repository's issues by keyword. TestKase queries GitHub live and returns matching issues (number, title, and state).
- Link an issue -- Select an issue to link it. The issue title is stored as the requirement title and the issue number is stored as a clickable reference.
- Coverage comment -- When you link a test case to a GitHub issue, TestKase posts a comment on that issue listing the linked test cases. Linking or unlinking additional test cases updates or removes that comment. This is the only change TestKase writes back to GitHub.
Linked Requirement Behavior
- Linked requirements display a GitHub badge showing the issue number. Clicking the badge opens the GitHub issue in a new tab.
- GitHub remains the source of truth for the linked issue's title and state.
- You can link test cases and defects, add attachments, and assign requirements to folders within TestKase -- these fields are managed locally.
Traceability from Test Cases
From the test case detail view, you can link test cases to GitHub issues. When a test case is linked, TestKase automatically posts a comment on the corresponding GitHub issue showing the linked test case details. This gives your developers direct visibility into which tests cover each issue -- without leaving GitHub. Unlinking a test case updates or removes that comment accordingly.
Refreshing Issue Status
TestKase does not receive live webhooks or run a background sync. Instead, the state of a linked GitHub issue is refreshed on demand:
- Use the refresh action to pull the current state of a linked issue from GitHub into TestKase.
- The raw state value from GitHub is stored as-is. There is no automated transformation of GitHub labels or state into TestKase priority or status values.
- Refresh whenever you want the latest state -- for example, before reviewing coverage or building a report.
🚧 Coming soon -- automatic, real-time bidirectional sync (webhook-driven state updates and label/priority mapping between GitHub and TestKase). Today, status is pull-only and refreshed manually.
Defect Push
🚧 Coming soon -- pushing defects from TestKase to create new GitHub issues. The API integration does not yet create issues in GitHub. For now, defects are tracked in TestKase (see Built-in Defects), and you can link test cases to existing GitHub issues for traceability.
When available, defect push is planned to create a new GitHub issue from a TestKase defect, apply priority labels, and establish a cross-reference link between the two. This capability is not yet built.
Management
Disconnecting the Integration
To disconnect the GitHub integration, open the requirement integration (or defect integration) configuration in project settings and remove the connection. When you disconnect:
- Linked requirements remain in TestKase as regular, fully editable requirements. No data is lost.
- Issue search and status refresh stop working for this project.
- The GitHub badge on requirements continues to link to the GitHub URL, and comments already posted on GitHub issues remain in GitHub.
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.
▶A linked issue's state looks out of date
TestKase does not sync state in the background. Use the refresh action on the linked issue to pull its current state from GitHub. If refresh fails, verify the integration is still connected and the token has not expired.
▶The coverage comment did not appear on my GitHub issue
TestKase posts a comment on the GitHub issue when you link a test case to it. If the comment is missing, confirm the token user has write access to the repository and that the integration is still connected.
▶What happens to linked requirements if I disconnect?
Linked requirements remain in TestKase as regular requirements. They become fully editable and no further status refresh is possible until you reconnect. No data is lost during disconnection.
