mislav / hub

A command-line tool that makes git easier to use with GitHub.
https://hub.github.com/
MIT License
22.76k stars 2.2k forks source link

Updating a pull request #1523

Open devedse opened 7 years ago

devedse commented 7 years ago

I would like to update the description of a pull request.

Is this already implemented or can I make a feature request of this?

See: https://developer.github.com/v3/pulls/#update-a-pull-request

elliott-beach commented 7 years ago

I'm fairly certain that this feature does not currently exist. The maintainer seems to not have much time to devote to every feature update in this project, as there are many proposed features to review (good luck with a PR review). Personally, I think this feature would be a good addition.

mislav commented 7 years ago

Updating a PR isn't implemented yet, but since we have hub release edit command already, editing of issues/PRs might be implemented in the future.

devedse commented 7 years ago

For now I've used the octokit.net library which worked even better for me since hub in combination with the command line seems to have a max pull request body length.

For me this issue has low priority as of now :smile:.

strokirk commented 5 years ago

Being able to update the PR would be great, even if just certain parts initially.

I'm combining hub with ghi for my current workflow of updating the labels of PRs from the command line, but it would be great if this was possible using just hub.

Here is a short script using them together: https://gist.github.com/strokirk/afd1b292d51f57453bfb2d609e75792d

mislav commented 5 years ago

since hub in combination with the command line seems to have a max pull request body length.

@devedse There is no code in hub that limits pull request body length. If you think you have discovered a bug, please open another issue and tell us how you passed the body text to hub pull-request, thank you!

mislav commented 4 years ago

In hub master there is now the hub issue update <NUMBER> command #2432 which can update the following fields of an issue or pull request:

Updating PR-specific fields such as base or draft is still unsupported, but is always possible via hub api: https://github.com/github/hub/issues/2312#issuecomment-544626863

dcsobral commented 4 years ago

I've tried updating "draft" via the example in #2312, and it doesn't work. Updating other things such as "title" worked fine.

vlerenc commented 4 years ago

Same experience here @dcsobral. I can change fields like the title with hub, the v3 ReST API, and the v4 GraphQL API, but I have no clue how to convert-to-draft or ready-for-review a PR. I see the GitHub web UI calling backend functions named this way, but neither the API docs show me how to change the draft status nor would the hub allow to do that (the above call seems to explore the generic API call feature anyhow, so this doesn't come as a surprise, but I tried it nevertheless/just in case).

Do you in the meantime or does anybody know how to tweak the draft status of a GitHub PR programmatically?

mislav commented 4 years ago

@vlerenc Above was linked an example on how you can programmatically change a PR's status from draft to ready-to-review https://github.com/github/hub/issues/2312#issuecomment-544626863

vlerenc commented 4 years ago

Yes, I know, but it's not working @mislav . You wrote "This is untested.". I tested it and it doesn't work. I can change fields like the title with v3 and v4 and hub, which in the end calls v3, but neither allows to make a draft ready or turn a ready PR into a draft. The GitHub API also in its docs doesn't seem to support it, I believe. Or do you know for sure, that this works? If, then it must work differently than the command in that comment.

mislav commented 4 years ago

@vlerenc You are right. I think the only way is to use the GraphQL API. This should work: https://github.com/mislav/hub-api-utils/blob/master/bin/hub-pr-ready

vlerenc commented 4 years ago

Awesome @mislav, thank you very much. You used the mutation markPullRequestReadyForReview and it does work. I missed that one and stumbled only across the missing draft field in the updatePullRequest mutation. Do you happen to know also the other way around, i.e. how to turn a ready PR again into a draft? I don't see a corresponding mutation, but maybe there is another way to achieve that outcome?

mislav commented 4 years ago

@vlerenc There does not seem to be a programmatic way to convert a PR into a draft PR. This feature only landed in the web UI very recently, and usually it takes a bit for new features to make their way into stable APIs.

vlerenc commented 4 years ago

@mislav Thank you very much for taking the time to check and answer. Well, you taught me one way and maybe the other will open up eventually as well.

You know, we have a little bot for our project that deals with labels, milestones, PRs, etc. (comments may trigger commands, available only if the sender is a maintainer). Forcing a PR back into draft state is a useful thing to have for a maintainer, so I might want to raise a feature request at GitHub. Do you know where I would do that ideally?

It seems, there is a community forum, but it's in read-only for some days now: https://github.community. I didn't notice and thought I am too dumb to open a discussion as the button was inactive here: https://github.community/t5/GitHub-API-Development-and/bd-p/api. Or maybe it makes sense to ask at https://github.community/t5/How-to-use-Git-and-GitHub/Feature-Request-Switch-from-ready-to-draft-in-pull-requests/td-p/19107/page/7 when then plan to add programmatic means, but right now I see no way to append a post/ask a question.

If you have an advice, that would be great. Thanks for your help already.

mislav commented 4 years ago

Forcing a PR back into draft state is a useful thing to have for a maintainer, so I might want to raise a feature request at GitHub.

Agreed that it would be a useful operation. Our Pull Requests team is lately working on adding new APIs for things that are currently missing, this included. Therefore, you do not need to file a feature request. However, you do you have to patient, because these things can take weeks/months. Thank you!

vlerenc commented 4 years ago

Excellent, thank you @mislav !

vlerenc commented 3 years ago

Our Pull Requests team is lately working on adding new APIs for things that are currently missing, this included.

@mislav Any update on this? Is it now possible to turn a ready into a draft PR via the graphql API? Or even to do both, draft -> ready and ready -> draft with the v3 API or is the future entirely the graphql API and nothing new will be added anymore to the v3 API?

mislav commented 3 years ago

@vlerenc No, sorry. The only way to mark PRs as ready is via GraphQL, and there is no mutation to do the reverse operation yet.