MySQL - Repository Polling - Periodically (v5.8+)
Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Product | Version | Database | Documentation reference |
---|---|---|---|
Bamboo | V5.8.X V5.9.X V5.10.X V5.11.x V5.12.X V5.13.X | MySQL | Polling the repository for changes |
Lets find out how to get Bamboo's repository polling values from MySQL database along with updating those values.
- Get repository polling
- Get repository polling lower than 190 seconds
- Get repository polling when using Git as Repository host
- Get repository polling when using Subversion as Repository host
- Update repository polling to 600 seconds
Get repository polling
/**
* Bamboo version: 5.8+
* Database: MySQL
* Triggers: 'Repository polling' > 'Polling strategy' > 'Periodically'
*/
select B.FULL_KEY as PLAN_KEY,
B.TITLE as TITLE,
VL.PLUGIN_KEY as REPOSITORY_TYPE,
ExtractValue(BD.XML_DEFINITION_DATA,
'//triggerDefinition/pluginKey[text()="com.atlassian.bamboo.triggers.atlassian-bamboo-triggers:poll"]/../config/item/key[text()="repository.change.poll.type"]/../value[text()="PERIOD"]/../../item/key[text()="repository.change.poll.pollingPeriod"]/../value'
) as FREQUENCY,
BD.BUILD_DEFINITION_ID as BUILD_DEFINITION_ID
from VCS_LOCATION as VL
join PLAN_VCS_LOCATION as PVL on PVL.VCS_LOCATION_ID = VL.VCS_LOCATION_ID
join BUILD as B on PVL.PLAN_ID = B.BUILD_ID
join BUILD_DEFINITION as BD on B.BUILD_ID = BD.BUILD_ID
where B.SUSPENDED_FROM_BUILDING = false
and ExtractValue(BD.XML_DEFINITION_DATA,
'//triggerDefinition/pluginKey[text()="com.atlassian.bamboo.triggers.atlassian-bamboo-triggers:poll"]/../config/item/key[text()="repository.change.poll.type"]/../value[text()="PERIOD"]/../../item/key[text()="repository.change.poll.pollingPeriod"]/../value'
) != ''
order by FREQUENCY desc, PLAN_KEY, TITLE;
What expect from query above:
PLAN_KEY | TITLE | REPOSITORY_TYPE | FREQUENCY | BUILD_DEFINITION_ID |
---|---|---|---|---|
REP-SVN | Subversion | com.atlassian.bamboo.plugin.system.repository:svn | 190 | 2654213 |
REP-GIT | Git | com.atlassian.bamboo.plugins.atlassian-bamboo-plugin-git:git | 180 | 2654209 |
Get repository polling lower than 190 seconds
/**
* Bamboo version: 5.8+
* Database: MySQL
* Triggers: 'Repository polling' > 'Polling strategy' > 'Periodically'
*/
select B.FULL_KEY as PLAN_KEY,
B.TITLE as TITLE,
VL.PLUGIN_KEY as REPOSITORY_TYPE,
ExtractValue(BD.XML_DEFINITION_DATA,
'//triggerDefinition/pluginKey[text()="com.atlassian.bamboo.triggers.atlassian-bamboo-triggers:poll"]/../config/item/key[text()="repository.change.poll.type"]/../value[text()="PERIOD"]/../../item/key[text()="repository.change.poll.pollingPeriod"]/../value'
) as FREQUENCY,
BD.BUILD_DEFINITION_ID as BUILD_DEFINITION_ID
from VCS_LOCATION as VL
join PLAN_VCS_LOCATION as PVL on PVL.VCS_LOCATION_ID = VL.VCS_LOCATION_ID
join BUILD as B on PVL.PLAN_ID = B.BUILD_ID
join BUILD_DEFINITION as BD on B.BUILD_ID = BD.BUILD_ID
where B.SUSPENDED_FROM_BUILDING = false
and ExtractValue(BD.XML_DEFINITION_DATA,
'//triggerDefinition/pluginKey[text()="com.atlassian.bamboo.triggers.atlassian-bamboo-triggers:poll"]/../config/item/key[text()="repository.change.poll.type"]/../value[text()="PERIOD"]/../../item/key[text()="repository.change.poll.pollingPeriod"]/../value'
) != ''
and ExtractValue(BD.XML_DEFINITION_DATA,
'//triggerDefinition/pluginKey[text()="com.atlassian.bamboo.triggers.atlassian-bamboo-triggers:poll"]/../config/item/key[text()="repository.change.poll.type"]/../value[text()="PERIOD"]/../../item/key[text()="repository.change.poll.pollingPeriod"]/../value'
) < 190
order by FREQUENCY desc, PLAN_KEY, TITLE;
What expect from query above:
PLAN_KEY | TITLE | REPOSITORY_TYPE | FREQUENCY | BUILD_DEFINITION_ID |
---|---|---|---|---|
REP-GIT | Git | com.atlassian.bamboo.plugins.atlassian-bamboo-plugin-git:git | 180 | 2654209 |
Get repository polling when using Git as Repository Host
/**
* Bamboo version: 5.8+
* Database: MySQL
* Triggers: 'Repository polling' > 'Polling strategy' > 'Periodically'
* Condition: 'Repository host' as Git
*/
select B.FULL_KEY as PLAN_KEY,
B.TITLE as TITLE,
VL.PLUGIN_KEY as REPOSITORY_TYPE,
ExtractValue(BD.XML_DEFINITION_DATA,
'//triggerDefinition/pluginKey[text()="com.atlassian.bamboo.triggers.atlassian-bamboo-triggers:poll"]/../config/item/key[text()="repository.change.poll.type"]/../value[text()="PERIOD"]/../../item/key[text()="repository.change.poll.pollingPeriod"]/../value'
) as FREQUENCY,
BD.BUILD_DEFINITION_ID as BUILD_DEFINITION_ID
from VCS_LOCATION as VL
join PLAN_VCS_LOCATION as PVL on PVL.VCS_LOCATION_ID = VL.VCS_LOCATION_ID
join BUILD as B on PVL.PLAN_ID = B.BUILD_ID
join BUILD_DEFINITION as BD on B.BUILD_ID = BD.BUILD_ID
where B.SUSPENDED_FROM_BUILDING = false
and VL.PLUGIN_KEY = 'com.atlassian.bamboo.plugins.atlassian-bamboo-plugin-git:git'
order by FREQUENCY desc, PLAN_KEY, TITLE;
What expect from query above:
PLAN_KEY | TITLE | REPOSITORY_TYPE | FREQUENCY | BUILD_DEFINITION_ID |
---|---|---|---|---|
REP-GIT | Git | com.atlassian.bamboo.plugins.atlassian-bamboo-plugin-git:git | 180 | 2654209 |
Get repository polling when using Subversion as Repository Host
/**
* Bamboo version: 5.8+
* Database: MySQL
* Triggers: 'Repository polling' > 'Polling strategy' > 'Periodically'
* Condition: 'Repository host' as Git
*/
select B.FULL_KEY as PLAN_KEY,
B.TITLE as TITLE,
VL.PLUGIN_KEY as REPOSITORY_TYPE,
ExtractValue(BD.XML_DEFINITION_DATA,
'//triggerDefinition/pluginKey[text()="com.atlassian.bamboo.triggers.atlassian-bamboo-triggers:poll"]/../config/item/key[text()="repository.change.poll.type"]/../value[text()="PERIOD"]/../../item/key[text()="repository.change.poll.pollingPeriod"]/../value'
) as FREQUENCY,
BD.BUILD_DEFINITION_ID as BUILD_DEFINITION_ID
from VCS_LOCATION as VL
join PLAN_VCS_LOCATION as PVL on PVL.VCS_LOCATION_ID = VL.VCS_LOCATION_ID
join BUILD as B on PVL.PLAN_ID = B.BUILD_ID
join BUILD_DEFINITION as BD on B.BUILD_ID = BD.BUILD_ID
where B.SUSPENDED_FROM_BUILDING = false
and VL.PLUGIN_KEY = 'com.atlassian.bamboo.plugin.system.repository:svn'
order by FREQUENCY desc, PLAN_KEY, TITLE;
What expect from query above:
PLAN_KEY | TITLE | REPOSITORY_TYPE | FREQUENCY | BUILD_DEFINITION_ID |
---|---|---|---|---|
REP-SVN | Subversion | com.atlassian.bamboo.plugin.system.repository:svn | 190 | 2654213 |
Update Repository polling to 600 seconds
In order to run the updates, you will be required to:
- stop Bamboo (bring the instance down)
run the UPDATE statement against Bamboo's database:
Update repository polling to 600 seconds/** * Bamboo version: 5.8+ * Database: MySQL * Triggers: 'Repository polling' > 'Polling strategy' > 'Periodically' * Condition: update Repository polling to 600 seconds in a given Plan */ update BUILD_DEFINITION as BD set BD.XML_DEFINITION_DATA = UpdateXML(BD.XML_DEFINITION_DATA,'//triggerDefinition/pluginKey[text()="com.atlassian.bamboo.triggers.atlassian-bamboo-triggers:poll"]/../config/item/key[text()="repository.change.poll.type"]/../value[text()="PERIOD"]/../../item/key[text()="repository.change.poll.pollingPeriod"]/../value', '<value>600</value>') where BD.BUILD_DEFINITION_ID = 2654213;
- start Bamboo