http response prometheus /*/api/v1/metadata 200 {"status":"success","data":{}}
http response prometheus /*/api/v1/status/config 200 {"status":"success","data":{"yaml":"global:\n  scrape_interval: 30s\n"}}
http response prometheus /*/api/v1/status/flags 200 {"status":"success","data":{"storage.tsdb.retention.time": "1d"}}
http response prometheus /*/api/v1/query_range 200 {"status":"success","data":{"resultType":"matrix","result":[]}}
http response prometheus /*/api/v1/query 200 {"status":"success","data":{"resultType":"vector","result":[]}}
http start prometheus 127.0.0.1:7161

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

cp ../src/v0.yml prom1.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 v1
cp ../src/v1.yml prom1.yml
exec git commit -am 'v1'
exec pint --no-color ci
cmp stderr ../stderrV1.txt

exec git checkout main
exec git merge v1

exec git checkout -b v2
exec git mv prom1.yml prom2.yml
exec git commit -am 'v2'
! exec pint -l error --no-color ci
! stdout .
cmp stderr ../stderrV2.txt

-- stderrV1.txt --
level=INFO msg="Loading configuration file" path=.pint.hcl
level=INFO msg="Finding all rules to check on current git branch" base=main
level=INFO msg="Configured new Prometheus server" name=prom1 uris=1 uptime=up tags=[] include=["^prom1.yml$"] exclude=[]
level=INFO msg="Configured new Prometheus server" name=prom2 uris=1 uptime=up tags=[] include=["^prom2.yml$"] exclude=[]
level=INFO msg="Checking Prometheus rules" entries=2 workers=10 online=true
-- stderrV2.txt --
Bug: query on nonexistent series (promql/series)
  ---> prom2.yml:10 -> `DownAlert` [+1 duplicates]
10 |     expr: up == 0
               ^^
               `prom2` Prometheus server at http://127.0.0.1:7161/2 didn't have any series for the `up`
               metric in the last 1w.

level=ERROR msg="Execution completed with error(s)" err="problems found"
-- src/v0.yml --
groups:
- name: g1
  rules: []
-- src/v1.yml --
groups:
- name: g1
  rules:
  - alert: DownAlert
    # pint disable alerts/external_labels
    # pint disable promql/range_query
    # pint disable promql/rate
    # pint disable labels/conflict
    # pint disable promql/series(prom1)
    expr: up == 0
    annotations:
      summary: 'Service is down'
    labels:
      cluster: dev
  - record: up:sum
    # pint disable alerts/external_labels
    # pint disable promql/range_query
    # pint disable promql/rate
    # pint disable labels/conflict
    # pint disable promql/series(prom1)
    expr: up == 0
    labels:
      cluster: dev
-- src/.pint.hcl --
ci {
  baseBranch = "main"
}
parser {
  include    = [".+.yml"]
}
prometheus "prom1" {
  uri      = "http://127.0.0.1:7161/1"
  timeout  = "5s"
  required = true
  include  = ["prom1.yml"]
}
prometheus "prom2" {
  uri      = "http://127.0.0.1:7161/2"
  timeout  = "5s"
  required = true
  include  = ["prom2.yml"]
}
