Problem/Motivation
Part of #3452326: [META] Increase Security of Project Ownership Transfer Process.
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 project moderators promote an existing co-maintainer or add a new maintainer/co-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 project moderators promote 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. Additionally, 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
Comments
Comment #2
cmlaraRelevant quotes from https://drupal.slack.com/archives/C2AAKNL13/p1715712783335239:
-- Joe GL
-- Juraj Nemec
Comment #3
dpiFWIW each project has
https://git.drupalcode.org/project/diff/activity
And all projects master feed:
https://git.drupalcode.org/groups/project/-/activity
Click Team tab at the top of each.
Data is also available on the API
Comment #4
cmlaraI will agree that the GitLab activity feed provides some data.
I will note a couple activities that the GitLab API may not provide data for:
Not to completely discount it, the activity stream is useful, there are just a few edge cases it may not be able to capture.
Comment #5
gisleIMHO, 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. There is no history if maintainer level changes increase the risk of supply chain attacks, so the perceived risk is IMHO theoretical.
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!
PS: For the record, ownership changes should be logged in the history of the project page. For an example visit https://www.drupal.org/node/3001729/revisions – notice the entry for April 13, 2024. However, this entry in the history log was created manually by me. It would be better if it was created automatically.
Comment #6
dwwIt 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. 😂
Comment #7
drummComment #8
avpadernoI am not sure that showing a notice when project moderators add a new maintainer/co-maintainer or promotes a co-maintainer to maintainer covers the most important cases for which somebody should get a notice.
Now that maintainers/co-maintainers can remove themselves from the project from the GitLab side, even project owners can remove themselves from the project. That is an equally important change for which a notice should be shown.
What about the cases where, out of two maintainers (including the project owner, which is just a maintainer for which the permissions cannot be adjusted), a maintainer becomes inactive?
What about the cases where the project owner is no longer active, and a new maintainer is added by the existing maintainer?
Showing a notice only when project moderators add or promote somebody seems to call out what project moderators do, as if they could have done anything wrong. Truly, the chances that a maintainer/co-maintainer added by project moderators does something wrong are the same chances that a maintainer/co-maintainer added by maintainers could do something wrong.
Comment #9
avpadernoComment #10
avpadernoProbably this issue should be split in two: an issue for logging when there is a change in the permissions people have on a project, and an issue for when showing a notice in the project page, if the notice is shown only for actions project moderators do, since project moderators is not a concept the Project module have.
Comment #11
cmlarahttps://www.drupal.org/project/projectownership/issues/3575804#comment-1... as an example where a user applies for a low level co-maintainer and after being granted is able to "backdoor" an upgrade via Slack. If one did not see the Slack message they would not know the user was promoted to full maintainer by someone that was not a full maintainer or owner.
Interestingly there appears to be no message in the GitLab Activity log showing the addition or upgrade in permissions.