<?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: Suvraneel Bhuin</title>
    <description>The latest articles on DEV Community by Suvraneel Bhuin (@suvraneel).</description>
    <link>https://dev.to/suvraneel</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%2F740747%2F7234e0c3-394a-4a06-8f4a-c7eb97a23f09.jpeg</url>
      <title>DEV Community: Suvraneel Bhuin</title>
      <link>https://dev.to/suvraneel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/suvraneel"/>
    <language>en</language>
    <item>
      <title>Automated Self-assigns + Labeler + Contributors list</title>
      <dc:creator>Suvraneel Bhuin</dc:creator>
      <pubDate>Wed, 24 Nov 2021 07:59:31 +0000</pubDate>
      <link>https://dev.to/suvraneel/automated-self-assigns-labeler-contributors-list-51j4</link>
      <guid>https://dev.to/suvraneel/automated-self-assigns-labeler-contributors-list-51j4</guid>
      <description>&lt;h3&gt;
  
  
  My Workflow
&lt;/h3&gt;

&lt;p&gt;This workflow is a collection of numerous existing actions on marketplace bunched together to function ultra-efficiently.&lt;br&gt;&lt;br&gt;
All links to marketplace &amp;amp; usage here have been provided.&lt;br&gt;
This helps keep the repository clean, concise &amp;amp; out of chaos, moderating the process right from the beginning (issue creation) to the end (PR merge/close)&lt;/p&gt;
&lt;h2&gt;
  
  
  Special Custom Action integrated
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;h3&gt;
  
  
  &lt;a href="https://github.com/Suvraneel/Automated-assign-labeler/blob/main/action.yml"&gt;Issue Manager&lt;/a&gt;
&lt;/h3&gt;
&lt;h4&gt;
  
  
  &lt;strong&gt;&lt;em&gt;Avoids misuse of self-assigns by limiting the no. of issues that can be claimed by assignees (Unassigns after 3 by default)&lt;/em&gt;&lt;/strong&gt;
&lt;/h4&gt;
&lt;/blockquote&gt;


&lt;h2&gt;
  
  
  Featured Workflow Examples
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1. Controlled Issue Self-Assigns
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;"More power to contributors, more power to the maintainers"&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Assigner&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;issue_comment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;types&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;created&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;slash_assign&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="c1"&gt;# If the acton was triggered by a new comment that starts with `/assign`&lt;/span&gt;
    &lt;span class="c1"&gt;# or a on a schedule&lt;/span&gt;
    &lt;span class="na"&gt;if&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="s"&gt;(github.event_name == 'issue_comment' &amp;amp;&amp;amp; startsWith(github.event.comment.body, '/assign')) || github.event_name == 'workflow_dispatch'&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Assign the user or unassign stale assignments&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;JasonEtco/slash-assign-action@v0.0.3&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;assigned_label&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Assigned&lt;/span&gt;
          &lt;span class="na"&gt;days_until_warning&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;
          &lt;span class="na"&gt;days_until_unassign&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;7&lt;/span&gt;
          &lt;span class="na"&gt;stale_assignment_label&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Stale&lt;/span&gt;
          &lt;span class="na"&gt;assigned_comment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;This&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;issue&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;[has&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;been&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;assigned]({{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;comment.html_url&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}})&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;to&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;comment.user.login&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}!&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;It&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;will&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;become&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;unassigned&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;if&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;it&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;is&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;nott&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;closed&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;within&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;totalDays&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;days.&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;A&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;maintainer&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;can&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;also&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;add&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;the&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;**{{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;inputs.pin_label&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}**&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;label&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;to&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;prevent&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;it&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;from&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;being&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;unassigned."&lt;/span&gt;
          &lt;span class="na"&gt;fail_comment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;This&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;issue&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;is&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;already&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;assigned&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;to&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;a&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;contributor."&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Message failure&lt;/span&gt;
        &lt;span class="na"&gt;if&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ failure() }}&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/github-script@v4&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;script&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
            &lt;span class="s"&gt;github.issues.createComment({&lt;/span&gt;
              &lt;span class="s"&gt;issue_number: context.issue.number,&lt;/span&gt;
              &lt;span class="s"&gt;owner: context.repo.owner,&lt;/span&gt;
              &lt;span class="s"&gt;repo: context.repo.repo,&lt;/span&gt;
              &lt;span class="s"&gt;body: 'The issue is already assigned!\nPlease find/create a new issue to contribute to.\nYou can safely disregard the failed workflow notification for this issue. ❌',&lt;/span&gt;
            &lt;span class="s"&gt;});          &lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Checkout code&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@main&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Run Action&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Suvraneel/Issue_Watcher@main&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;token&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;${{&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;secrets.GITHUB_TOKEN&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;}}"&lt;/span&gt;
          &lt;span class="na"&gt;author&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;${{github.actor}}"&lt;/span&gt;
          &lt;span class="na"&gt;repo&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Suvraneel/Automated-assign-labeler&lt;/span&gt; &lt;span class="c1"&gt;#Change the Repo name&lt;/span&gt;
          &lt;span class="na"&gt;maxIssue&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  2. Generating dynamic formatted &lt;code&gt;Contributors.md&lt;/code&gt; file
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;"Reward the contributors with an attribution"&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sorted according to their contributions in the project
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Contribute List&lt;/span&gt;
&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;main&lt;/span&gt;
    &lt;span class="na"&gt;workflow_dispatch&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;contrib-readme-job&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
        &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;A job to automate contrib in readme&lt;/span&gt;
        &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Contribute List&lt;/span&gt;
              &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;akhilmhdh/contributors-readme-action@v2.3.3&lt;/span&gt;
              &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
                  &lt;span class="na"&gt;readme_path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;contributors.md"&lt;/span&gt;
              &lt;span class="na"&gt;env&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
                  &lt;span class="na"&gt;GITHUB_TOKEN&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.GITHUB_TOKEN }}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;p&gt;Here is a complete list of example workflows including several other automation tasks a maintainer might want to integrate in a large-scale opensource project.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;h3&gt;
  
  
  Issue/PR Creation Actions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Greeting Action greets contributor

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Example Workflow :&lt;/em&gt;
&lt;strong&gt;Find the workflow file &lt;a href="https://github.com/Suvraneel/Automated-assign-labeler/blob/main/.github/workflows/greetings.yml"&gt;here&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Self-assign using &lt;code&gt;/assign&lt;/code&gt; and prevent rogue issue spammers by limiting number of self-assigns (by default, 3)
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Example Workflow :&lt;/em&gt;
&lt;strong&gt;Find the workflow file &lt;a href="https://github.com/Suvraneel/Automated-assign-labeler/blob/main/.github/workflows/issue-assign.yml"&gt;here&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h3&gt;
  
  
  Issue/PR Auto Labeler
&lt;/h3&gt;
&lt;h4&gt;
  
  
  &lt;em&gt;Note&lt;/em&gt; - There are numerous labelers present in the marketplace. So, maintainers are requested to choose in accordance to project requirements. Consequently, a combination has been used here, in order to capture the best of both worlds.
&lt;/h4&gt;

&lt;p&gt;Types :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Labels issues based on keywords found in Issue/PR

&lt;ul&gt;
&lt;li&gt;Action deprecated, so &lt;a href="https://github.com/marketplace/keywordlabeler"&gt;Bot here&lt;/a&gt; &lt;em&gt;(Recommended)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Configuration file &lt;a href="https://github.com/Suvraneel/Automated-assign-labeler/blob/main/.github/keylabeler.yml"&gt;here&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Labels PRs based on extension of file changed

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/marketplace/actions/auto-label-action"&gt;Action here&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Example Workflow :&lt;/em&gt;
&lt;strong&gt;Find the workflow file &lt;a href="https://github.com/Suvraneel/Automated-assign-labeler/blob/main/.github/workflows/greetings.yml"&gt;here&lt;/a&gt;&lt;/strong&gt;
Configuration file &lt;a href="https://github.com/Suvraneel/Automated-assign-labeler/blob/main/.github/auto-label.json"&gt;here&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Labels PRs based on branch
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/marketplace/actions/label-mastermind"&gt;Action here&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h3&gt;
  
  
  On PR close
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Finds &amp;amp; closes any linked issues to the PR

&lt;ul&gt;
&lt;li&gt;Example Workflow :
&lt;strong&gt;Find the workflow file &lt;a href="https://github.com/Suvraneel/Automated-assign-labeler/blob/main/.github/workflows/Auto_Issue_Closer.yml"&gt;here&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h3&gt;
  
  
  Close Stale Issues
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Marks &amp;amp; closes stale issue after a stipulated time.

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/marketplace/actions/close-stale-issues"&gt;Action here&lt;/a&gt;
or&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/marketplace/stale"&gt;Bot here&lt;/a&gt; &lt;em&gt;(Recommended)&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h3&gt;
  
  
  Auto-updates Contributors list
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Fetches top contributors &amp;amp; adds them to &lt;code&gt;CONTRIBUTORS.md&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;Example Workflow :
&lt;strong&gt;Find the workflow file &lt;a href="https://github.com/Suvraneel/Automated-assign-labeler/blob/main/.github/workflows/contributors.yml"&gt;here&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Note-  &lt;a href="https://github.com/Suvraneel/Automated-assign-labeler/blob/main/.github/ISSUE_TEMPLATE/issue-form.yml"&gt;Issue Form (Beta)&lt;/a&gt; has been utilised for keylabeler to work super-efficently.
&lt;/h3&gt;


&lt;h3&gt;
  
  
  Submission Category:
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Maintainer Must-Haves&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Link to Code Repo
&lt;/h3&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Suvraneel"&gt;
        Suvraneel
      &lt;/a&gt; / &lt;a href="https://github.com/Suvraneel/Automated-assign-labeler"&gt;
        Automated-assign-labeler
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://user-images.githubusercontent.com/63473496/143197539-a9a7f978-5a0d-4946-b2bf-6d524a53f349.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ju6DE1gB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/63473496/143197539-a9a7f978-5a0d-4946-b2bf-6d524a53f349.png" alt="Automated-assign-labeler"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
Automated Self-assign + Key Labeler + Contributors workflow&lt;/h1&gt;
&lt;p&gt;This repository is a collection of numerous existing actions on marketplace bunched together to function ultra-efficiently.&lt;br&gt;
All links to marketplace &amp;amp; usage here have been provided
This helps keep the repo clean, concise &amp;amp; out of chaos moderating the process right from the beginning (issue creation) to the end (PR merge/close)&lt;/p&gt;
&lt;h2&gt;
Special Custom Action&lt;/h2&gt;
&lt;blockquote&gt;
&lt;h3&gt;
&lt;a href="https://github.com/Suvraneel/Issue_Watcher"&gt;Issue Manager&lt;/a&gt;
&lt;/h3&gt;
&lt;h4&gt;
&lt;em&gt;&lt;strong&gt;Avoids misuse of self-assigns by limiting the no. of issues that can be claimed by assignees&lt;/strong&gt;&lt;/em&gt;
&lt;/h4&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
Featured Workflow Examples&lt;/h2&gt;
&lt;h3&gt;
1. Controlled Issue Self-Assigns&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;"More power to contributors, more power to the maintainers"&lt;/em&gt;&lt;/p&gt;
&lt;div class="highlight highlight-source-yaml position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-ent"&gt;name&lt;/span&gt;: &lt;span class="pl-s"&gt;Assigner&lt;/span&gt;
&lt;span class="pl-ent"&gt;on&lt;/span&gt;:
  &lt;span class="pl-ent"&gt;issue_comment&lt;/span&gt;:
    &lt;span class="pl-ent"&gt;types&lt;/span&gt;: &lt;span class="pl-s"&gt;[created]&lt;/span&gt;

&lt;span class="pl-ent"&gt;jobs&lt;/span&gt;:
  &lt;span class="pl-ent"&gt;slash_assign&lt;/span&gt;:
    &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; If the acton was triggered by a new comment that starts with `/assign`&lt;/span&gt;
    &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; or a on a schedule&lt;/span&gt;
    &lt;span class="pl-ent"&gt;if&lt;/span&gt;: &lt;span class="pl-s"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="pl-s"&gt;      (github.event_name == 'issue_comment' &amp;amp;&amp;amp; startsWith(github.event.comment.body, '/assign')) || github.event_name == 'workflow_dispatch'&lt;/span&gt;
    &lt;span class="pl-ent"&gt;runs-on&lt;/span&gt;: &lt;span class="pl-s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="pl-ent"&gt;steps&lt;/span&gt;:
      - &lt;span class="pl-ent"&gt;name&lt;/span&gt;&lt;/pre&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/Suvraneel/Automated-assign-labeler"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;h3&gt;
  
  
  Additional Resources / Info
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Hence, this repository is a collection of ALL features a large-scale opensource project maintainer could wish for...
&lt;/h4&gt;

&lt;p&gt;Based off actions already in the marketplace.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open source project that is using this cool workflow :
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;GirlScript Winter of Contributing '21 Project repository with over 6000 participants, 1k stars &amp;amp; 1.7k forks&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
This actions combo has has helped the maintainers review &amp;amp; attend to issues &amp;amp; PRs in a very efficient &amp;amp; orderly fashion.&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/girlscript"&gt;
        girlscript
      &lt;/a&gt; / &lt;a href="https://github.com/girlscript/winter-of-contributing"&gt;
        winter-of-contributing
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      GirlScript Winter of Contributing is a three-month-long Open-Source Program organized by🧡GirlScript Foundation to create the world's largest multilingual content repository that will be available to everyone. 
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
GirlScript Winter of Contributing &lt;br&gt; &lt;a rel="noopener noreferrer" href="https://camo.githubusercontent.com/709f3cbabb06b8896edf6890835a638693bb9f70e6002a959e189190d55d6111/68747470733a2f2f6261646765732e66726170736f66742e636f6d2f6f732f76322f6f70656e2d736f757263652e7376673f763d313033"&gt;&lt;img src="https://camo.githubusercontent.com/709f3cbabb06b8896edf6890835a638693bb9f70e6002a959e189190d55d6111/68747470733a2f2f6261646765732e66726170736f66742e636f6d2f6f732f76322f6f70656e2d736f757263652e7376673f763d313033" alt="Open Source Love"&gt;&lt;/a&gt; &lt;a href="https://github.com/girlscript/winter-of-contributingLICENSE"&gt;&lt;img src="https://camo.githubusercontent.com/83d3746e5881c1867665223424263d8e604df233d0a11aae0813e0414d433943/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667" alt="GitHub license"&gt;&lt;/a&gt; &lt;a href="https://github.com/girlscript/winter-of-contributing.github/CODE_OF_CONDUCT.md"&gt;&lt;img src="https://camo.githubusercontent.com/966523edeac6e0c8fc3afeb347df2aaccd7407c0885946e96aa3c5297ebecb59/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f6e7472696275746f72253230436f76656e616e742d322e312d3462616161612e737667" alt="Contributor Covenant"&gt;&lt;/a&gt; &lt;a href="https://github.com/girlscript/winter-of-contributing.github/CONTRIBUTING.md"&gt;&lt;img src="https://camo.githubusercontent.com/accfb94480ba6689dde8dbeaf481411bbd41f1fbb13cb17e55e0846f11ce1cd5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5052732d77656c636f6d652d677265656e2e737667" alt="PRs Welcome"&gt;&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/girlscript/winter-of-contributingbanner_readme.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Fd-iXT5N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/girlscript/winter-of-contributingbanner_readme.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;GirlScript Winter of Contributing&lt;/strong&gt; is a three-month newly established initiative by &lt;strong&gt;&lt;a href="https://www.girlscript.tech/home" rel="nofollow"&gt;GirlScript Foundation&lt;/a&gt;&lt;/strong&gt; that will take place over the winter months. GWOC invites people to contribute their expertise and ideas in order to improve their technical abilities and obtain significant experience in the field of tech education.Throughout the program, the participants can contribute to a range of themes while being guided by an expert facilitator.The goal of GWOC is to develop the world's largest multilingual repository.🧡&lt;/p&gt;

&lt;h2&gt;
Contributing Guidelines&lt;/h2&gt;
&lt;p&gt;Please follow the &lt;a href="https://github.com/girlscript/winter-of-contributing./.github/CONTRIBUTING.md"&gt;contributing guidelines&lt;/a&gt; to contribute to the project.&lt;/p&gt;
&lt;h2&gt;
Code of Conduct&lt;/h2&gt;
&lt;p&gt;This project and everyone participating in it is governed by the &lt;a href="https://github.com/girlscript/winter-of-contributing./.github/CODE_OF_CONDUCT.md"&gt;GirlScript Code of Conduct&lt;/a&gt;. By participating, you are expected to uphold this code&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/girlscript/winter-of-contributing"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


</description>
      <category>actionshackathon21</category>
      <category>opensource</category>
      <category>github</category>
      <category>contributors</category>
    </item>
  </channel>
</rss>
