The module persists taxonomy terms, menu links, custom blocks, and feeds as configuration.

This module started out as a fork of the structure_sync module, which (at the time of this writing) is not Drupal 9 compatible, and additionally does not offer export of feeds. This turned into a full module rewrite to take full advantage of modern PHP’s more advanced object-oriented capabilities.

Project link

https://drupal.org/project/content_as_config

Git instructions

git clone --branch 1.0.x https://git.drupalcode.org/project/content_as_config.git

PAreview checklist

http://pareview.net/r/30

Comments

daniel_j created an issue. See original summary.

daniel_j’s picture

Issue summary: View changes
avpaderno’s picture

Issue summary: View changes
avpaderno’s picture

Issue summary: View changes
Status: Needs review » Needs work

I added the the PAreview checklist link. Reviewers will check the project and post comments to list what should be changed.

If you haven't done it, yet, please check the PAreview report and fix what needs to be fixed. There could be some false positives; verify that what reported is correct, before making any change.
For example, the first point is wrong: Branches like 1.0.x are correct, since Drupal.org now supports semantic versioning.

daniel_j’s picture

Status: Needs work » Needs review

PAReview issues have all been addressed.

avpaderno’s picture

Status: Needs review » Needs work
Issue tags: +PAreview: security
  • What follows is a quick review of the project; it doesn't mean to be complete
  • For every point, I didn't make a complete list of where the code should be fixed, but an example of what is wrong in the code
  • Not all the points are application stoppers; some of them describe changes that would be preferable to make
    if ($count > 0) {
      $message = 'Deleted ' . $count . ' ' . static::ENTITY_TYPE . '(s) that were not in config.';
      static::logMessage($message);
    }

Instead of concatenating strings, the code should use placeholders, which allow to sanitize dynamic values when are rendered inside HTML markup. For the entity type label, EntityType::getPluralLabel() and EntityType::getSingularLabel() return the plural and the singular string, the strings the entity annotation contains.

    $batch = ['title' => 'Importing ' . static::ENTITY_TYPE . 's...'];

The batch title needs to be a safe, translated string.

daniel_j’s picture

Status: Needs work » Needs review

Translatability and string-concatenation issues have been addressed.

In order to simplify routing and local-task configuration, Feeds handling has been broken out into its own submodule.

avpaderno’s picture

Assigned: Unassigned » avpaderno
Status: Needs review » Fixed

Thank you for your contribution! I am going to update your account.

These are some recommended readings to help with excellent maintainership:

You can find more contributors chatting on the IRC #drupal-contribute channel. So, come hang out and stay involved.
Thank you, also, for your patience with the review process.
Anyone is welcome to participate in the review process. Please consider reviewing other projects that are pending review. I encourage you to learn more about that process and join the group of reviewers.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.