<?xml version="1.0"?>
<puzzles xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.0pdd.com/puzzles.xsd" date="2021-07-19T13:16:44+00:00" version="0.30.23">
  <puzzle alive="true">
    <issue href="https://github.com/artipie/helm-adapter/issues/14">14</issue>
    <ticket>13</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>13-c14a4213</id>
    <lines>38-39</lines>
    <body>Create an integration test We need an integration test for this class with described logic of upload from client side</body>
    <file>src/main/java/com/artipie/helm/PushChartSlice.java</file>
    <author>@Sammers21</author>
    <email>titantins@gmail.com</email>
    <time>2020-05-22T13:14:48Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/helm-adapter/issues/15" closed="2020-05-28T06:27:04+00:00">15</issue>
    <ticket>13</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>13-d5c3ea9d</id>
    <lines>63-65</lines>
    <body>Implement PushChart endpoint The slice should do the following: accept archived charts, save them into a storage and trigger index.yml reindexing.</body>
    <file>src/main/java/com/artipie/helm/PushChartSlice.java</file>
    <author>@Sammers21</author>
    <email>titantins@gmail.com</email>
    <time>2020-05-22T12:57:36Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/helm-adapter/issues/17" closed="2020-05-28T15:56:35+00:00">17</issue>
    <ticket>12</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>12-4acc03fc</id>
    <lines>88-90</lines>
    <body>Generate TgzArchive from byte flow For now this method is not implemented. Byte flow of archive data should be collected together in order to instantiate a TgzArchive instance.</body>
    <file>src/main/java/com/artipie/helm/PushChartSlice.java</file>
    <author>@Sammers21</author>
    <email>titantins@gmail.com</email>
    <time>2020-05-27T11:06:21Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/helm-adapter/issues/18" closed="2020-06-09T13:15:09+00:00">18</issue>
    <ticket>8</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>8-2526c766</id>
    <lines>63-65</lines>
    <body>Update Index file operation For now this method is not implemented. Index.yml file should be created if not existed before and update should be performed afterwards.</body>
    <file>src/main/java/com/artipie/helm/IndexYaml.java</file>
    <author>@Sammers21</author>
    <email>titantins@gmail.com</email>
    <time>2020-05-27T11:06:21Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/helm-adapter/issues/19" closed="2020-06-11T11:56:02+00:00">19</issue>
    <ticket>12</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>12-ae19aa75</id>
    <lines>32-33</lines>
    <body>Test for TgzArchive For now this method is not implemented, but we definitely need a test for this class.</body>
    <file>src/main/java/com/artipie/helm/TgzArchive.java</file>
    <author>@Sammers21</author>
    <email>titantins@gmail.com</email>
    <time>2020-05-27T17:18:16Z</time>
    <children>
      <puzzle alive="false">
        <issue href="https://github.com/artipie/helm-adapter/issues/29" closed="2021-07-13T12:39:35+00:00">29</issue>
        <ticket>19</ticket>
        <estimate>30</estimate>
        <role>DEV</role>
        <id>19-c97efbaf</id>
        <lines>62-64</lines>
        <body>Replace FileStorage with InMemory one Currently FileStorage is used in this test, but we need to refactor it to use InMemory storage.</body>
        <file>src/test/java/com/artipie/helm/TarArchiveTest.java</file>
        <author>@Sammers21</author>
        <email>titantins@gmail.com</email>
        <time>2020-06-04T12:28:13Z</time>
        <children/>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/helm-adapter/issues/20" closed="2020-05-29T12:11:11+00:00">20</issue>
    <ticket>12</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>12-e4bf7d8b</id>
    <lines>64-66</lines>
    <body>TgzArchive name method For now this method is not implemented. We should decompress the archive, find the chart version and name, and, return it, binded together.</body>
    <file>src/main/java/com/artipie/helm/TgzArchive.java</file>
    <author>@Sammers21</author>
    <email>titantins@gmail.com</email>
    <time>2020-05-27T11:06:21Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/helm-adapter/issues/21" closed="2020-06-01T12:56:06+00:00">21</issue>
    <ticket>12</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>12-328a6b37</id>
    <lines>76-78</lines>
    <body>Save the archive into Asto. For now this method is not implemented. The archive should be saved with a key name, obtained from TgzArchive#name().</body>
    <file>src/main/java/com/artipie/helm/TgzArchive.java</file>
    <author>@Sammers21</author>
    <email>titantins@gmail.com</email>
    <time>2020-05-27T11:06:21Z</time>
    <children>
      <puzzle alive="false">
        <issue href="https://github.com/artipie/helm-adapter/issues/26" closed="2020-06-01T13:26:29+00:00">26</issue>
        <ticket>21</ticket>
        <estimate>30</estimate>
        <role>DEV</role>
        <id>21-a79af815</id>
        <lines>142-144</lines>
        <body>Reimplement with slices Instead of copying parts of content into small chunks we can use the big ByteBuffer for referencing to a particular part which would improve memory footprint.</body>
        <file>src/main/java/com/artipie/helm/TgzArchive.java</file>
        <author>@Sammers21</author>
        <email>titantins@gmail.com</email>
        <time>2020-06-01T12:43:42Z</time>
        <children/>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/helm-adapter/issues/31" closed="2020-06-16T03:54:15+00:00">31</issue>
    <ticket>89</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>89-bbfe0d9a</id>
    <lines>112-114</lines>
    <body>Implement IndexYaml#empty For now this method is not implemented. This method should return mappings related to an empty index.yaml file and does not include any chart related information</body>
    <file>src/main/java/com/artipie/helm/IndexYaml.java</file>
    <author>@Sammers21</author>
    <email>titantins@gmail.com</email>
    <time>2020-06-08T13:23:28Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/helm-adapter/issues/32" closed="2020-06-15T10:38:21+00:00">32</issue>
    <ticket>89</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>89-cdf59b8a</id>
    <lines>124-127</lines>
    <body>Implement IndexYaml#empty This method should update index mappings by scanning a given chart yaml file. Read the official docs https://helm.sh/docs/topics/chart_repository/ for more details</body>
    <file>src/main/java/com/artipie/helm/IndexYaml.java</file>
    <author>@Sammers21</author>
    <email>titantins@gmail.com</email>
    <time>2020-06-08T13:23:28Z</time>
    <children>
      <puzzle alive="false">
        <issue href="https://github.com/artipie/helm-adapter/issues/40" closed="2020-06-17T07:32:23+00:00">40</issue>
        <ticket>32</ticket>
        <estimate>30</estimate>
        <role>DEV</role>
        <id>32-3a6b6984</id>
        <lines>146-148</lines>
        <body>Digest field One of the fields Index.yaml require is "digest" field. This field should also be generated.</body>
        <file>src/main/java/com/artipie/helm/IndexYaml.java</file>
        <author>@Sammers21</author>
        <email>titantins@gmail.com</email>
        <time>2020-06-11T14:45:50Z</time>
        <children/>
      </puzzle>
      <puzzle alive="false">
        <issue href="https://github.com/artipie/helm-adapter/issues/41" closed="2020-11-12T15:05:22+00:00">41</issue>
        <ticket>32</ticket>
        <estimate>30</estimate>
        <role>DEV</role>
        <id>32-66701d6b</id>
        <lines>149-151</lines>
        <body>Create a unit test for digest field One of the fields Index.yaml require is "digest" field. The test should make verify that field has been generated correctly.</body>
        <file>src/main/java/com/artipie/helm/IndexYaml.java</file>
        <author>@Sammers21</author>
        <email>titantins@gmail.com</email>
        <time>2020-06-15T08:00:46Z</time>
        <children/>
      </puzzle>
      <puzzle alive="false">
        <issue href="https://github.com/artipie/helm-adapter/issues/42" closed="2020-06-17T12:32:15+00:00">42</issue>
        <ticket>32</ticket>
        <estimate>30</estimate>
        <role>DEV</role>
        <id>32-7ba44240</id>
        <lines>152-154</lines>
        <body>Urls field One of the fields Index.yaml require is "urls" field. This field should also be generated.</body>
        <file>src/main/java/com/artipie/helm/IndexYaml.java</file>
        <author>@Sammers21</author>
        <email>titantins@gmail.com</email>
        <time>2020-06-11T14:45:50Z</time>
        <children/>
      </puzzle>
      <puzzle alive="false">
        <issue href="https://github.com/artipie/helm-adapter/issues/43" closed="2021-07-02T07:52:29+00:00">43</issue>
        <ticket>32</ticket>
        <estimate>30</estimate>
        <role>DEV</role>
        <id>32-3ab761f4</id>
        <lines>155-157</lines>
        <body>Create a unit test for urls field One of the fields Index.yaml require is "urls" field. The test should make verify that field has been generated correctly.</body>
        <file>src/main/java/com/artipie/helm/IndexYaml.java</file>
        <author>@Sammers21</author>
        <email>titantins@gmail.com</email>
        <time>2020-06-15T08:00:46Z</time>
        <children/>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/helm-adapter/issues/44" closed="2020-07-01T08:10:29+00:00">44</issue>
    <ticket>1</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>1-043bc894</id>
    <lines>46-48</lines>
    <body>Ensure that generation work In order to check the file generation works fine, we need to create a test, which will install pushed before chart and ensure successful installation.</body>
    <file>src/main/java/com/artipie/helm/IndexYaml.java</file>
    <author>@Sammers21</author>
    <email>titantins@gmail.com</email>
    <time>2020-06-11T14:45:50Z</time>
    <children>
      <puzzle alive="false">
        <issue href="https://github.com/artipie/helm-adapter/issues/53" closed="2020-07-03T06:49:31+00:00">53</issue>
        <ticket>44</ticket>
        <estimate>30</estimate>
        <role>DEV</role>
        <id>44-c6205a1b</id>
        <lines>114-117</lines>
        <body>Bind reference repo to a temp dir The generation of the reference index.yaml is performed in the resource folder. It is not a good approach which might case problems with subsequent test. The generation should be performed in a temp folder.</body>
        <file>src/test/java/com/artipie/helm/SubmitChartITCase.java</file>
        <author>@Sammers21</author>
        <email>titantins@gmail.com</email>
        <time>2020-07-01T07:47:44Z</time>
        <children/>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/helm-adapter/issues/52" closed="2020-07-01T08:10:35+00:00">52</issue>
    <ticket>1</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>1-f8ff3e8f</id>
    <lines>83-85</lines>
    <body>Ensure that the generated file is good We need to run 'helm repo index .' and check if a generated file is similar to the one generated by this slice.</body>
    <file>src/test/java/com/artipie/helm/SubmitChartITCase.java</file>
    <author>@Sammers21</author>
    <email>titantins@gmail.com</email>
    <time>2020-06-29T07:36:06Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/helm-adapter/issues/57" closed="2020-12-02T13:03:58+00:00">57</issue>
    <ticket>11</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>11-e613e413</id>
    <lines>45-47</lines>
    <body>Add a test to check if auth works For now basic auth is implemented and work with anonymous credentials. We need to check if it work with non anonymous credentials.</body>
    <file>src/main/java/com/artipie/helm/HelmSlice.java</file>
    <author>@Sammers21</author>
    <email>titantins@gmail.com</email>
    <time>2020-07-06T13:28:34Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/helm-adapter/issues/86" closed="2021-01-12T12:21:17+00:00">86</issue>
    <ticket>84</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>84-6dc281f6</id>
    <lines>134-136</lines>
    <body>Remove duplicating code. There is duplicating code in this method and in `IndexYaml#update`. It is necessary to remove this duplication.</body>
    <file>src/main/java/com/artipie/helm/metadata/IndexYaml.java</file>
    <author>Aleksandr Krasnov</author>
    <email>genryxy.alexandr@yandex.ru</email>
    <time>2021-01-11T15:06:27Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/helm-adapter/issues/94" closed="2021-03-16T08:25:22+00:00">94</issue>
    <ticket>90</ticket>
    <estimate>60</estimate>
    <role>DEV</role>
    <id>90-d6ead5a4</id>
    <lines>107-111</lines>
    <body>Extract logic for creating a new version of chart for `index.yaml`. In this method and in `IndexYaml#update` the same logic for generating additional fields is used. It is necessary to extract this logic or to redesign `IndexYaml` class by removing interaction with storage or something else.</body>
    <file>src/main/java/com/artipie/helm/metadata/IndexByDirectory.java</file>
    <author>Aleksandr Krasnov</author>
    <email>genryxy.alexandr@yandex.ru</email>
    <time>2021-01-21T08:15:21Z</time>
    <children>
      <puzzle alive="true">
        <issue href="https://github.com/artipie/helm-adapter/issues/108">108</issue>
        <ticket>94</ticket>
        <estimate>30</estimate>
        <role>DEV</role>
        <id>94-41d3f14c</id>
        <lines>38-39</lines>
        <body>Residing this class in order to remove synchronized block, preferring keeping it immutable.</body>
        <file>src/main/java/com/artipie/helm/metadata/IndexYamlMapping.java</file>
        <author>andreoss</author>
        <email>andreoss@posteo.net</email>
        <time>2021-03-16T08:25:13Z</time>
        <children/>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/helm-adapter/issues/113" closed="2021-07-16T12:19:18+00:00">113</issue>
    <ticket>112</ticket>
    <estimate>90</estimate>
    <role>DEV</role>
    <id>112-3bff32f1</id>
    <lines>47-51</lines>
    <body>Replace parser with reactive version to avoid copying index file to temp storage. This parser should be replaced with converter from Publisher#ByteBuffer to another Publisher#ByteBuffer which is splitted by breaks (based on implementation of org.reactivestreams.Processor) @checkstyle CyclomaticComplexityCheck (500 lines)</body>
    <file>src/main/java/com/artipie/helm/metadata/Index.java</file>
    <author>Alexander</author>
    <email>38591972+genryxy@users.noreply.github.com</email>
    <time>2021-04-29T07:38:20Z</time>
    <children>
      <puzzle alive="true">
        <issue href="https://github.com/artipie/helm-adapter/issues/188">188</issue>
        <ticket>113</ticket>
        <estimate>30</estimate>
        <role>DEV</role>
        <id>113-8cba5db4</id>
        <lines>52-56</lines>
        <body>Fix reindex operation. For some cases (about 1-2 of 1000) these tests fail with NPE when it tries to get entries of a new index. It looks like index does not have time to copy from temporary written index file to the source one. It is necessary to address this problem and enable tests.</body>
        <file>src/test/java/com/artipie/helm/HelmAstoReindexTest.java</file>
        <author>Alexander</author>
        <email>38591972+genryxy@users.noreply.github.com</email>
        <time>2021-07-16T15:58:02Z</time>
        <children/>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/helm-adapter/issues/117" closed="2021-05-24T08:48:58+00:00">117</issue>
    <ticket>109</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>109-f9067b99</id>
    <lines>61-64</lines>
    <body>Refactor Helm class. Now this class is too big, therefore it should be refactored by extracting some functionality. Probably to extract some classes which would be responsible for writing info about charts to index file.</body>
    <file>src/main/java/com/artipie/helm/Helm.java</file>
    <author>Alexander</author>
    <email>38591972+genryxy@users.noreply.github.com</email>
    <time>2021-04-29T09:56:46Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/helm-adapter/issues/134" closed="2021-05-20T13:25:36+00:00">134</issue>
    <ticket>109</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>109-89820728</id>
    <lines>61-65</lines>
    <body>Extract classes for different operations. Now this class encapsulates logic for several operations. And it is quite large. It would be better to divide this class in separate classes for each operation. Probably some other types of refactoring is possible here for simplification.</body>
    <file>src/main/java/com/artipie/helm/ChartsWriter.java</file>
    <author>Alexander</author>
    <email>38591972+genryxy@users.noreply.github.com</email>
    <time>2021-05-17T13:12:46Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/artipie/helm-adapter/issues/187" closed="2021-07-19T13:16:44+00:00">187</issue>
    <ticket>112</ticket>
    <estimate>90</estimate>
    <role>DEV</role>
    <id>112-f1a0e802</id>
    <lines>43-46</lines>
    <body>Replace parser with reactive version to avoid copying index file to temp storage. This parser should be replaced with converter from Publisher#ByteBuffer to another Publisher#ByteBuffer which is splitted by breaks (based on implementation of org.reactivestreams.Processor)</body>
    <file>src/main/java/com/artipie/helm/metadata/Index.java</file>
    <author>@g4s8</author>
    <email>g4s8.public@gmail.com</email>
    <time>2021-05-13T06:29:58Z</time>
    <children/>
  </puzzle>
</puzzles>
