IntelliJ IDEA plug-in for Visual Studio Team Services and Team Foundation Server (TFS)
MIT License
This is a plugin for working with Git and TFVC repositories on Azure DevOps and Team Foundation Server (TFS) 2015+ inside IntelliJ, Android Studio, and various other JetBrains IDEs. It is supported on Linux, Mac OS X, and Windows. It is compatible with IntelliJ IDEA Community and Ultimate editions (version 2021.2.4+) and Android Studio (version 2021.2.1+).
To learn more about installing and using our Azure DevOps IntelliJ plug-in, visit: https://docs.microsoft.com/en-us/azure/devops/repos/git/create-repo-intellij?view=azure-devops
Run the build by:
./gradlew buildPlugin
JAVA_HOME
environment variable to the installation folder of the JDK 11.plugin/build/distributions/
folder.Once you've downloaded the dependencies, run the build by:
Start IntelliJ and open the Gradle project from the root project directory.
Configure the project to use language level Java 11
Configure the project and each module to build with this "IntelliJ Platform Plugin SDK".
com.microsoft.alm
(there are three), under Module SDK, select the entry marked "IntelliJ IDEA ".Make sure the 'GUI designer' generates Java source code.
Java Souce Code
Create a "Plugin" configuration to run/debug the code.
azure-devops-intellij
:plugin:runIde
Run the plugin by selecting Run -> Run .
Debug the plugin by selecting Run -> Debug .
To run tests please check options on the page Preferences | Build, Execution, Deployment | Build Tools | Gradle | Runner
Delegate IDE build/run actions to gradle
should checked.Run tests using
should select Gradle Test Runner
We welcome Pull Requests, please fork this repo and send us your contributions.
Note: This repo is mirrored so any branches created in this repo will be removed. Please fork.
A few styles we follow:
All Java source files must have the following two lines at the top:
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See License.txt in the project root.
No tabs in source code:
No wildcard imports (ex. java.awt.*
):
java.awt.*
and javax.swing.*
from the "Package to Use Import with '*'" listThose settings are already configured in the com.microsoft.alm.plugin.idea.iml
project file we provided.
Gradle build will fail if checkstyle plugin detects a violation.
Our Integration tests are in the L2Tests folder. In order to run them correctly, you have to set up the environment and have an Azure DevOps Services organization setup to run against.
You'll need to add a test project into your account, and add both git and TFVC repositories into it. Git repository should also include a README.md
file in the repository root, and TFVC repository should include a readme.txt
file.
Here are the steps to setup your environment:
First create run configuration from L2Tests
gradle project:
cleanTest test
--tests *
Second setup the environment variables that provide the connection information for the tests. If this information is missing the tests will fail with a message that describes the missing information. The values below are examples but you will have to fix them.
MSVSTS_INTELLIJ_RUN_L2_TESTS=true
MSVSTS_INTELLIJ_TF_EXE=d:\bin\TEE-CLC-14.0.4\tf.cmd
MSVSTS_INTELLIJ_VSO_GIT_REPO_URL=https://organization.visualstudio.com/projectName/_git/repoName
MSVSTS_INTELLIJ_VSO_LEGACY_GIT_REPO_URL=https://organization.visualstudio.com/defaultcollection/_git/projectName
MSVSTS_INTELLIJ_VSO_PASS=PersonalAccessTokenGeneratedFromTheUserSecurityPage
MSVSTS_INTELLIJ_VSO_SERVER_URL=https://organization.visualstudio.com
(make sure no trailing slash here)MSVSTS_INTELLIJ_VSO_TEAM_PROJECT=projectName
MSVSTS_INTELLIJ_VSO_USER=EmailAddressForUser
MSVSTS_INTELLIJ_UNIQUE_SUFFIX=""
: you may leave it empty; if not empty, it will be used as a suffix for various names in tests; introduced for simultaneous test execution on agentsNote: Do not use https://dev.azure.com/account/ addresses in these environment variables, make sure to use https://account.visualstudio.com/
Other things to note:
To run the reactive client integration tests, create a run configuration for :client:backend:test
task, or use Gradle to run it. It uses the same environment variables as L2 tests.
Want more information? The following resources are available to help: