Wiki
Clone wikiTFS Repository Plugin / Home
TFS Repository Plugin for Bamboo Documentation
Need Bamboo builds from TFS repositories? With this plugin you can have it!
1. Overview
This plugin allows Atlassian Bamboo to use TFS as a source repository for builds. Now it is easier to mix Microsoft and Atlassian solutions or plan migration.
Features
- Works out of the box
- Supports remote agents with no additional configuration
- Can be run on Windows, Linux and macOS
- Supports TFS 2008-2018 and Azure DevOps 2019-2023
- Works with cloud-based TFS services
- Supports deployment plans
- Supports Bamboo Variables in repository path and URL
- Regexp to include/exclude files that should be checked out
- Checkouts from a label or a specific revision
- TFS branches discovery
- Supports web repository viewer (provides links to commits and diffs)
Compatibility
- Version 1.2.x => Bamboo 8.0-9.x (DC only)
- Version 1.1.x => Bamboo 5.0-9.5
- Version 1.0.x => Bamboo 4.2-4.4.8
Note: The app type is a repository and thus it requires a Bamboo restart to install/upgrade/uninstall the app!
For download and purchasing details visit Atlassian Marketplace.
2. Admin guide
2.1. How to install
The Universal Plugin Manager (UPM) is a tool for administering apps in Atlassian applications. You can use the UPM to find and install, manage, and configure apps:
Note: The app type is a repository and thus it requires a Bamboo restart to install/upgrade/uninstall the app!
2.2. Configuration
2.2.1. Socket timeout
Default socket timeout is 1800 seconds. It can be changed by setting com.microsoft.tfs.core.socketTimeoutSeconds
Java property (How to set Java properties).
Example: -Dcom.microsoft.tfs.core.socketTimeoutSeconds=120
3. User guide
3.1. Configuration
3.1.1. Repository parameters
Each TFS repository has the following parameters:
- Server URL
- Sources path
- Username
- Password
Server URL
This is a full URL for a repository. It consist of a protocol (http://
or https://
), a server name or an ip address, a port (optional), a web directory (optional) and a collection name.
Example:
http://localhost:8080/tfs/DefaultCollection
https://192.168.0.1/TestCollection
Note: you can use bamboo variables there.
Sources path
This is a path to the sources in the specified collection. It begins with a dollar sign $
.
Example:
$/proj1/src
$/
$/app/branches/br1
Note: you can use bamboo variables there.
Username
This is a username for accessing the TFS repository. It is case insensitive and may contain a domain name.
Example:
SERVER\Admin
admin
Admin
ADMIN
admin@server
Password
This is a password for a user which accesses the TFS repository. All passwords are stored encrypted.
3.1.2. Advanced repository parameters
Checkout filter
This option allows to include/exclude files that should be checked out. By default all files are checked out.
Checkout filter type could be set to the following values:
All files
Include only files matching the pattern
Exclude files matching the pattern
Checkout filter pattern is a regular expression used to filter out files in the repository. The pattern describes a path below the repository sources path (not the root $/
).
Note: checkout filter pattern is case-sensitive.
Example:
- match all files under proj1 or proj2:
(proj1|proj2)/.*
- match all JPG files:
.*\.(JPG|jpg)
- match all files only in the root of proj1:
proj1/[^/]*}
- match all *.sh files only in the root of proj1:
proj1/[^/]*\.sh
Remove workspace
If this option is turned on TFS workspace will be removed after each checkout.
Note: incremental checkouts cannot work in this mode.
Version specifier
A label or a revision number to checkout from (leave empty to checkout the latest version).
Note: you can use bamboo variables there.
3.2. Cloud-based TFS services
Cloud-based TFS services requires to use a PAT (personal access token) instead of a user password for authentication. You can create a PAT in user security settings.
3.3. Build triggering
You can use the following build triggers:
3.4. Build from a label or a revision
3.4.1. One-shot build
For one-shot build from a label or a revision start a customised manual build and use the revision field to specify a target label or a revision number.
3.4.2. Regular build
If you need regular builds from a label or a revision you can set:
version specifier
in the repository advanced settings- a plan variable
TFS_VERSION_SPEC
(affects all repos in a plan)
Note: repository advanced settings have higher priority than a plan variable.
3.5. Exposed repository variables
In addition to generic repository variables the following repository specific variables are exposed:
repository.tfs.repositoryUrl
repository.tfs.path
repository.tfs.branch
repository.XXX.tfs.repositoryUrl
repository.XXX.tfs.path
repository.XXX.tfs.branch
planRepository.NNN.repositoryUrl
planRepository.NNN.path
planRepository.NNN.branchName
3.6. Web repository viewer
Web repository viewer provides links to TFS commits and their diffs.
4. Release notes
4.1. Version 1.2.x (for Bamboo 8.0-9.x DC only)
Version 1.2.0 (7 Apr 2024)
- Enh: Drop Bamboo Server support (only DC now)
- Enh: Update dependencies
- New: Implement "Test connection" button
4.2. Version 1.1.x (for Bamboo 5.0-9.5)
Version 1.1.27 (30 Aug 2023)
- Enh: Add data center compatibility and pass the approval process
Version 1.1.26 (13 Jun 2023)
- INCOMING DATA CENTER APPROVAL
Version 1.1.24 (28 Jul 2021)
- Fix #84: UnsatisfiedLinkError caused by SELinux
Version 1.1.23 (19 Jul 2021)
- Fix
#83: UnsatisfiedLinkError when running several agents on the same Linux machine
Version 1.1.22 (15 Mar 2020)
- New: Add Bamboo 7.0 support
- New: Drop Bamboo 5.0-5.13 support
Version 1.1.21 (20 Jan 2019)
- Fix
#66: Reduce noise from SocketTimeoutException
Version 1.1.20 (25 Feb 2018)
Version 1.1.19 (28 Jul 2017)
- Fix: Bamboo 6.1 support
Version 1.1.18 (09 Apr 2017)
- Fix
#67: Add SNI support for SSL
Version 1.1.17 (30 Oct 2016)
- Fix
#64: Checkout filter filed is corrupted on Bamboo 5.14 - Fix
#59: UnsatisfiedLinkError while running several agents on the same machine simultaneously
Version 1.1.16 (07 Jul 2016)
- Fix
#62: ComponentNotFoundException exception if using variable substitution on remote agent
Version 1.1.15 (13 Mar 2016)
- Fix
#57: Web Repository Links not working
Version 1.1.14 (10 Feb 2016)
- Fix
#55: NoClassDefFoundError exception in Bamboo 5.10
Version 1.1.13 (07 Feb 2016)
- New
#50: Add links to TFS commits in the commits section - Fix
#54: UnsupportedOperationException in deployment task
Version 1.1.12 (19 Jul 2015)
- Fix
#48: Revision can be different across several jobs for the build#1
- Fix
#49: Commits tab is empty for the build#2
- Fix
#51: Commits tab is empty for the build from custom revision
Version 1.1.11 (03 Jun 2015)
- New
#46: Added an option to remove TFS workspace after checkout - New
#45: Checkout from a label - Fix
#44: TF10156 (computer name too long) - Fix
#47: NPE under specific conditions
Version 1.1.10 (20 Jan 2015)
- New
#34: Support for TFS branch auto-discovery - Fix
#38: TFS Repository doesn't work after UPM update
Version 1.1.9 (07 Dec 2014)
- Fix
#41: Working directory locked when username changes
Version 1.1.8 (23 Oct 2014)
- New
#39: Expose repository URL and path as Bamboo variables - New
#40: Skip repository URL and path validation if they require variables substitution
Version 1.1.7 (14 Aug 2014)
- New
#33: Move to the API provided by UPM 2.x. - New
#37: Show friendly error message when Bamboo restart is required due to UPM update - Fix
#35: Unable to checkout from two repositories (plan root and its subdir) - Fix
#36: "The working folder is already in use" when changing checkout directory from root of the plan to its subdir
Version 1.1.6 (08 May 2014)
- Fix
#29: Add support for Bamboo 5.5
Version 1.1.5 (05 Feb 2014)
- Fix
#26: Cannot get a non-recursive directory content using the checkout filter
Version 1.1.4 (02 Feb 2014)
- Fix
#25: Incremental checkout doesn't update existing files (bug in 1.1.2)
Version 1.1.3 (27 Jan 2014)
- Fix
#24: Exception on TFS 2008 while detecting branch object
Version 1.1.2 (22 Jan 2014)
- Fix
#21: NPE if null comments returned - New
#22: Need to be able to includes/excludes folders/files when checkout - New
#23: Populate ${bamboo.repository.branch.name} variable
Version 1.1.1 (19 Dec 2013)
- Fix
#17: Author linking for TFS changesets not working correctly for all changesets (commits on behalf of another user) - Fix
#19: Add support for bamboo variables in repository settings - New: Dropped UPM 1.x support
Version 1.1 (10 Sep 2013)
- Fix
#16: TFS Repositories won't show up in Deployment Task
4.3. Version 1.0.x (for Bamboo 4.2-4.4.8)
Version 1.0.25 (09 Apr 2017)
- Fix
#67: Add SNI support for SSL
Version 1.0.24 (07 Jul 2016)
- Fix
#62: ComponentNotFoundException exception if using variable substitution on remote agent
Version 1.0.23 (13 Mar 2016)
- Fix
#57: Web Repository Links not working
Version 1.0.22 (07 Feb 2016)
- New
#50: Add links to TFS commits in the commits section - Fix
#54: UnsupportedOperationException in deployment task
Version 1.0.21 (19 Jul 2015)
- Fix
#48: Revision can be different across several jobs for the build#1
- Fix
#49: Commits tab is empty for the build#2
- Fix
#51: Commits tab is empty for the build from custom revision
Version 1.0.20 (03 Jun 2015)
- New
#46: Added an option to remove TFS workspace after checkout - New
#45: Checkout from a label - Fix
#44: TF10156 (computer name too long) - Fix
#47: NPE under specific conditions
Version 1.0.19 (20 Jan 2015)
- New
#34: Support for TFS branch auto-discovery - Fix
#38: TFS Repository doesn't work after UPM update
Version 1.0.18 (07 Dec 2014)
- Fix
#41: Working directory locked when username changes
Version 1.0.17 (23 Oct 2014)
- New
#39: Expose repository URL and path as Bamboo variables - New
#40: Skip repository URL and path validation if they require variables substitution
Version 1.0.16 (14 Aug 2014)
- New
#33: Move to the API provided by UPM 2.x. - New
#37: Show friendly error message when Bamboo restart is required due to UPM update - Fix
#35: Unable to checkout from two repositories (plan root and its subdir) - Fix
#36: "The working folder is already in use" when changing checkout directory from root of the plan to its subdir
Version 1.0.15 (08 May 2014)
- Fix
#30: Add support for Bamboo 4.0-4.1
Version 1.0.14 (05 Feb 2014)
- Fix
#26: Cannot get a non-recursive directory content using the checkout filter
Version 1.0.13 (02 Feb 2014)
- Fix
#25: Incremental checkout doesn't update existing files (bug in 1.0.11)
Version 1.0.12 (27 Jan 2014)
- Fix
#24: Exception on TFS 2008 while detecting branch object
Version 1.0.11 (22 Jan 2014)
- Fix
#21: NPE if null comments returned - New
#22: Need to be able to includes/excludes folders/files when checkout - New
#23: Populate ${bamboo.repository.branch.name} variable
Version 1.0.10 (19 Dec 2013)
- Fix
#17: Author linking for TFS changesets not working correctly for all changesets (commits on behalf of another user) - Fix
#19: Add support for bamboo variables in repository settings - New: Dropped UPM 1.x support
Version 1.0.9 (05 Sep 2013)
- Fix
#14: Bamboo 5.1 support - Fix
#15: Add automatic retry if network problem occurs while downloading sources
Version 1.0.8 (26 Jun 2013)
Version 1.0.7 (20 May 2013)
- New
#9: Implement incremental checkouts and workspace management - New
#10: Update TFS SDK to 11.0.0.1303
Version 1.0.6 (10 May 2013)
- Fix
#4: New build is triggered constantly with the same changes on TFS2008 - Fix
#7: Memory leak in TFS SDK - New
#5: Add more logging - New
#6: Support externally created workspaces
Version 1.0.1 (28 Feb 2013)
- Fix
#1: First checkout fails with error "There is no history for the path ... Probably it doesn't exist"
Version 1.0 (16 Dec 2012)
- Initial public release
5. Support
If you find a bug, have a feature request or have an idea how to improve this plugin please post it at the public bug tracker.
6. Contact
Feel free to contact us via email and visit our website.
Updated