Skip to content

Platform Adapters

Platform Adapters

PACE uses two separate adapter interfaces to decouple CI/CD operations from issue tracking. This lets you mix platforms — for example, running CI on Bitbucket Pipelines while tracking sprints in Jira.

Two Adapter Types

CIAdapter — CI/CD and Git Hosting

Handles everything related to code review and pipeline feedback:

MethodPurpose
open_review_pr(day, pace_dir)Open a PR/MR for a human gate day
wait_for_commit_ci(sha, ...)Poll CI until the commit reaches a terminal state
post_daily_summary(day, gate_report)Post a one-line status update
write_job_summary(markdown)Write the full report to the job/run UI
set_variable(name, value)Update a CI/CD pipeline variable (e.g. PACE_PAUSED)

TrackerAdapter — Sprint Tracker / Issue Platform

Handles escalations and advisory findings:

MethodPurpose
open_escalation_issue(day, day_dir, hold_reason)Open a ticket when FORGE exhausts all retries
push_advisory_items(day, items, agent)Open a ticket for backlisted advisory findings

Configuration

Set both adapters in pace.config.yaml:

platform:
# CI/CD platform — handles PRs/MRs, CI polling, and job summaries.
# Supported values: github | gitlab | bitbucket | jenkins | local
ci: github
# Sprint tracker — handles HOLD escalations and advisory findings.
# Supported values: jira | github | gitlab | bitbucket | local
tracker: github

You can mix platforms:

platform:
ci: bitbucket # CI/CD via Bitbucket Pipelines
tracker: jira # Sprint tracking via Jira Cloud

Legacy Config

The old platform.type key is still supported and sets both adapters to the same platform:

platform:
type: github # sets both ci and tracker to github

Supported Platforms

CI Adapters

Platformci: valueEnvironment Variables
GitHub ActionsgithubGITHUB_TOKEN, GITHUB_REPOSITORY
GitLab CIgitlabGITLAB_TOKEN, GITLAB_PROJECT, GITLAB_URL (optional)
Bitbucket PipelinesbitbucketBITBUCKET_API_TOKEN, BITBUCKET_WORKSPACE, BITBUCKET_REPO_SLUG
JenkinsjenkinsJENKINS_URL, JENKINS_USER, JENKINS_TOKEN, JENKINS_JOB_NAME
Local (no CI)localnone

Tracker Adapters

Platformtracker: valueEnvironment Variables
Jira CloudjiraJIRA_URL, JIRA_EMAIL, JIRA_TOKEN, JIRA_PROJECT_KEY
GitHub IssuesgithubGITHUB_TOKEN, GITHUB_REPOSITORY
GitLab IssuesgitlabGITLAB_TOKEN, GITLAB_PROJECT, GITLAB_URL (optional)
Bitbucket IssuesbitbucketBITBUCKET_API_TOKEN, BITBUCKET_WORKSPACE, BITBUCKET_REPO_SLUG
Local (files only)localnone

Bitbucket Issues note: Bitbucket’s built-in issue tracker is basic (no sprints or epics). For sprint-level tracking, use tracker: jira alongside ci: bitbucket.

Valid Combinations

Use caseci:tracker:
Pure GitHubgithubgithub
Pure GitLabgitlabgitlab
Bitbucket + Jirabitbucketjira
Jenkins + Jirajenkinsjira
Jenkins + GitHub Issuesjenkinsgithub
Local developmentlocallocal

Jenkins Notes

Jenkins has no native PR or issue tracking. The JenkinsCIAdapter:

  • Writes review gates to local .md files instead of opening PRs
  • Polls build status via the Jenkins REST API (requires Jenkins Git plugin)

For issue tracking alongside Jenkins, configure a separate tracker platform (e.g. tracker: jira).

Jira Notes

Jira is a tracker-only platform. It cannot run CI pipelines or host PRs. Always pair tracker: jira with a CI platform:

platform:
ci: github # or gitlab, bitbucket, jenkins
tracker: jira