JetBrains Hub integration

Compatible with TeamCity
Provides integration with JetBrains Hub (https://www.jetbrains.com/hub/) allowing for single sign-on (SSO) and automatic update of user details from Hub into TeamCity.

What’s New

Unfortunately, JetBrains s.r.o. didn’t leave any update notes.
Dec 05, 2024
Version 2024.12-174331

Getting Started

Plugin Description

The plugin adds the ability to log in to TeamCity via JetBrains Hub, and allows for synchronization of user details from Hub to TeamCity: creating/deleting TeamCity users and updating TeamCity user data (username, display name, email, jabber, default VCS usernames, etc.).

Supported Environment

The plugin requires TeamCity server to be run with Java version 1.7+. If your TeamCity server uses Java 1.6, the plugin will not be loaded.

Download and Installation Instructions

Download plugin for corresponding TeamCity version:

TeamCity version Download link
TeamCity 2018.1.x and later Download
TeamCity 2017.1.x Download
TeamCity 10.0.x Download
TeamCity 9.1.x Download

Install the plugin as usual.

After the server restart, you can view the enabled Hub authentication on the Administration | Authentication page and manage the integration with Hub using the Administration | Hub Settings page.

Authentication

The Hub plugin adds two JetBrains Hub authentication modules to TeamCity:

  • JetBrains Hub allowing authentication via JetBrains Hub from the TeamCity login form and IDE JetBrains
  • Hub Single Sign-On enabling Single sign-on / sign out via JetBrains Hub.

You can view the currently enabled authentication modules on the Administration | Authentication page. (warning) Removing the JetBrains Hub modules will disable authentication via Hub.

External provider authentication

If you are using an external provider to authenticate to JetBrains Hub (e.g. GitHub, Google, etc.), you will be able to log in to TeamCity. However, to log in to TeamCity from an IDE, you'll need to add credentials for your JetBrains Hub user (username and password) and use these credentials to authenticate to TeamCity from your IDE.

Usage

Enabling / Disabling integration with Hub

  1. On the Administration | Hub Settings page provide the Hub URL of the following format http://:/hub.
  2. Click Register TeamCity service in Hub. Note that the Guest user in Hub needs to be allowed (unbanned) for the TeamCity service registration in Hub.
  3. You will be redirected to the Services page in Hub. Verify the TeamCity Hub service using the Trust button.
  4. After you trust the TeamCity service in Hub, return to the TeamCity Web interface to configure user synchronization.

Filtering Users

If you want to limit the number of Hub users accessing TeamCity, you can use the Hub user filter on the Miscellaneous tab. The plugin will process only the users matching the filter: the selected Hub users will be synchronized when synchronization is enabled and will be able to log in to TeamCity via Hub afterwards. To synchronize all Hub users with TeamCity, leave the filter blank.

Synchronizing Users with Hub

Using the Administration | Hub Settings | Synchronization tab of the server settings, you can enable, configure and run on-demand user synchronization.

TeamCity supports one-way synchronization with Hub: the data is retrieved from Hub and is stored in the TeamCity database. Periodically, TeamCity fetches data from Hub and updates users in TeamCity.

Synchronization with Hub in TeamCity allows you to:

  • retrieve the user's profile data from Hub
  • automatically create and remove users in TeamCity based on the information retrieved from Hub

The following options are available:

Setting Description
Enable users synchronization Allows importing users and their details from Hub to TeamCity.
Update user profiles in TeamCity The user name, email and VCS usernames in TeamCity will be updated with data from the user profile in Hub on the first synchronization. If any of this data will be later modified in TeamCity, the changed data will not be imported from Hub on the next synchronization.
Create user accounts in TeamCity New users (those existing in Hub but not existing in TeamCity) matched by the users filter will be imported to TeamCity with their login details, emails and VCS usernames. All the imported users will have a Hub ID in TeamCity. If a user with the same name exists in TeamCity and Hub, the user is not synchronized until they login to TeamCity via Hub. The existing TeamCity users with no match in Hub will remain intact.
Delete user accounts from TeamCity If a user account is deleted in Hub (banned/ merged) or is not matched by the filter anymore, it will also be deleted in TeamCity as well.

Clicking Synchronize now launches synchronization manually. After the synchronization is finished, the results will be reported on the page.

Using several URLs for TeamCity server

If your TeamCity server is available under several URLs (in addition to the URL configured on Administration | Global Settings in TeamCity UI), you will need to add extra URLs manually to the TeamCity service in Hub as valid redirect URLs.For each URL, add "/hubPlugin/login.html" line

Using 2FA in Hub

If you enable two factor authentication in Hub, you lose ability to login to TeamCity using password (via TeamCity login page or from IDE integration plugins). Since TeamCity 2019.1 you can create and use TeamCity authentication token instead of the password in such cases.

Enabling access to TeamCity for Hub Dashboard

The Hub dashboard retrieves data from TeamCity using the TeamCity REST API. CORS should be configured on the TeamCity side. The following TeamCity internal properties have to be set:

rest.cors.optionsRequest.allowUnauthorized=true

rest.cors.origins=_dashboard_hostname_

Where _dashboard_hostname) is the hostname with the protocol and port, for example: http://myinternalwebpage.org.com:8080

You need to restart TeamCity server after changing the rest.cors.optionsRequest.allowUnauthorized internal property.

Rating & Reviews

4.1
5 Ratings (3,779 Downloads)
5
4
3
2
1

Steps to make it work:

  1. Unban "guest" on Hub
  2. Grant "System Admin" to "guest" user (temporarilly)
  3. Register Hub on Teamcity (Menu Administration -> Hub Settings)
  4. Add "/hub" to server url, e.g: "https : //my-hub.domain/hub"
  5. Click Register Server
  6. Remove "System Admin" permission from "guest" user and ban it.

PS.: If your Hub server is using a self-signed certificate, you'll need to upload the certificate in "Administration -> Root project -> SSL/HTTPS Certificates"

4 stars because of poor documentation

0

Tested with: JDK 11.0.5, TeamCity Professional 2022.04 (build 108502), Hub Build 2022.1.14638

I've been going crazy trying to figure out how to make this plugin work. So 3 starts. After it has been installed, the "Hub Settings" entry appears in the "Server Administration" menu on the left. Click Enable Hub Integration.

unban guest user in Hub ! In the Hub, I have set "Registered User" as Login. Click save, but don't change the page. In the top right corner click "Trust service".

Now you can:

  • Create new users and enter "Hub ID".
  • Open existing users and enter Hub ID (your_hub_domain.tld/admin/admin.html?item=users)
  • go to Server Administration -> Hub Settings -> synchronization tab -> click synchronize now

To get the Hub ID: in Hub, open a user's profile and look at the link that opens by clicking on "Changes made by YOUR_USER" () -> the ID is c7cc7af4-d232-420a-b6c6-f230604ed999

Done.

+1

Tommi Sipilä

26.07.2019
Nevermind, it actually works. You have to point it to domain.to.hub/hub instead of just domain.to.hub. Doing the latter will result in a cryptic error message of unsupported browser.
0

Additional Information

Vendor:
Plugin ID:
hub