# Bamboo

Mobb can be integrated into any CI/CD platform of your choice. In this guide, the process of integration with Bamboo will be demonstrated.

After logging into Mobb, select the last option in the menu: “**Connect Mobb to Your Workflow**”.

<figure><img src="/files/T16LJajPr4sX1eMDefxo" alt="" width="563"><figcaption></figcaption></figure>

To run Mobb within CircleCI, select “**Bamboo**”.

You will be presented with a sample `yaml` script that you can use in Bamboo. This particular example uses Snyk as the SAST scanner, however, you may want to modify the script to use the SAST tool of your choice.

```yaml
---
version: 2
plan:
  project-key: MOB
  key: MOB
  name: Mobb-Demo-Plan
stages:
- Default Stage:
    manual: false
    final: false
    jobs:
    - SAST-Mobb-Autofixer
SAST-Mobb-Autofixer:
  key: JOB1
  description: Run SAST Scan, if issues are found, run Mobb Autofixer to auto fix all issues.
  tasks:
  - checkout:
      force-clean-build: false
      description: Checkout Default Repository
  - script:
      interpreter: SHELL
      scripts:
      - |-
        chmod +x ./bamboo-specs/update_github_status.sh
        ./bamboo-specs/update_github_status.sh $bamboo_GITHUB_PAT_SECRET $bamboo_planRepository_username $bamboo_planRepository_name $bamboo_planRepository_revision "pending" $bamboo_buildResultsUrl "Bamboo job has started" "continuous-integration/bamboo"
      description: Notify Github on the start of the job
  - script:
      interpreter: BINSH_OR_CMDEXE
      scripts:
      - |-
        # Update GitHub to indicate SAST Scan is starting
        ./bamboo-specs/update_github_status.sh $bamboo_GITHUB_PAT_SECRET $bamboo_planRepository_username $bamboo_planRepository_name $bamboo_planRepository_revision "pending" $bamboo_buildResultsUrl "Snyk Scan Started" "continuous-integration/bamboo/snyk"

        npx snyk auth $bamboo_SNYK_API_SECRET
        issues_found=false
        npx snyk code test --sarif-file-output=report.json
        exit_code=$?

        # Update GitHub PR on whether vulns are found
        if [ $exit_code -eq 0 ]; then
            echo "(Success) Snyk completed with exit code $exit_code."
            ./bamboo-specs/update_github_status.sh $bamboo_GITHUB_PAT_SECRET $bamboo_planRepository_username $bamboo_planRepository_name $bamboo_planRepository_revision "success" $bamboo_buildResultsUrl "Snyk Scan Complete - No issues found!" "continuous-integration/bamboo/snyk"
        else
            echo "(Failure) Snyk completed with exit code $exit_code."
            ./bamboo-specs/update_github_status.sh $bamboo_GITHUB_PAT_SECRET $bamboo_planRepository_username $bamboo_planRepository_name $bamboo_planRepository_revision "failure" $bamboo_buildResultsUrl "Snyk Scan Failed - Vulnerabilities found!" "continuous-integration/bamboo/snyk"
            issues_found=true
        fi
        echo "Issue found: $issues_found"
        echo "issues_found=$issues_found" >> status.properties
        exit $exit_code
      description: SAST scan
  final-tasks:
  - inject-variables:
      file: status.properties
      scope: RESULT
      namespace: inject
      description: Load SAST scan status
  - script:
      interpreter: SHELL
      scripts:
        - |-
          # Extract GitHub URL to be used by bugsy
          GITHUBURL=$(echo $bamboo_repository_git_repositoryUrl | sed -E 's|(https://github.com/[^/]+/[^/]+).git|\\1|') 
          echo \"Github URL is: $GITHUBURL\"
          # Mobb CLI
          MOBBURL=$(npx mobbdev@latest analyze -f report.json -r $GITHUBURL --ref $bamboo_planRepository_branchName --api-key $bamboo_MOBB_API_SECRET --ci)
          echo \"Mobb URL: $MOBBURL\"
          # Publish the Mobb Fix Link back to GitHub
          ./bamboo-specs/update_github_status.sh $bamboo_GITHUB_PAT_SECRET $bamboo_planRepository_username $bamboo_planRepository_name $bamboo_planRepository_revision \"success\" $MOBBURL \"Click on \\\\\\\"Details\\\\\\\" to access the Mobb Fix Link\" \"Mobb Fix Link\"

      conditions:
      - variable:
          equals:
            bamboo.inject.issues_found: 'true'
      description: Mobb
  - script:
      interpreter: SHELL
      scripts:
      - ./bamboo-specs/update_github_status.sh $bamboo_GITHUB_PAT_SECRET $bamboo_planRepository_username $bamboo_planRepository_name $bamboo_planRepository_revision "success" $bamboo_buildResultsUrl "Bamboo job is complete" "continuous-integration/bamboo"
      description: Notify GitHub on the end of the job
  artifact-subscriptions: []
repositories:
- mobb-bamboo-integration:
    scope: global
triggers:
- remote:
    description: remote-trigger
branches:
  create:
    for-pull-request:
      accept-fork: true
  delete:
    after-deleted-days: 7
    after-inactive-days: 30
  link-to-jira: false
notifications: []
labels: []
dependencies:
  require-all-stages-passing: false
  enabled-for-branches: true
  block-strategy: none
  plans: []
other:
  concurrent-build-plugin: system-default
  force-stop-build: true
---
version: 2
plan:
  key: MOB-MOB
plan-permissions:
- users:
  - bamboo
  permissions:
  - view
  - edit
  - build
  - clone
  - admin
  - view-configuration
...

```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mobb.ai/mobb-user-docs/ci-cd-integrations/bamboo.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
