http response bitbucket /plugins/servlet/applinks/whoami 200 pint
http response bitbucket /rest/api/1.0/projects/prometheus/repos/rules/commits/.*/pull-requests 200 {"size":1,"isLastPage":true,"values":[{"id":1,"open":true,"fromRef":{"id":"refs/heads/v2","latestCommit":"fake-commit-id"},"toRef":{"id":"refs/heads/main","latestCommit":"fake-commit-id"}}]}
http response bitbucket /rest/api/latest/projects/prometheus/repos/rules/pull-requests/1/activities 200 {"size":0,"isLastPage":true,"values":[]}
http response bitbucket /rest/api/1.0/projects/prometheus/repos/rules/pull-requests/1/comments 200 {}
http start bitbucket 127.0.0.1:6123

mkdir testrepo
cd testrepo
exec git init --initial-branch=main .

cp ../src/v1.yml rules.yml
cp ../src/.pint.hcl .
env GIT_AUTHOR_NAME=pint
env GIT_AUTHOR_EMAIL=pint@example.com
env GIT_COMMITTER_NAME=pint
env GIT_COMMITTER_EMAIL=pint@example.com
exec git add .
exec git commit -am 'import rules and config'

exec git checkout -b v2
cp ../src/v2.yml rules.yml
exec git commit -am 'v2'

env BITBUCKET_AUTH_TOKEN="12345"
! exec pint -l error --no-color ci --require-owner
! stdout .
cd ..
cmp stderr stderr.txt
cmp testrepo/bitbucket.got bitbucket.expected

-- stderr.txt --
Bug: missing owner (rule/owner)
  ---> rules.yml:4-5 -> `No Owner`
5 |     expr: up > 0
              ^^^
              `rule/owner` comments are required in all files, please add a `# pint file/owner $owner`
              somewhere in this file and/or `# pint rule/owner $owner` on top of each rule.

Bug: invalid owner (rule/owner)
  ---> rules.yml:7-8 -> `Invalid`
8 |     expr: up == 0
              ^^^
              This rule is set as owned by `bob` but `bob` doesn't match any of the allowed owner
              values.

level=ERROR msg="Execution completed with error(s)" err="problems found"
-- src/v1.yml --
groups:
- name: foo
  rules:
  - alert: Foo
    expr: up > 0
  - alert: Foo
    expr: up == 0
  - alert: Foo
    expr: up > 0

-- src/v2.yml --
groups:
- name: foo
  rules:
  - alert: No Owner
    expr: up > 0
  # pint rule/owner bob
  - alert: Invalid
    expr: up == 0
  # pint rule/owner alice
  - alert: Owner Alice
    expr: up > 0

-- src/.pint.hcl --
owners {
  allowed = ["alice", "max", "not-bob"]
}
ci {
  baseBranch = "main"
}
parser {
  include    = [".+.yml"]
}
repository {
  bitbucket {
    uri        = "http://127.0.0.1:6123"
    timeout    = "10s"
    project    = "prometheus"
    repository = "rules"
  }
}

-- bitbucket.expected --
GET /rest/api/1.0/projects/prometheus/repos/rules/commits/.*/pull-requests
  Accept-Encoding: gzip
  Authorization: Bearer "12345"
  Content-Type: application/json

GET /plugins/servlet/applinks/whoami
  Accept-Encoding: gzip
  Authorization: Bearer "12345"
  Content-Type: application/json

GET /rest/api/latest/projects/prometheus/repos/rules/pull-requests/1/activities
  Accept-Encoding: gzip
  Authorization: Bearer "12345"
  Content-Type: application/json

POST /rest/api/1.0/projects/prometheus/repos/rules/pull-requests/1/comments
  Accept-Encoding: gzip
  Authorization: Bearer "12345"
  Content-Type: application/json
--- BODY ---
text: |
  :stop_sign: **Bug** reported by [pint](https://cloudflare.github.io/pint/) **rule/owner** check.

  <details>
  <summary>missing owner</summary>

  ```yaml
  5 |     expr: up > 0
                ^^^
  ```

  `rule/owner` comments are required in all files, please add a `# pint file/owner $owner` somewhere in this file and/or `# pint rule/owner $owner` on top of each rule.

  </details>

  ------

  :information_source: To see documentation covering this check and instructions on how to resolve it [click here](https://cloudflare.github.io/pint/checks/rule/owner.html).
severity: NORMAL
anchor:
  path: rules.yml
  lineType: ADDED
  fileType: TO
  diffType: EFFECTIVE
  line: 4
--- END ---

POST /rest/api/1.0/projects/prometheus/repos/rules/pull-requests/1/comments
  Accept-Encoding: gzip
  Authorization: Bearer "12345"
  Content-Type: application/json
--- BODY ---
text: |
  :stop_sign: **Bug** reported by [pint](https://cloudflare.github.io/pint/) **rule/owner** check.

  <details>
  <summary>invalid owner</summary>

  ```yaml
  8 |     expr: up == 0
                ^^^
  ```

  This rule is set as owned by `bob` but `bob` doesn't match any of the allowed owner values.

  </details>

  ------

  :information_source: To see documentation covering this check and instructions on how to resolve it [click here](https://cloudflare.github.io/pint/checks/rule/owner.html).
severity: NORMAL
anchor:
  path: rules.yml
  lineType: ADDED
  fileType: TO
  diffType: EFFECTIVE
  line: 7
--- END ---

