git repository ACLs do not support a "person who can upload this package" type

Bug #1993290 reported by Robie Basak
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Launchpad itself
Triaged
High
Unassigned

Bug Description

This is a feature request.

In the design for git ACLs in Launchpad, provision was left for the ability to specify something like "only a person who can upload to the repository target can push to this ref". But this was not implemented yet.

In git-ubuntu there's user demand for the ability to "stage" uploads in a common repository branch somewhere. In order to make such a branch open to all uploaders, but closed to anyone else, I think we need this implemented in Launchpad please.

The reason I think this is necessary is that then we could (socially) expect individual uploaders to be responsible for their own staged commits, rather than put that all on the person who finally uploaded the entire branch. But this requires that final uploader to rely on the people who staged commits to be authorised to do so, and that would require the ACL.

Related branches

Revision history for this message
Colin Watson (cjwatson) wrote :

Design notes for this are in https://docs.google.com/document/d/1JW_D_Tgo4X2-vPMZtShSbi3cm1iOsGcNIzeOpa5E_wA/edit#heading=h.wthqu55fy3o4. I'll copy the relevant part here:

"""
In future, we will also want the ability for repository owners to declare that a branch may be pushed to by people who can upload the package to its distribution. This is especially useful for git-ubuntu, where we want to be able to configure all its repositories to allow people who can upload the package to (e.g.) Ubuntu bionic-proposed to be able to push to refs/heads/pending/ubuntu/bionic or refs/heads/pending/ubuntu/bionic-proposed or similar. However, we don't want to require reconfiguration any time Ubuntu gains a new series, and we don't want to have to hardcode a particular branch layout.

The solution is to observe that some characters are invalid in ref names (see git-check-ref-format(1)), and so we can use those to construct an escaping syntax that maps parts of the ref namespace to vocabularies. For instance, we might have a rule for refs/heads/pending/ubuntu/@{suite} with a special permission of type PACKAGE_UPLOADER, which would say that anyone who can upload the linked distribution source package to the given suite may push (or force-push, as applicable) to that branch.
"""

tags: added: feature git lp-code
Changed in launchpad:
status: New → Triaged
importance: Undecided → High
Revision history for this message
Robie Basak (racb) wrote :

As well as something like @{suite} in an ACL refspec to map to a named suite, we would also need something that says "whatever the development series is currently". I think Colin suggested development_series_alias for this.

Revision history for this message
Robie Basak (racb) wrote :

Sorry, wrong bug.

Changed in launchpad:
status: Triaged → In Progress
assignee: nobody → Robie Basak (racb)
assignee: Robie Basak (racb) → nobody
Revision history for this message
Robie Basak (racb) wrote :

...and I don't have permission to set the bug status back to Triaged.

Colin Watson (cjwatson)
Changed in launchpad:
status: In Progress → Triaged
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.