<html>
<head>
  <title>Find Build</title>
  <meta name="description" content="Find the first build containing a changelist that was released">
  <link rel="stylesheet" href="/static/css/base.css">
  <link rel="stylesheet" href="/static/css/changelog.css">
</head>
<body>
  <div class="navbar">
    <p class="navbar-title">Container Optimized OS</p>
    <a class="signout" href="/signout/?redirect=/findreleasedbuildv2/">Sign Out</a>
  </div>
  <div class="sidenav">
    <a href="/">Home</a>
    <a href="/changelog/">Changelog</a>
    <a href="/findbuild/">Find Build</a>
    <a class="active" href="/findreleasedbuildv2/">Find Released Build</a>
    <a href="/readme/">Readme</a>
  </div>
  <div class="main">
    <h1>Find Released Build with CL</h1>
    <p class="feature-info">
        Find the first Container-Optimized OS released build containing a desired
        changelist.<br>
      Example input: <b>3280</b> or
    </p>
    <p class="feature-info">
      <b>Note:</b>  It is possible that COS build was released with the cl number so please check out the Landed in tab. 
    </p>
    <p class="feature-info">
      <b>Note:</b> Commits must be submitted through Gerrit to be tracked by
      this tool. Commits directly submitted to a Git repository are not
      supported.
    </p>
    <form class="changelog-form" action="/findreleasedbuildv2">
      <div class="text">
        {{if (ne .CL "")}}
          <input type="text" class="cl-input" name="cl" placeholder="CL-Number" value={{.CL}} required>
        {{else}}
          <input type="text" class="cl-input" name="cl" placeholder="CL-Number" required>
        {{end}}
        <input class="submit" type="submit" value="Submit"><br>
      </div>
      <div class="radio">
        {{if .Internal}}
          <label>
            <input type="radio" class="internal" name="instance" value="cos-internal" checked>
            Internal
          </label>
          <label>
            <input type="radio" class="external" name="instance" value="cos">
            External
          </label>
        {{else}}
          <label>
            <input type="radio" class="internal" name="instance" value="cos-internal">
            Internal
          </label>
          <label>
            <input type="radio" class="external" name="instance" value="cos" checked>
            External
          </label>
        {{end}}
      </div>
    </form>
    <div class="locate-build-result">
      {{if (ne .BuildNum "")}}
        <p>
          <a href={{.GerritLink}} target="_blank"> CL {{.CLNum}}</a>
          released in build <b>{{.BuildNum}}</b>.
        </p>
      {{end}}
    </div>
  </div>
</body>
</html>
