Child pages
  • TeamCity Hub Plugin

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

hidden-data
Creating/deleting TeamCity user groups
UpdatingTeamCity user group data (name, description)
Assigning/unassiging users/groups to/from groups
Merging users/groups


Export of TeamCity users/user groups to HubExport of users groups, membership
Optional export of user details ( email, jabber, default VCS usernames, built-in password hash, NT/LDAP username)Setting a Hub ID for every exported user/group



Versions Compatibility

The current plugin version (build 37250) is compatible with TeamCity 9.1+ and Hub 1.0.

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 loadbe loaded.

Download and Installation Instructions

Download hub-plugin.zip and install the plugin as described here.plugin for corresponding TeamCity version:

TeamCity versionDownload link
TeamCity 2018.1.x and laterDownload
TeamCity 2017.1.xDownload
TeamCity 10.0.xDownload
TeamCity 9.1.xDownload

 

Install the plugin as usual. 

After the server restart, the integration with Hub is managed using the you can view the enabled Hub authentication on the Administration | Authentication page and manage the integration with Hub using the Administration | Hub Settings page. 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.

 

Note
titleExternal 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://HubHOST<HubHOST>:port<port>/hub.

  2. Сlick Register TeamCity service in Hub.  

    Note

    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. 

...

If you want to limit the number of Hub users accessing TeamCity, you can use the Hub user 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. 

...

Synchronization with Hub in TeamCity allows you to:

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

...

Clicking Synchronize now  launches synchronization manually. After the synchronization is finished, the results will be reported on the page.  hidden-dataEnabling access to TeamCity from Hub Dashboard After registering the TeamCity service in Hub, TeamCity widgets can be configured on Hub dashboard.  The widgets required additional configuration on the TeamCity side. Hub Dashboard uses TeamCity REST API [Link] to access TeamCity data. REST API requests are performed on behalf of the current user and from a different host, so REST API CORS settings have to be configured appropriately using the following internal properties [link]:

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 "<TeamCity server URL>/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:

Code Block
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

Note

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

...

internal property.


Plugin Development Status

...

If you believe you've faced a bug: Issue Tracker (project: TeamCity)
If you want to ask a question or discuss: Forum
Any of the above, but you do not want it to be publicly accessible: Online Form or Feedback email

...