Coder Social home page Coder Social logo

opp's Introduction

Opp

Opp is an Opinionated Pull request Pusher for github.

It takes away the hassle of going to the github UI to create and merge pull requests.

Installing

go install github.com/cupcicm/opp@latest

Demo

Usage

Let's say your history is this

You can create two separate PRs like this

Independent PRs Dependent PRs
opp pr HEAD^
opp pr --base master HEAD
opp pr HEAD^
opp pr HEAD
You can merge either pr/1 or pr/2 first You need to merge pr/1 first as pr/2 depends on it

Features

  • Create pull requests without having to choose (or remember) a branch name: opp creates a local branch called pr/1234 to match PR #1234.
  • push, pull and merge from the command line: opp push / opp pull / opp merge
  • easily create sets of dependant PRs: ask for review on PR 2 that depends on PR 1 being merged. Then opp will take care of merging them in the right order.
  • Don't write the PR description yourself. opp chooses the longest commit message in your commits and uses it as the description.

Questions / contributions

  • please feel free to create issues
  • or send pull requests
  • or come discuss it on discord :

opp's People

Contributors

cupcicm avatar gabrielreid avatar clairephi avatar

Watchers

 avatar

Forkers

gabrielreid

opp's Issues

opp pr does not checkout the new branch at pr creation

Say you have 1 commits off the main branch and you run opp pr. It currently creates a new local branch, pushes it, and creates a new pull request. The expectation is that it also checks out the new local branch I think.

opp doesn't work well for working on forked repos

When contributing to a repo that you don't have write access on (e.g. cupcicm/opp in my case), you typically have a Github fork of the repo and make feature branches in your own fork (because you don't have push acccess on the origin repo), and then create a PR on the repo that you forked from.

It seems that this flow doesn't work with opp, because it doesn't allow having two remote repos configured (which I guess makes sense, because it needs to be able to choose a remote to interact with).

When making PRs on opp I need to think of branch names and interact with the Github UI, which is is obviously a horrible experience.

It would be great if we could have a way of using opp with forked repos, possibly by just using the remote named upstream if there are multiple remotes (e.g. origin and upstream).

opp doesn't reset the main branch after creating a PR

I seem to remember using a competing product (that was possibly implemented in Python), and it would reset the local branch after creating a PR.

For example, if you could add a commit on your local copy of the main branch (which was the same as origin/main), then run opp pr, and this would create the PR branch and reset your local main branch to origin/main.

Is the lack of this behavior in opp intentional?

With opp, I find that I need to always manually reset my main branch after running opp pr so that I can start working on a new, unrelated feature.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.