Add log of mainatiner level changes to project pages and provide notice when the Project Ownership queue adds/promotes a user

Created on 5 June 2024, 23 days ago
Updated 26 June 2024, 1 day ago

Problem/Motivation

Part of 🌱 [META] Increase Security of Project Ownership Transfer Process Active .

Currently there is no way to determine when maintainer levels have been changed for user on a project to understand how a project management structure may change over time. This is especially important for when the Project Ownership queue promotes an existing maintainer or adds a new maintainer.

In order to help site owners review a module and vet the security it would be helpful if D.O. prominently displayed notice on the project page when the Project Ownership queue promotes a user to higher permissions (so that site owners can evaluate if they trust the user) for a period of time (months?) after a change occurs. Addtionaly at the same time providing historical logs of permission changes so that at any time a site owner may evaluate the management history of a module prior to installing it.

The posting in the Project Ownership queue is considered insufficient notice as it is not directly connected to the project and does not capture all changes.

Steps to reproduce

N/A

Proposed resolution

Add maintainer level changelog (similar to project info change history)
Add warning to project pages where the Project Ownership queue has promoted a user without the the approval of an owner/maintainer.

Remaining tasks

User interface changes

TBD

API changes

TBD

Data model changes

TBD

Feature request
Status

Active

Version

2.0

Component

Projects

Created by

🇺🇸United States cmlara

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

  • Issue created by @cmlara
  • 🇺🇸United States cmlara

    Relevant quotes from https://drupal.slack.com/archives/C2AAKNL13/p1715712783335239:

    Is there a message on the project page that displays when a maintainer has switched? If not, perhaps a "the maintainers of this module has changed recently" message could be helpful.

    -- Joe GL

    Or more sophisticated approach - maintainers history - where all maintainers changes will be logged and displayed (with dates, etc). And you can easily check, when someone was added, removed, changed permissions and so on.

    -- Juraj Nemec

  • 🇦🇺Australia dpi Perth, Australia

    FWIW each project has

    https://git.drupalcode.org/project/diff/activity

    And all projects master feed:

    https://git.drupalcode.org/groups/project/-/activity

    Click Teams tab at the top of each

    Data is also available on the API

  • 🇺🇸United States cmlara

    I will agree that the GitLab activity feed provides some data.

    I will note a couple activities that are the GitLab API may not provide data for:
    Change of a maintainer to owner will not report a permission change as they hold the same level in GitLab.
    Adding a new user to owner will report the same as adding a maintainer.
    There is no easy way to determine if it was Project Ownership that added the user except to assume if its one of the 'known' queue admins that performed the action (and that they joined/left the project in rapid succession) that it may have been project ownership queue.

    Not to complexly discount it, the activity stream is useful, there are just a few edge cases it may not be able to capture.

  • 🇳🇴Norway gisle Norway

    IMHO, the peer review of the code committed to a project is much more important to discover supply chain attacks than the proposed highlighting the log of maintainer level changes.

    Of course, implementing this highlighting wouldn't do any harm, but resources is always in short supply, and any benefit this proposed measure might bring will probably not be worth the expense of implementing it.

    But if anyone wants to donate resources to implement what is sought here, please go ahead!

  • 🇺🇸United States dww

    It has been an ongoing regret that when I very first implemented the project level permissions and maintainers tab on d.o, that I didn’t build this into it from the beginning. 😢 Completely aside from the supply chain aspects and whether end users would care to see it, simply for the benefit of d.o site admins to figure out WTF is going on in various conflicts and disagreements that have come up, it would have been incredibly handy.

    Also note that while issues are planned to migrate to GitLab, AFAIK, the long term plan is to keep both project nodes and releases on d.o. So the fact GitLab has a feed for some useful things doesn’t solve that the historical view of changes to the “maintainership” is lacking and would be useful, even outside the scope of the parent meta.

    There’s probably an issue somewhere in the GitLab migration family of issues about how to keep project-level permissions in sync between the two worlds, but I don’t have a handy link. And yeah, the two have different models and not all perms cleanly map back and forth. It’s an unfortunate situation. If only 17 years ago me knew what I know now. 😂

  • 🇺🇸United States drumm NY, US
Production build 0.69.0 2024