Integrate with GitHub
A GitHub integration enables the following features in YouTrack:
Apply commands to YouTrack issues right from a commit comment or a pull request description. For more information, see Apply Commands in VCS Commits.
Track commits that are related to specific issues in the activity stream for the issue in YouTrack. For more information, see View and Edit VCS Changes.
Add links to YouTrack issues in commit messages. For more information, see Link Issues in VCS Commits.
Add links to the GitHub repository by pasting commit hashes into the summary, description, comment, or string-type custom field in YouTrack issues.
Your YouTrack server must be accessible from the Internet.
A committer's email address in YouTrack must be the same as in GitHub. YouTrack searches for a user account based on the email address that is registered in GitHub. These users must also have permission to update issues in the connected YouTrack project. If no match is found or the user does not have the required permission, the commands are not applied.
Configure the GitHub Integration
When you enable and configure the GitHub integration, you define mappings between a YouTrack project and a GitHub repository. This operation can be performed by a project administrator on a per-project basis.
An administrator can enable and manage the GitHub integration for any project in YouTrack. For more information, see GitHub Integration.
To enable and configure the GitHub integration:
Click the Projects link in the header to open the Projects list.
From the Administration menu for your project, select VCS.
- Click the New VCS Integration button, then select github.com.
The New VCS Integration dialog opens in the sidebar.
- Generate an OAuth token in GitHub:
Click the Create OAuth token link below the OAuth Token field to navigate to GitHub.
Enter a description for the OAuth token.
Select the scopes for the OAuth token and click the Generate token button.
Copy the token to the clipboard.
Paste the token in the OAuth Token field.
If you are not the repository owner, provide the repository owner name. If you are the owner of the repository, leave the field blank.
- Click the Connect to VCS server button.
The New VCS Integration dialog displays settings for mapping the VCS to your project.
- Enter values for the following settings:
Select the YouTrack project that you use to track changes to the code repository.
Select the repository where you store the source code that is related to the selected project.
Select the group that contains all of the users who can commit changes to the selected repository.
Enter the names of the branches that you want to monitor for changes. Use the plus sign to include a branch and the minus sign to exclude a branch. For more information, see Monitor Branches.
Parse commits for issue comments
To detect and generate issue comments from commit messages, enable this option. Otherwise, the entire commit message is displayed with the VCS change in the issue activity stream.
We recommend that you only enable this option when:
You want to mention other users in your commit messages and generate notifications when the text is copied to an issue comment.
You restrict the visibility for VCS changes and want to make commit-related information visible to external users as comments.
Visible for Groups
Select one or mor groups to restrict the visibility of VCS changes. Otherwise, the list of VCS changes is visible to any user who has permission to read issues in the project.
- Click the Save button.
The GitHub repository is associated with the selected YouTrack project.
Each VCS integration lets you specify which branches in the repository are monitored for changes. You can refine the selection to include or exclude specific branches.
To specify which branches are monitored for VCS changes, select an existing integration on the VCS tab and update the Monitor Branches setting.
The Monitor Branches setting accepts a list of branch names or patterns. Use the following syntax to specify which branches are monitored for changes:
+to include a branch.
-exclude a branch.
branch name, use the fully qualified name of the branch. For example,
*as a wildcard. This placeholder matches one or more characters in a string. For example, to include all feature branches, use:
To monitor all branches, leave the input field empty.