From d21bba62984a70c737632c7ca217c4e6bd5ab388 Mon Sep 17 00:00:00 2001 From: gabrielgio Date: Wed, 22 Jul 2020 15:40:31 +0200 Subject: Adds bamboo specs --- bamboo-specs/src/main/java/tutorial/PlanSpec.java | 58 +++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 bamboo-specs/src/main/java/tutorial/PlanSpec.java (limited to 'bamboo-specs/src/main/java') diff --git a/bamboo-specs/src/main/java/tutorial/PlanSpec.java b/bamboo-specs/src/main/java/tutorial/PlanSpec.java new file mode 100644 index 0000000..7dfd5f3 --- /dev/null +++ b/bamboo-specs/src/main/java/tutorial/PlanSpec.java @@ -0,0 +1,58 @@ +package tutorial; + +import com.atlassian.bamboo.specs.api.BambooSpec; +import com.atlassian.bamboo.specs.api.builders.plan.Plan; +import com.atlassian.bamboo.specs.api.builders.plan.PlanIdentifier; +import com.atlassian.bamboo.specs.api.builders.project.Project; +import com.atlassian.bamboo.specs.util.BambooServer; +import com.atlassian.bamboo.specs.api.builders.permission.Permissions; +import com.atlassian.bamboo.specs.api.builders.permission.PermissionType; +import com.atlassian.bamboo.specs.api.builders.permission.PlanPermissions; + +/** + * Plan configuration for Bamboo. + * Learn more on: https://confluence.atlassian.com/display/BAMBOO/Bamboo+Specs + */ +@BambooSpec +public class PlanSpec { + + /** + * Run main to publish plan on Bamboo + */ + public static void main(final String[] args) throws Exception { + //By default credentials are read from the '.credentials' file. + BambooServer bambooServer = new BambooServer("http://localhost:8085"); + + Plan plan = new PlanSpec().createPlan(); + + bambooServer.publish(plan); + + PlanPermissions planPermission = new PlanSpec().createPlanPermission(plan.getIdentifier()); + + bambooServer.publish(planPermission); + } + + PlanPermissions createPlanPermission(PlanIdentifier planIdentifier) { + Permissions permission = new Permissions() + .userPermissions("admin", PermissionType.ADMIN, PermissionType.CLONE, PermissionType.EDIT) + .groupPermissions("bamboo-admin", PermissionType.ADMIN) + .loggedInUserPermissions(PermissionType.VIEW) + .anonymousUserPermissionView(); + return new PlanPermissions(planIdentifier.getProjectKey(), planIdentifier.getPlanKey()).permissions(permission); + } + + Project project() { + return new Project() + .name("Project Name") + .key("PRJ"); + } + + Plan createPlan() { + return new Plan( + project(), + "Plan Name", "PLANKEY") + .description("Plan created from (enter repository url of your plan)"); + } + + +} -- cgit v1.2.3