<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Chris Aniszczyk</title>
    <description>The latest articles on DEV Community by Chris Aniszczyk (@cra).</description>
    <link>https://dev.to/cra</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F145574%2F70616a40-0fa5-4b49-b30f-a42bc1054453.jpg</url>
      <title>DEV Community: Chris Aniszczyk</title>
      <link>https://dev.to/cra</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cra"/>
    <language>en</language>
    <item>
      <title>Linting your Open Source Repository</title>
      <dc:creator>Chris Aniszczyk</dc:creator>
      <pubDate>Thu, 13 Feb 2020 01:00:23 +0000</pubDate>
      <link>https://dev.to/cra/linting-your-open-source-repository-1bpn</link>
      <guid>https://dev.to/cra/linting-your-open-source-repository-1bpn</guid>
      <description>&lt;p&gt;Have you ever wanted to lint your open source repository for common issues at build time... such as a missing LICENSE, SECURITY.md CONTRIBUTING.md or even absent source license headers? There is a tool built by the &lt;a href="https://todogroup.org" rel="noopener noreferrer"&gt;TODO Group&lt;/a&gt; called repolinter that tackles this problem:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/todogroup" rel="noopener noreferrer"&gt;
        todogroup
      &lt;/a&gt; / &lt;a href="https://github.com/todogroup/repolinter" rel="noopener noreferrer"&gt;
        repolinter
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Repolinter, The Open Source Repository Linter
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://raw.githubusercontent.com/todogroup/repolinter/master/docs/images/P_RepoLinter01_logo_only.png"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Ftodogroup%2Frepolinter%2Fmaster%2Fdocs%2Fimages%2FP_RepoLinter01_logo_only.png" alt="Repo Linter"&gt;&lt;/a&gt; &lt;a rel="noopener noreferrer" href="https://github.com/todogroup/repolinter/workflows/Build/badge.svg"&gt;&lt;img src="https://github.com/todogroup/repolinter/workflows/Build/badge.svg" alt="Build Status"&gt;&lt;/a&gt;
&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Lint open source repositories for common issues.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Installation&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Repolinter requires &lt;a href="https://nodejs.org/en/" rel="nofollow noopener noreferrer"&gt;Node.JS&lt;/a&gt; &amp;gt;= v12 to function properly. Once Node.JS is installed, you can install Repolinter using &lt;code&gt;npm&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npm install -g repolinter&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Linting a Local Repository&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Once installed, run the following to lint a directory:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;repolinter lint &lt;span class="pl-k"&gt;&amp;lt;&lt;/span&gt;directory&lt;span class="pl-k"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;The above command will lint &lt;code&gt;&amp;lt;directory&amp;gt;&lt;/code&gt; with the local &lt;code&gt;repolinter.json&lt;/code&gt; ruleset or the &lt;a href="https://github.com/todogroup/repolinter./rulesets/default.json" rel="noopener noreferrer"&gt;default ruleset&lt;/a&gt; if none is found:&lt;/p&gt;
&lt;div class="highlight highlight-text-shell-session notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c1"&gt;repolinter % repolinter lint .&lt;/span&gt;
&lt;span class="pl-c1"&gt;Target directory: &amp;lt;directory&amp;gt;&lt;/span&gt;
&lt;span class="pl-c1"&gt;Lint:&lt;/span&gt;
&lt;span class="pl-c1"&gt;✔ license-file-exists: Found file (LICENSE)&lt;/span&gt;
&lt;span class="pl-c1"&gt;✔ readme-file-exists: Found file (README.md)&lt;/span&gt;
&lt;span class="pl-c1"&gt;✔ contributing-file-exists: Found file (CONTRIBUTING)&lt;/span&gt;
&lt;span class="pl-c1"&gt;✔ code-of-conduct-file-exists: Found file (CODE-OF-CONDUCT)&lt;/span&gt;
&lt;span class="pl-c1"&gt;✔ changelog-file-exists: Found file (CHANGELOG)&lt;/span&gt;
&lt;span class="pl-c1"&gt;...&lt;/span&gt;
&lt;span class="pl-c1"&gt;repolinter % echo $?&lt;/span&gt;
&lt;span class="pl-c1"&gt;0&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Linting a Remote Repository&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Repolinter also supports linting a git repository using the &lt;code&gt;--git&lt;/code&gt; flag. With this flag enabled, the directory input will be interpreted as a git URL which Repolinter will automatically clone into a temporary directory.&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;repolinter lint -g https://github.com/todogroup/repolinter.git&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;…&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/todogroup/repolinter" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;It's as simple as running 'npx repolinter' against a repository:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F95174hmfofpgfk598ycc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F95174hmfofpgfk598ycc.png" alt="repolinter output"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can decide what &lt;a href="https://github.com/todogroup/repolinter#default-ruleset" rel="noopener noreferrer"&gt;rules&lt;/a&gt; to run against your repository:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fe3rec177q7ktiky72ein.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fe3rec177q7ktiky72ein.png" alt="repolinter rules"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also build custom rules for your project, for example, this pull request added a rule to check for security policies (SECURITY.md):&lt;/p&gt;


&lt;div class="ltag_github-liquid-tag"&gt;
  &lt;h1&gt;
    &lt;a href="https://github.com/todogroup/repolinter/pull/146" rel="noopener noreferrer"&gt;
      &lt;img class="github-logo" alt="GitHub logo" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg"&gt;
      &lt;span class="issue-title"&gt;
        Add check for security policies
      &lt;/span&gt;
      &lt;span class="issue-number"&gt;#146&lt;/span&gt;
    &lt;/a&gt;
  &lt;/h1&gt;
  &lt;div class="github-thread"&gt;
    &lt;div class="timeline-comment-header"&gt;
      &lt;a href="https://github.com/caniszczyk" rel="noopener noreferrer"&gt;
        &lt;img class="github-liquid-tag-img" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Favatars1.githubusercontent.com%2Fu%2F63777%3Fv%3D4" alt="caniszczyk avatar"&gt;
      &lt;/a&gt;
      &lt;div class="timeline-comment-header-text"&gt;
        &lt;strong&gt;
          &lt;a href="https://github.com/caniszczyk" rel="noopener noreferrer"&gt;caniszczyk&lt;/a&gt;
        &lt;/strong&gt; posted on &lt;a href="https://github.com/todogroup/repolinter/pull/146" rel="noopener noreferrer"&gt;&lt;time&gt;Sep 14, 2019&lt;/time&gt;&lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag-github-body"&gt;
      &lt;p&gt;&lt;a href="https://help.github.com/en/articles/adding-a-security-policy-to-your-repository" rel="noopener noreferrer"&gt;https://help.github.com/en/articles/adding-a-security-policy-to-your-repository&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Signed-off-by: Chris Aniszczyk &lt;a href="mailto:caniszczyk@gmail.com"&gt;caniszczyk@gmail.com&lt;/a&gt;&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/todogroup/repolinter/pull/146" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;If you have ideas for more rules, please contribute them to the project.&lt;/p&gt;

&lt;p&gt;Anyways, happy open source linting!&lt;/p&gt;

</description>
      <category>linter</category>
      <category>javascript</category>
      <category>tools</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
