Offer to add extra fields during pr create flow#768
Conversation
|
Thank you for putting this together! Prototypes are incredibly helpful and I'm really appreciative that you made this one so easy to interact with. Unordered thoughts:
|
|
Tested this and works great. Getting used to using both the
Good point, but I always find Suggested Reviewers to be missing some folks. |
|
I've pushed another change to prototype B (this branch) that lists 10,000 (fake) users and teams as potential assignees/reviewers to see how the multi-select picker fares. Only 7 items are displayed at maximum, but we can reconfigure that number based on our needs: After selecting an item with Space, the current filter seems cleared, but there is also an option to reconfigure that and keep the filter after selecting an item (the user would then have to clear the filter themselves to return to the pristine state). Some technical notes:
Personal preference: I definitely lean to Option E and that is primarily because avoiding displaying any picker for assignees/reviewers/labels/projects/milestone unless one is specifically asked for also allows us to avoid querying relevant data required to seed the picker. With Option B, we would have to query a lot of data that the user might even just skip through in a lot of cases. An approach I might even prefer more would be this: instead of asking “Would you like to add more information”, we would show the final confirmation prompt with “Submit”, “Preview”, “cancel”, but we would also show a menu of items accessible via keyboard shortcuts: A to enter assignees picker, L to enter label picker, and so on. These keyboard shortcuts would match those in the web UI. That way I could, for example, train my muscle memory to always hit "A" when I want to additionally assign people/teams to an issue or PR instead of having to visually hunt down that option through the mutli-select of prototype E. |
non fuzzy seems ok to start.
I guess I assumed Suggested Reviewers was static for PRs (and depended on the viewer+repo) but it makes sense that it's per-PR. Oh well.
Big +1 to this kind of approach! We dipped our toes in this with the body edit prompt (e to edit) and I think it feels really natural. I'd love to see it prototyped; what do you think, @ampinsk ? |
|
Thank you so much for all of this @mislav! ✨ I'm going to play some more today with the new fake data. From playing with it yesterday, I agree with a lot of the points already made. Basically, I think Option B is nice to think a little less, but it feels tedious to go through everything. Option E felt good but agree it was a little hard to anticipate what I needed ahead of time.
I'm having a little trouble picturing this, so I would love to see a sketch or prototype of it! I didn't know about the keyboard shortcuts on dotcom! 🤯 I also tried out this sketch as another way to integrate Option E into the |
I like this! I think it's a good compromise to allow adding more metadata just before submitting. I will also try to protype my keyboard shortcut-based approach tomorrow so we can all get a sense of how that feels. I just realized something: we should not allow “Preview in browser” after any assignees/reviewers/labels/projects/milestone have been selected. This is because it's impossible to send these via URL parameters for web-based pull request creation, so anything that the user selected so far would be lost. We learned this when people noticed that |
|
Ok after noodling around with all of our options and chatting through it with @billygriffin, here's what I'm proposing: To outline the steps here:
Does this make sense? How does this sound? One general concern I have is the interaction for searching in the multiselect options when there are long lists: I tried to show this gif that when I search and select a name, it's really unclear that I selected that name. When you hit space, it just resets back to the top of the list, which is really jarring. I know this is probably from |
@ampinsk That sounds good! I will start with implementing this approach. My biggest concern is still with my point above about load times/performance:
If a person just wants to add labels, they still have to skip through assignees/reviewers, and to display those we have to fetch all users in an organization, which for large organizations can take a while (~10 seconds for
Additionally, should we include org projects in the projects picker? If so, then we have similar loading considerations as with org members/teams. |
|
@mislav thank you for bringing that up! apologies I honestly just totally forgot about this point 🤦♀️ Yes, considering the performance concerns and that I was on the fence experience wise anyway, let's go with asking ahead of time. Here's an updated sketch to reflect that: We should probably support Org projects too. I'm also curious how we can optimize these or make these lists more intuitive, manageable and performant 🤔 |
|
As this was for prototyping and the work has since been opened in other PRs, I'm going to close this. |
|
does it able to add linked issue number with meta? |
|
@zigang93 No, but you can add a linked issue number by including something like |







This prototypes a flow during
gh pr createthat asks the user whether they would like to also select reviewers, assignees, labels, projects, and milestone. #340This branch encapsulates "Option B" from our planning docs. "Option E" is found in the
pr-create-prototype-Ebranch.How to test:
makebin/gh pr create- in this prototype, no PR will ever be submitted, so you are safe to choose "Submit"!Note: fake values (i.e. not read from the repository) are used as a list of available options.
To do: