{"id":56986,"date":"2023-03-28T09:22:19","date_gmt":"2023-03-28T03:52:19","guid":{"rendered":"https:\/\/www.tothenew.com\/blog\/?p=56986"},"modified":"2023-04-05T09:28:11","modified_gmt":"2023-04-05T03:58:11","slug":"how-to-get-vetted-role-or-green-shield-for-module","status":"publish","type":"post","link":"https:\/\/www.tothenew.com\/blog\/how-to-get-vetted-role-or-green-shield-for-module\/","title":{"rendered":"How to get vetted role or green shield for module"},"content":{"rendered":"<h3 id=\"s-purpose\">Aim<\/h3>\n<p>The aim of this is to obtain a new Drupal role (<em>vetted<\/em>) after verifying what the user who applies understands about writing <a href=\"https:\/\/www.drupal.org\/writing-secure-code\" rel=\"nofollow\">secure code<\/a>\u00a0that follows the\u00a0<a href=\"https:\/\/www.drupal.org\/docs\/develop\/standards\" rel=\"nofollow\">Drupal coding standards<\/a>\u00a0and correctly uses the\u00a0<a href=\"https:\/\/api.drupal.org\/api\/drupal\" rel=\"nofollow\">Drupal APIs<\/a>, following the Drupal best practices.<\/p>\n<p>While the application requires users to choose a project they created and for which they committed the code, the focus of the application isn&#8217;t the project, but the users who apply, will get a new Drupal role necessary to be able to opt into security coverage for projects they are owner or maintainer in.<\/p>\n<h3 id=\"s-prerequisites\">Preparation<\/h3>\n<div>\n<p>Before opening an application, please check the issues reported by\u00a0<code class=\" language-php\">phpcs <span class=\"token operator\">--<\/span>standard<span class=\"token operator\">=<\/span>Drupal<span class=\"token punctuation\">,<\/span>DrupalPractice<\/code> the project that will be used for the application and fix everything that needs to be fixed. That alone fixes most of what reviewers will report. Although it does not resolve every issue, the application approval is faster.<\/p>\n<\/div>\n<p>Before\u00a0entering the project application process, the following conditions must be met.<\/p>\n<ul>\n<li>There isn&#8217;t another, still open, application from the same user. This includes postponed applications.<\/li>\n<li>The user who applies cannot yet opt for projects into <a href=\"https:\/\/www.drupal.org\/drupal-security-team\/security-advisory-process-and-permissions-policy\" rel=\"nofollow\">security advisory coverage<\/a>.<\/li>\n<li>The user who applies has committed code in the project used for the application (not an issue fork created to fix an issue in an existing project). Those commits must be (preferably) the only ones done in the branch used for the application, or be most of the commits for that branch.<\/li>\n<li>The account used to create the application (and to commit code in the project) isn&#8217;t a shared account. Shared accounts aren&#8217;t allowed to commit code on Drupal.org repositories.<\/li>\n<li>There is sufficient PHP code to see what the user who created the application understands of Drupal coding standards, Drupal APIs, and Drupal best practices; a project that only implements a hook or two to, for example, add a library (CSS or JavaScript) to most or all the Drupal pages doesn&#8217;t contain sufficient PHP code for these applications.<\/li>\n<\/ul>\n<h3 id=\"s-application-process-description\">Application process<\/h3>\n<ol>\n<li><a href=\"https:\/\/www.drupal.org\/docs\/develop\/git\/setting-up-git-for-drupal\/obtaining-git-access\" rel=\"nofollow\">Obtain basic Git access<\/a>\u00a0and\u00a0<a href=\"https:\/\/www.drupal.org\/docs\/develop\/managing-a-drupalorg-theme-module-or-distribution-project\/creating-a-new-project\/how-to\" rel=\"nofollow\">create a project<\/a>\u00a0for your code.<\/li>\n<li>Get your project into a state you feel is release-ready;\u00a0ideally, you would commit the project early and have a track record of several weeks\/months of commits so that application reviewers can get an idea of your development and maintenance style.<\/li>\n<li>Have a look at the\u00a0<a href=\"https:\/\/www.drupal.org\/docs\/develop\/managing-a-drupalorg-theme-module-or-distribution-project\/security-coverage\/opting-into\/security-advisory-coverage-application-checklist\" rel=\"nofollow\">security advisory coverage applications checklist<\/a>\u00a0and try to resolve the common issues.<\/li>\n<li>Once ready,\u00a0<a href=\"https:\/\/www.drupal.org\/node\/add\/project-issue\/projectapplications\" rel=\"nofollow\">create a new issue<\/a>\u00a0in the\u00a0<em>Drupal.org security advisory coverage applications<\/em> queue. Fill out the issue form.<br \/>\n<img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-56991\" src=\"\/blog\/wp-ttn-blog\/uploads\/2023\/03\/1-1-300x217.png\" alt=\"\" width=\"300\" height=\"217\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2023\/03\/1-1-300x217.png 300w, \/blog\/wp-ttn-blog\/uploads\/2023\/03\/1-1-768x555.png 768w, \/blog\/wp-ttn-blog\/uploads\/2023\/03\/1-1-624x451.png 624w, \/blog\/wp-ttn-blog\/uploads\/2023\/03\/1-1.png 925w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<ul>\n<li><strong>Title:<\/strong> The branch name and the project name (For example, for the 2.0.x branch of the project <em>Email Octopus<\/em>, then the title would be [2.0.x] Email Octopus.)<\/li>\n<li><strong>Category:<\/strong>\u00a0<em>Task<\/em><\/li>\n<li><strong>Status:<\/strong>\u00a0<em>Needs review\u00a0<\/em>or, if you want reviewers to wait before reviewing the project,<em>\u00a0Active<\/em><\/li>\n<li><strong>Component:<\/strong>\u00a0Select the option that better describes the type of project used for the application<\/li>\n<li><strong>Description<\/strong>\n<ol>\n<li>Write a detailed description of what your project does, including how it is different from other, similar, projects (if applicable)<\/li>\n<li>For themes, a screenshot is also helpful<\/li>\n<li>Add the link to the project page<\/li>\n<li>Add the list of links to reviews of other project applications that you did<img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-56990\" style=\"font-size: 1rem;\" src=\"\/blog\/wp-ttn-blog\/uploads\/2023\/03\/2-296x300.png\" alt=\"\" width=\"296\" height=\"300\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2023\/03\/2-296x300.png 296w, \/blog\/wp-ttn-blog\/uploads\/2023\/03\/2-624x633.png 624w, \/blog\/wp-ttn-blog\/uploads\/2023\/03\/2-24x24.png 24w, \/blog\/wp-ttn-blog\/uploads\/2023\/03\/2-48x48.png 48w, \/blog\/wp-ttn-blog\/uploads\/2023\/03\/2-96x96.png 96w, \/blog\/wp-ttn-blog\/uploads\/2023\/03\/2.png 659w\" sizes=\"(max-width: 296px) 100vw, 296px\" \/><span style=\"font-size: 1rem;\">\u00a0<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<\/li>\n<li>Reviewers will then examine the project files and provide feedback over the coming days\/weeks (again see <a href=\"https:\/\/www.drupal.org\/docs\/develop\/managing-a-drupalorg-theme-module-or-distribution-project\/security-coverage\/opting-into\/review-process-for-security-advisory-coverage-what-to-expect\" rel=\"nofollow\">Review process for security advisory coverage: What to expect<\/a>). You can always ask what to do, if you don&#8217;t understand it in first time.<\/li>\n<li>As the application process is fully volunteer-driven, many of our most active reviewers may use the <a href=\"https:\/\/www.drupal.org\/docs\/develop\/managing-a-drupalorg-theme-module-or-distribution-project\/security-coverage\/opting-1\" rel=\"nofollow\">review bonus program<\/a> to prioritize which applications they review. This program gives priority to those who are also helping to review other applications. Participation is not mandatory, but it does provide a significant fast track through the application process. Due to limited resources, it could otherwise take a number of weeks between reviews of your own application. To participate in the <em>Review Bonus<\/em>\u00a0program, review three other\u00a0<a href=\"https:\/\/www.drupal.org\/project\/issues\/projectapplications?order=last_comment_timestamp&amp;sort=asc&amp;status=8&amp;text=&amp;priorities=All&amp;categories=All&amp;component=All\" rel=\"nofollow\">applications<\/a> and reference them in your own application.<img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-56989\" src=\"\/blog\/wp-ttn-blog\/uploads\/2023\/03\/3-300x261.png\" alt=\"\" width=\"300\" height=\"261\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2023\/03\/3-300x261.png 300w, \/blog\/wp-ttn-blog\/uploads\/2023\/03\/3-624x543.png 624w, \/blog\/wp-ttn-blog\/uploads\/2023\/03\/3.png 743w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/li>\n<li>Once given the sign-off, you will be able to opt all your projects into security advisory coverage. <strong><em>Once this comes into place, there is no need to submit another application for review, since (at this stage) you are considered a trusted contributor.<br \/>\n<\/em><\/strong><\/li>\n<\/ol>\n<h3 id=\"s-what-happens-next\">What next steps are?<\/h3>\n<p>Once the application is fixed, and you have the role that allows you to opt projects into security advisory coverage, you can edit the project to change the value assigned to the <em>Security advisory coverage<\/em>\u00a0field.<\/p>\n<p>You will be able to opt into security advisory coverage for every project you create, including the ones created in the past.<\/p>\n<p><strong>Keeping in mind these pointers.<\/strong><\/p>\n<ol>\n<li>Once the project opts for security advisory, it can&#8217;t be undone, so please be careful while doing that, but you can always mark your releases as recommended(provides green shield) or not.<\/li>\n<li>Use correct branch naming and tags versioning.<\/li>\n<li>Before providing any stable release, clear the project issue queue, so your release may not have already reported bugs.<\/li>\n<li>Providing green shield stable release builds more trust for the end user in terms of security and code. So make sure you first have dev, beta, and alpha releases. Then provide the stable release.<\/li>\n<\/ol>\n<blockquote><p><strong><em>Once you are clear with all the processes and best practices, you can also start reviewing the other project applications and suggest feedback and can get credit for that issue.<\/em><\/strong><\/p><\/blockquote>\n<p>Thanks, Hope this helps.<\/p>\n<div class=\"ap-custom-wrapper\"><\/div><!--ap-custom-wrapper-->","protected":false},"excerpt":{"rendered":"<p>Aim The aim of this is to obtain a new Drupal role (vetted) after verifying what the user who applies understands about writing secure code\u00a0that follows the\u00a0Drupal coding standards\u00a0and correctly uses the\u00a0Drupal APIs, following the Drupal best practices. While the application requires users to choose a project they created and for which they committed the [&hellip;]<\/p>\n","protected":false},"author":1343,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":2},"categories":[3602],"tags":[4862],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/56986"}],"collection":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/users\/1343"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/comments?post=56986"}],"version-history":[{"count":4,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/56986\/revisions"}],"predecessor-version":[{"id":57046,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/56986\/revisions\/57046"}],"wp:attachment":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/media?parent=56986"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/categories?post=56986"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/tags?post=56986"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}