Last updated Dec 8, 2017

Bamboo API Changes for 5.13

Here's a list of API changes for Bamboo 5.13:

Script task configuration changes

We've changed configuration keys for the script task:

KeyChange description
interpreter

Specifies script interpreter to be used while running a script. The allowed values are:

  • RUN_AS_EXECUTABLE
  • POWERSHELL
  • LEGACY_SH_BAT

Status: new.

runWithPowershell

Replaced by the POWERSHELL interpreter.

Status: removed.

Removed methods

c.a.b.buildqueue.manager

The following deprecated methods have been removed:

1
2
/**
 * Gets all agents which can run a given {@link com.atlassian.bamboo.v2.build.agent.capability.RequirementSet}
 *
 * @deprecated since 5.0 use methods of {@link com.atlassian.bamboo.plan.ExecutableAgentsHelper}
 * @return
 */
@Deprecated
@NotNull
Collection<BuildAgent> getExecutableAgents(RequirementSet requirementSet, boolean includeDisabled);

/**
 * Gets all agents which can run a given {@link com.atlassian.bamboo.v2.build.agent.capability.RequirementSet}
 *
 * @deprecated since 5.0 use methods of {@link com.atlassian.bamboo.plan.ExecutableAgentsHelper}
 * @return
 */
@Deprecated
@NotNull
Collection<BuildAgent> getExecutableAgents(RequirementSet requirements, DisabledAgentsInclusion includeDisabled, OfflineAgentsInclusion includeOffline);

/**
 * Retrieves a list of all images which satisfy the given requirements set.
 *
 * @param requirementSet to check
 * @deprecated since 5.0 use methods of {@link com.atlassian.bamboo.plan.ExecutableAgentsHelper}
 *
 * @return Any configured {@link com.atlassian.bamboo.agent.elastic.server.ElasticImageConfiguration} which can
 *         build the requirement set (currently this can be 1 or none)
 */
@Deprecated
@NotNull
Collection<ElasticImageConfiguration> getExecutableImages(@NotNull RequirementSet requirementSet);

/**
 * Retrieves a list of all images which satisfy the given requirements set.
 *
 * @param requirementSet  to check
 * @param includeDisabled whether to include images configurations which are currently disabled
 * @deprecated since 5.0 use methods of {@link com.atlassian.bamboo.plan.ExecutableAgentsHelper}
 *
 * @return Any configured {@link com.atlassian.bamboo.agent.elastic.server.ElasticImageConfiguration} which can
 *         build the requirement set (currently this can be 1 or none)
 */
@Deprecated
@NotNull
Collection<ElasticImageConfiguration> getExecutableImages(@NotNull RequirementSet requirementSet, boolean includeDisabled);

 
/**
 * Returns a matrix of how many agents match each requirement in the set. Also adds the total number of agents that
 * matches the set
 *
 * @param requirementSet
 * @param includeDisabled
 *
 * @deprecated since 5.0 use methods of {@link com.atlassian.bamboo.plan.ExecutableAgentsHelper}
 */
@Deprecated
@NotNull
ExecutableAgentsMatrix getExecutableAgentsMatrix(@NotNull RequirementSet requirementSet, boolean includeDisabled);

/**
 * Returns a matrix of how many agents match each requirement in the set. Also adds the total number of agents that
 * matches the set
 *
 * @param requirementSet
 * @param includeDisabled
 * @param includeOffline
 *
 * @deprecated since 5.0 use methods of {@link com.atlassian.bamboo.plan.ExecutableAgentsHelper}
 */
@Deprecated
@NotNull
ExecutableAgentsMatrix getExecutableAgentsMatrix(@NotNull RequirementSet requirementSet, DisabledAgentsInclusion includeDisabled, OfflineAgentsInclusion includeOffline);

c.a.b.v2.build.agent.capability

The following deprecated methods have been removed:

1
2
/**
 * Collection of buildables for  which this capability set can meet the requirements of
 * @deprecated since 5.0.  Will not filter by agent assignments. Use {@link com.atlassian.bamboo.plan.ExecutableAgentsHelper#getExecutableBuildables(com.atlassian.bamboo.plan.ExecutableAgentsHelper.ExecutableQuery)}
 */
@NotNull
@Deprecated
Collection<ImmutableBuildable> getExecutableBuildables(@NotNull ReadOnlyCapabilitySet capabilitySet);

Repository configuration changes for Bitbucket Cloud, Git, and Mercurial

We've modified the repositories configuration model in Bamboo. The list below contains all changes in properties that are used by Bamboo to store configuration of repositories, both in the database and in runtime (for example, the data passed to agents).

Git repository configuration changes

Before:

repository.git.sharedCrendentials = <credentialsId>

Now:

repository.git.sharedCredentials = <credentialsId>

NOT SET

repository.git.sharedCrendentials

Comment:

Typo fix

Before:

repository.git.authenticationType = SHARED_CREDENTIALS

Now:

repository.git.authenticationType = SSH_KEYPAIR

repository.git.sshCredentialsSource = SHARED_CREDENTIALS

Comment:

Refactoring shared credentials to be a sub-type of actual authentication method

Before:

repository.git.authenticationType = SSH_KEYPAIR

Now:

repository.git.authenticationType = SSH_KEYPAIR

repository.git.sshCredentialsSource = CUSTOM

Comment:

Refactoring shared credentials to be a sub-type of actual authentication method

Before:

repository.git.authenticationType = PASSWORD

Now

repository.git.authenticationType = PASSWORD

repository.git.passwordCredentialsSource = CUSTOM

Comment:

Refactoring shared credentials to be a sub-type of actual authentication method

Mercurial repository configuration changes

Before:

1
2
repository.hg.authenticationType = PASSWORD

repository.hg.username = <username>

repository.hg.password = <encrypted-password>

Now:

1
2
repository.hg.authenticationType = PASSWORD

repository.hg.password.source = CUSTOM

repository.hg.password.username = <username>

repository.hg.password.password = <encrypted-password>

NOT SET

1
2
repository.hg.username

repository.hg.password

Comment:

Introducing credentials source property and renaming

Before:

1
2
repository.hg.authenticationType = SSH_PROXY

repository.hg.ssh.keyFromFile = <sshKey>

repository.hg.ssh.passphrase = <encrypted-passphrase>

Now:

1
2
repository.hg.authenticationType = SSH_PROXY

repository.hg.ssh_proxy.source = CUSTOM

repository.hg.ssh_proxy.privateKey = <sshKey>

repository.hg.ssh_proxy.passphrase = <encrypted-passphrase>

NOT SET

1
2
repository.hg.ssh.keyFromFile

repository.hg.ssh.passphrase

Comment:

Introducing credentials source property and renaming

Before:

1
2
repository.hg.authenticationType = KEYFILE

repository.hg.ssh.keyFromFile = <encrypted-sshKey>

Now:

1
2
repository.hg.authenticationType = KEYFILE

repository.hg.keyfile.privateKey = <encrypted-sshKey>

NOT SET

1
2
repository.hg.ssh.keyFromFile

Comment:

Renaming

Before:

1
2
repository.hg.authenticationType = SHARED_CREDENTIALS

repository.hg.sharedCredentials = <credentialsId>

Now:

1
2
repository.hg.authenticationType = SSH_PROXY

repository.hg.ssh_proxy.source = SHARED_CREDENTIALS

repository.hg.ssh_proxy.sharedCredentials = <credentialsId>

NOT SET

1
2
repository.hg.sharedCredentials

Comment:

Moving to SSH_PROXY authentication type as a different source of credentials. Now SHARED_CREDENTIALS is no longer an authentication type.

Values marked as encrypted- need to be passed through EncryptionService.encrypt before storing in configuration.

Bitbucket repository configuration changes

Before:

repository.bitbucket.username = <username>

NOT SET

repository.bitbucket.password

Now:

repository.bitbucket.accessLevel = PUBLIC

repository.bitbucket.owner = <username>

repository.bitbucket.authenticationType = NONE

NOT SET

repository.bitbucket.username

repository.bitbucket.password

Comment:

We've emphasised the difference between public and private repositories in the UI, which required some changes in the model.

Additionally, we've introduced the authentication type so that the users can override it.

Before:

repository.bitbucket.username = <username>

repository.bitbucket.password = <password>

Now:

repository.bitbucket.accessLevel = PRIVATE

repository.bitbucket.passwordCredentialsSource = CUSTOM

repository.bitbucket.username = <username>

repository.bitbucket.password = <password>

repository.bitbucket.authenticationType = PASSWORD

NOT SET

repository.bitbucket.owner

Comment:

We've emphasised the difference between public and private repositories in the UI, which required some changes in the model.

Additionally, we've introduced the authentication type so that the users can override it.

Rate this page: