# Project plan — go_api

Evidence date: 2026-10-13.

Source repository: `git@bitbucket.org:overdrive/go_api.git`.

Inspected revision: `master` at `366442a` (2023-09-18, Jaco Brits, "bitbucket-pipelines.yml created online with Bitbucket"). Full hash `366442ae98ef4d7180c587e01ebb2fdbe09c1fe5`. `origin/HEAD` points at `master`. The scan-host path `~/projects/sonar_scan/repos/go_api` was not on this machine. The tree below was read from a full clone of that git revision. Pipeline variable names are recorded; their values are not in git and are not reproduced.

This plan describes what the repository contains. It does not decide what the product should become.

## Product

There is no README, product requirements document, or application source in the repository. The only name in git is the repository itself: **go_api**.

The committed behaviour is a SonarQube project key and a Bitbucket Pipelines file that runs the `sonarsource/sonarqube-scan:2.0.1` pipe on the branch pattern `{master}`.

Provenance: **Implemented** in `sonar-project.properties` and `bitbucket-pipelines.yml`. No written statement of product purpose was found.

The repository name can be read as a Go-language API. Nothing in the tree is a Go module, a `.go` file, or an HTTP API. Provenance of that reading of the name: **Inferred** from the repository slug only.

**Unknown / Requires Confirmation:** what go_api is, who it is for, and where the source lives if it is not in this repository.

## Branch reality

| Line | Tip | Date | What it is |
|---|---|---|---|
| `master` (default; `origin/HEAD`) | `366442a` | 2023-09-18 | Only branch. Three commits, all on 2023-09-18 |

No other local or remote branches were present at inspection. No tags.

History, oldest first. Every commit is by Jaco Brits (`jaco@overdrive.co.za`):

- `14e18c6` — 2023-09-18 18:45:25 +0000 — "Initial commit". Adds `.gitignore` only. The file is Bitbucket's stock example ignore list. Its header says the list should be customized. It was not customized.
- `5c622e7` — 2023-09-18 19:11:45 +0000 — "sonar-project.properties created online with Bitbucket". Adds a one-line Sonar project key.
- `366442a` — 2023-09-18 19:12:17 +0000 — "bitbucket-pipelines.yml created online with Bitbucket". Adds the pipeline file. Tip of `master`.

Nothing has been committed since 2023-09-18. The three commits span about 27 minutes.

**Discrepancy:** the task-creation scan listed `sonarqube_scan.bat` at the repository root, next to `bitbucket-pipelines.yml` and `sonar-project.properties`. The bat file is not in any commit. `.gitignore` is in git and was not named in that scan listing (it is a dotfile). Provenance of the bat file: **Unknown** — it may have been an untracked file on the scan host.

## Objectives (inferred from the pipeline and the properties file, not from a written plan)

- On a branch that matches the pipeline pattern `{master}`, run a SonarQube analysis with the Bitbucket pipe `sonarsource/sonarqube-scan:2.0.1`.
- Identify the Sonar project as `overdrive_go_api_AYqpslFAuNwRc2P2S9SL`.
- Read the Sonar server URL and token from the pipeline variables `SONAR_HOST_URL` and `SONAR_TOKEN`.

The YAML does not set sources, exclusions, or a quality gate. There is no application in the tree for the scanner to analyse beyond the three tracked files.

## Scope

### In scope of `master`

- `.gitignore` — Bitbucket's default example ignore patterns (Node, Java, Python, Maven, JetBrains, test reports, OS junk, application binaries, large media).
- `sonar-project.properties` — `sonar.projectKey` only.
- `bitbucket-pipelines.yml` — Maven 3.3.9 image, one SonarQube step, branch pattern `{master}`.

### Out of scope / not in this repository

- A Go module (`go.mod`, `go.sum`), `.go` sources, an HTTP API, tests, a README, and a database.
- The values of `SONAR_HOST_URL` and `SONAR_TOKEN`.
- A Sonar server, quality gate, or dashboard. The project key does not include a host.
- `sonarqube_scan.bat`, named by the task-creation scan.
- A written backlog, owner beyond the git author, or milestone plan.

## System architecture

There is no application process in this repository. The only designed flow is the pipeline.

```text
push matching branch pattern {master}
        |
        v
image maven:3.3.9
clone depth: full
        |
        v
step "SonarQube analysis"
  pipe sonarsource/sonarqube-scan:2.0.1
    SONAR_HOST_URL = ${SONAR_HOST_URL}
    SONAR_TOKEN    = ${SONAR_TOKEN}
  reads sonar.projectKey from sonar-project.properties
```

The step does not run Maven, `go`, or a test command. A `sonar` cache is declared under `definitions.caches` and is not attached to the step.

## Major components

| Component | Where | What it does |
|---|---|---|
| Ignore list | `.gitignore` | Stock Bitbucket template. Not customized. |
| Sonar project key | `sonar-project.properties` | One property: `sonar.projectKey`. |
| Pipeline | `bitbucket-pipelines.yml` | Declares a SonarQube scan pipe on `{master}`. |

## Milestones visible in git

| Date | Commit | What landed |
|---|---|---|
| 2023-09-18 18:45 | `14e18c6` | Repository created. Ignore file only. |
| 2023-09-18 19:11 | `5c622e7` | Sonar project key added. |
| 2023-09-18 19:12 | `366442a` | Pipeline file added. Tip of `master`. |

No release, tag, or later milestone is in git.

## Known dependencies

Declared by the pipeline, and absent from the tree as runnable projects:

- Docker image `maven:3.3.9`. The script does not call `mvn`. There is no `pom.xml`.
- Bitbucket pipe `sonarsource/sonarqube-scan:2.0.1`.
- Bitbucket pipeline or workspace variables `SONAR_HOST_URL` and `SONAR_TOKEN`.

Whether those variables are set in Bitbucket is **Unknown / Requires Confirmation**.

The ignore file names Node, Java, Python, and Maven paths. Those lines are the stock template. They are not declared dependencies of a build. No Go toolchain is declared.

## Implementation plan

No implementation plan is written in the repository. The three commits are the whole plan that git records: create the repo, add a Sonar project key, then add a pipeline file.

## Current project status

Scaffold only. `master` at `366442a` contains three files and no application. The repository name can be read as a Go API. The tree does not contain one. The last commit is 2023-09-18.

## Open items that block a single description of the product

- What go_api is supposed to be, and where its source lives if not in this repository.
- Which Sonar server `SONAR_HOST_URL` points at, and whether the project key still exists there.
- Whether a quality gate is configured on that server. None is in git.
- Whether `sonarqube_scan.bat` exists only on the scan host.
- Whether the Maven image is intentional. The script never runs Maven, and there is no Go build either.
