TEST-INFRA: [ci-execution-time] Improve CI pipeline observability #2310

Open
opened 2026-04-03 13:47:45 +00:00 by freemo · 1 comment
Owner

Metadata

  • Branch: task/ci-pipeline-observability
  • Commit Message: feat(ci): improve CI pipeline observability for execution time and job status
  • Milestone: v3.8.0
  • Parent Epic: #1678

Background and Context

During an analysis of the CI/CD pipeline, it was determined that there is no straightforward way to get the execution times of the CI jobs. This makes it difficult to identify performance bottlenecks and areas for improvement.

Current Limitations

  • The Forgejo API, as accessed by the available tools, does not provide a way to get the status and execution time of CI jobs for a given commit or pull request.
  • The output of the forgejo_list_repo_pull_requests tool is too large to be processed, even with a small limit, which prevents the analysis of recent PRs.
  • The content of the .forgejo/workflows/ci.yml file is base64 encoded, and there is no available tool to decode it, which prevents the analysis of the CI pipeline configuration.

Expected Behavior

  • CI job execution times are accessible and queryable via the Forgejo API.
  • It is possible to identify the slowest CI jobs and analyze their performance.
  • The CI pipeline can be continuously monitored and improved.
  • PR and commit data can be retrieved in a compact, processable form.
  • Repository file content can be decoded and inspected without external tooling.

Acceptance Criteria

  • The execution time of each CI job is available through the Forgejo API or an equivalent mechanism.
  • It is possible to identify the slowest CI jobs and analyze their performance.
  • PR listing results are paginated or compacted to avoid memory/size limits.
  • Base64-encoded file content from the repository can be decoded and inspected.

Subtasks

  • Expose CI job execution times through the Forgejo API (or document the correct API endpoint to use).
  • Provide a way to get the status of each CI job for a given commit or PR.
  • Ensure that the forgejo_list_repo_pull_requests tool can be used without exceeding memory limits, possibly by paginating the results or providing a more compact response.
  • Provide a way to decode base64-encoded file content retrieved from the repository.
  • Tests (Behave): Add scenarios covering CI observability queries.
  • Tests (Robot): Add integration test for CI job status retrieval.
  • Verify coverage ≥ 97% via nox -s coverage_report.
  • Run nox (all default sessions), fix any errors.

Definition of Done

This issue is complete when:

  • All subtasks above are completed and checked off.
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional lines providing relevant details about the implementation.
  • The commit is pushed to the remote on the branch matching the Branch in Metadata exactly.
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done.
  • All nox stages pass.
  • Coverage >= 97%.

Automated by CleverAgents Bot
Supervisor: Test Infrastructure | Agent: ca-new-issue-creator

## Metadata - **Branch**: `task/ci-pipeline-observability` - **Commit Message**: `feat(ci): improve CI pipeline observability for execution time and job status` - **Milestone**: v3.8.0 - **Parent Epic**: #1678 ## Background and Context During an analysis of the CI/CD pipeline, it was determined that there is no straightforward way to get the execution times of the CI jobs. This makes it difficult to identify performance bottlenecks and areas for improvement. ## Current Limitations - The Forgejo API, as accessed by the available tools, does not provide a way to get the status and execution time of CI jobs for a given commit or pull request. - The output of the `forgejo_list_repo_pull_requests` tool is too large to be processed, even with a small limit, which prevents the analysis of recent PRs. - The content of the `.forgejo/workflows/ci.yml` file is base64 encoded, and there is no available tool to decode it, which prevents the analysis of the CI pipeline configuration. ## Expected Behavior - CI job execution times are accessible and queryable via the Forgejo API. - It is possible to identify the slowest CI jobs and analyze their performance. - The CI pipeline can be continuously monitored and improved. - PR and commit data can be retrieved in a compact, processable form. - Repository file content can be decoded and inspected without external tooling. ## Acceptance Criteria - The execution time of each CI job is available through the Forgejo API or an equivalent mechanism. - It is possible to identify the slowest CI jobs and analyze their performance. - PR listing results are paginated or compacted to avoid memory/size limits. - Base64-encoded file content from the repository can be decoded and inspected. ## Subtasks - [ ] Expose CI job execution times through the Forgejo API (or document the correct API endpoint to use). - [ ] Provide a way to get the status of each CI job for a given commit or PR. - [ ] Ensure that the `forgejo_list_repo_pull_requests` tool can be used without exceeding memory limits, possibly by paginating the results or providing a more compact response. - [ ] Provide a way to decode base64-encoded file content retrieved from the repository. - [ ] Tests (Behave): Add scenarios covering CI observability queries. - [ ] Tests (Robot): Add integration test for CI job status retrieval. - [ ] Verify coverage ≥ 97% via `nox -s coverage_report`. - [ ] Run `nox` (all default sessions), fix any errors. ## Definition of Done This issue is complete when: - All subtasks above are completed and checked off. - A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional lines providing relevant details about the implementation. - The commit is pushed to the remote on the branch matching the **Branch** in Metadata exactly. - The commit is submitted as a **pull request** to `master`, reviewed, and **merged** before this issue is marked done. - All nox stages pass. - Coverage >= 97%. --- **Automated by CleverAgents Bot** Supervisor: Test Infrastructure | Agent: ca-new-issue-creator
freemo added this to the v3.8.0 milestone 2026-04-03 13:48:02 +00:00
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • Priority: Medium (confirmed)
  • Milestone: v3.8.0 (confirmed — CI infrastructure)
  • MoSCoW: Could Have — CI observability is a tooling improvement. Not blocking any deliverables.
  • Parent Epic: #1678 (confirmed correct)

Automated by CleverAgents Bot
Supervisor: Project Owner | Agent: ca-project-owner

Issue triaged by project owner: - **State**: Verified - **Priority**: Medium (confirmed) - **Milestone**: v3.8.0 (confirmed — CI infrastructure) - **MoSCoW**: Could Have — CI observability is a tooling improvement. Not blocking any deliverables. - **Parent Epic**: #1678 (confirmed correct) --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
cleveragents/cleveragents-core#2310
No description provided.