gomerge is a tool to quickly bulk merge several pull requests from your terminal.

gomerge

GitHub Actions Status

Gomerge logo

Description

Gomerge is a tool to quickly enable you to bulk merge Github pull requests from your terminal. The intention of this tool is to simplfy, and eventually automate the merging of github pull requests. This tool should be able to run on most systems.

Requirements

You must have created a github personal access token (PAT) to use this tool. For information on how to do so, you can follow the documentation https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token

Install

To install the latest version via homebrew, please run the following.

brew tap Cian911/gomerge
brew install gomerge

// Check the binary is working as expected.
gomerge -h

To install the compiled binary, you can go to the releases tab, and download the version most suitable to your environment. An example of such is below.

wget https://github.com/Cian911/gomerge/releases/download/1.1.1/gomerge_1.1.1_Linux_x86_64.tar.gz
sudo tar -xvf gomerge_1.1.1_Linux_x86_64.tar.gz -C /usr/local/bin/
sudo chmod +x /usr/local/bin/gomerge

Usage

Below denotes the available commands and flags on the gomerge tool.

Gomerge makes it simple to merge an open pull request from your terminal.

Usage:
  gomerge [command]

Available Commands:
  help        Help about any command
  list        List all open pull request for a repository you wish to merge.

Flags:
  -c, --config string   Pass an optional config file as an argument with list of repositories.
  -h, --help            help for gomerge
  -r, --repo string     Pass name of repository as argument (organization/repo).
  -t, --token string    Pass your github personal access token (PAT).

Use "gomerge [command] --help" for more information about a command.

To get a list of open and active pull requests for a given repo, you can run the following command.

N.B: Please ensure to add your organization followed by the name of your repository. In most cases this will be your github username, but if referencing a repository that exists within an organization you have access to, be sure to substitute it for that E.G google/example-repo.

gomerge list -r Cian911/go-merge -t ${GITHUB_TOKEN}

If there are any active and open pull requests for your given repository, you will see an output similar to below.

gomerge Sample Output

From here, follow the instructions to select which pull request you wish to merge, and hit enter. Your pull request should now have been merged, and you should get a similar message to below.

PR #3: Pull Request successfully merged.
Bulk Merging Pull Requests

As of version 1.1.0 there is a new option available to pass a config.yaml as an arugment to the gomerge tool which will give the user the option to configure a list of repositories in order to more easily bulk merge pull requests.

You should first create a config.yaml file in the following format.

organization: Cian911
repositories:
- pr-test
- syncwave

You can then run the tool like so, passing the config file as a flag.

gomerge list -t $GITHUB_TOKEN -c config.yaml

You should see a list of active and open pull requets from the repositories you have defined in your configuration file.

gomerge Bulk Output Sample

Owner
Cian Gallagher
Site Reliability Engineer @storyful
Cian Gallagher
Comments
  • SIGSEGV: segmentation violation

    SIGSEGV: segmentation violation

    blu@minopia:~/github/repos $ ./gomerge_list.sh
    No open pull requests found for configured repositories.
    +----+-------+--------------------------------+---------------------------------------+----------------------+
    | PR | STATE |             TITLE              |              REPOSITORY               |       CREATED        |
    +----+-------+--------------------------------+---------------------------------------+----------------------+
    | #2 | open  | Update                         | xxx/xxx | 2021-03-10T05:47:18Z |
    |    |       | xxx    |                                       |                      |
    |    |       | xxx           |                                       |                      |
    +----+-------+--------------------------------+---------------------------------------+----------------------+
    ? Select which Pull Requests you would like to merge. 2 | xxx                                                   2022/09/26 01:11:18 Could not merge PR #2, skipping: PUT https://api.github.com/repos/xxx/xxx/pulls/2/merge: 404 Not Found []
    panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x2c8f28]
    
    goroutine 1 [running]:
    github.com/cian911/go-merge/pkg/gitclient.MergePullRequest(0x4000166500, {0x4fbe70, 0x40000b0000}, {0x40000b1330, 0xb}, {0x40004d0a22, 0x19}, 0x2, {0x0, 0x0}, ...)
            /home/runner/work/gomerge/gomerge/pkg/gitclient/client.go:50 +0x198
    github.com/cian911/go-merge/pkg/cli/list.NewCommand.func1(0x4000152c80, {0x40000a2a00, 0x0, 0x5})
            /home/runner/work/gomerge/gomerge/pkg/cli/list/list.go:94 +0xa00
    github.com/spf13/cobra.(*Command).execute(0x4000152c80, {0x40000a29b0, 0x5, 0x5})
            /home/runner/go/pkg/mod/github.com/spf13/[email protected]/command.go:876 +0x66c
    github.com/spf13/cobra.(*Command).ExecuteC(0x4000152a00)
            /home/runner/go/pkg/mod/github.com/spf13/[email protected]/command.go:990 +0x424
    github.com/spf13/cobra.(*Command).Execute(...)
            /home/runner/go/pkg/mod/github.com/spf13/[email protected]/command.go:918
    github.com/spf13/cobra.(*Command).ExecuteContext(...)
            /home/runner/go/pkg/mod/github.com/spf13/[email protected]/command.go:911
    main.main()
            /home/runner/work/gomerge/gomerge/cmd/gomerge/main.go:22 +0x168
    
  • FEATURE: Windows OS support

    FEATURE: Windows OS support

    I was planning on using this tool to manage some of my repos, but I'm on Windows 🙂.

    There's no prebuilt binaries. For now, I'll attempt to build from source. I assume that this will work? I haven't dug deep enough to see if anything is unix-specific

  • ENHANCEMENT: Add golint as workflow job

    ENHANCEMENT: Add golint as workflow job

    In order to improve the code quality of gomerge, we should implement a number of automated code quality checks.

    This issue related specifically to golint. This should be implemented as a job in the https://github.com/Cian911/gomerge/blob/master/.github/workflows/test.yml workflow file. This should run before the main test suite and should fail the entire workflow if a change fails.

  • Build(deps): Bump github.com/stretchr/testify from 1.8.0 to 1.8.1

    Build(deps): Bump github.com/stretchr/testify from 1.8.0 to 1.8.1

    Bumps github.com/stretchr/testify from 1.8.0 to 1.8.1.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Build(deps): Bump github.com/spf13/cobra from 1.5.0 to 1.6.0

    Build(deps): Bump github.com/spf13/cobra from 1.5.0 to 1.6.0

    Bumps github.com/spf13/cobra from 1.5.0 to 1.6.0.

    Release notes

    Sourced from github.com/spf13/cobra's releases.

    v1.6.0

    Summer 2022 Release

    Some exciting changes make their way to Cobra! Command completions continue to get better and better (including adding --help and --version automatic flags to the completions list). Grouping is now possible in your help output as well! And you can now use the OnFinalize method to cleanup things when all "work" is done. Checkout the full changelog below:


    Features 🌠

    Deprecation 👎🏼

    • ExactValidArgs is deprecated (but not being removed entirely). This is abit nuanced, so checkout #1643 for further information and the updated user_guide.md on how this may affect you (and how you can take advantage of the correct behavior in the validators): @​umarcor #1643

    Bug fixes 🐛

    Dependencies 🗳️

    Testing 🤔

    Docs ✏️

    Misc 💭

    Note: Per #1804, we will be moving away from "seasonal" releases and doing more generic point release targets. Continue to track the milestones and issues in the spf13/cobra GitHub repository for more information!

    Great work everyone! Cobra would never be possible without your contributions! 🐍

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • [Tutorial] How to use this on all your repos

    [Tutorial] How to use this on all your repos

    First use this to cache all repositories you have access to locally

    import github.GithubException
    from github import Github
    from time import sleep
    from pathlib import Path
    from json import dump, dumps
    from os import makedirs
    
    dir = Path("repos")
    
    github_instance = Github(YOUR_GITHUB_TOKEN_HERE)
    # f = file.open(mode="w+", encoding="utf-8")
    for repo in github_instance.get_user().get_repos():
        orgpath = dir / f"{repo.owner.login}"
        if not orgpath.exists(): makedirs(orgpath)
        filepath = orgpath / f"{repo.name}.json"
        err = None
        try: raw_str = dumps(repo.raw_data, indent=4)
        except github.GithubException as e:
            err = e
            filepath = orgpath / f"{repo.name}.txt"
        if not filepath.exists():
            print("New file for repo", filepath)
            with open(filepath, 'w') as f:
                if not err: f.write(raw_str)
                else: f.write(str(err))
            # file.write_text(f"{repo.name};{repo.description};{repo.language};{repo.created_at};{repo.default_branch};{repo.size};{repo.pushed_at};{repo.forks_count};{}")
            sleep(.01)
    

    then use this to generate config files and a shell script for gomerge:

    import github.GithubException
    from github import Github
    from time import sleep
    from pathlib import Path
    import json
    from os import makedirs
    import yaml
    root = Path("repos")
    
    github_token = YOUR_GITHUB_TOKEN_HERE
    # github_instance = Github()
    
    
    def get_users(dir: Path):
        orgs = {}
        for org in dir.glob('*/'):
            if org.is_file(): continue
            orgs[org.name] = []
            # print("Found new org", org.name)
            for repo in org.glob("*.json"):
                # print("Found new repo", repo.name)
                orgs[org.name].append(repo.stem)
        print("Loaded", sum([len(l) for l in orgs]), "repos from", len(orgs), "orgs/users")
        return orgs
    # def get_repos(Path: dir):
        # repos = []
        # dirs = 0
        # for path_object in dir.glob('**/*'):
            # if path_object.is_dir(): dirs += 1; continue
            # if not path_object.name.endswith(".json"): continue
            # with path_object.open() as f:
                # try:  repos.append(json.load(f))
                # except: print("Failed to parse json file",path_object)
        # print("Loaded", len(repos), "repos from", len(dirs), "orgs/users")
        # return repos
    
    
    # files = get_repos(root)
    orgs = get_users(root)
    
    sh_merge = Path(root / "gomerge.sh").open("w", newline='\n')
    sh_list = Path(root / "gomerge_list.sh").open("w", newline='\n')
    sh_close = Path(root / "gomerge_close.sh").open("w", newline='\n')
    for org, repos in orgs.items():
        cfg = Path(root / org / "config.yaml")
        yml = { "organization": org, "repositories": repos }
        with cfg.open("w") as cfgf: yaml.dump(yml, cfgf)
        sh_merge.write(f"gomerge list -t {github_token} -c {org}/config.yaml -a -s\n")
        sh_list.write(f"gomerge list -t {github_token} -c {org}/config.yaml -s\n")
        sh_close.write(f"gomerge list -t {github_token} -c {org}/config.yaml --close -s\n")
    

    then just run repos/gomerge.sh on your machine

  • Build(deps): Bump github.com/spf13/viper from 1.12.0 to 1.13.0

    Build(deps): Bump github.com/spf13/viper from 1.12.0 to 1.13.0

    Bumps github.com/spf13/viper from 1.12.0 to 1.13.0.

    Release notes

    Sourced from github.com/spf13/viper's releases.

    v1.13.0

    Important: This is the last release supporting Go 1.15.

    What's Changed

    Exciting New Features 🎉

    Enhancements 🚀

    Bug Fixes 🐛

    Dependency Updates ⬆️

    New Contributors

    Full Changelog: https://github.com/spf13/viper/compare/v1.12.0...v1.13.0

    Commits
    • 57cc9a0 test: fix ini tests
    • 8030d5b build(deps): bump gopkg.in/ini.v1 from 1.66.4 to 1.67.0
    • 312417a Add a DebugTo convenience funtion
    • 202060b Adds support for uint16 with GetUint16
    • 97591f0 build: fix lint violations
    • 9af8dae ci: upgrade golangci-lint
    • 7b4f2b2 ci: add Go 1.19 to CI
    • 601ec81 test: fix toml tests
    • d7f4832 build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.2 to 2.0.5
    • c2f42f3 build(deps): bump github.com/subosito/gotenv from 1.4.0 to 1.4.1
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/stretchr/testify from 1.7.0 to 1.7.5

    Bump github.com/stretchr/testify from 1.7.0 to 1.7.5

    Bumps github.com/stretchr/testify from 1.7.0 to 1.7.5.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/spf13/cobra from 1.4.0 to 1.5.0

    Bump github.com/spf13/cobra from 1.4.0 to 1.5.0

    Bumps github.com/spf13/cobra from 1.4.0 to 1.5.0.

    Release notes

    Sourced from github.com/spf13/cobra's releases.

    v1.5.0

    Spring 2022 Release 🌥️

    Hello everyone! Welcome to another release of cobra. Completions continue to get better and better. This release adds a few really cool new features. We also continue to patch versions of our dependencies as they become available via dependabot. Happy coding!

    Active help 👐🏼

    Shout out to @​marckhouzam for a big value add: Active Help spf13/cobra#1482. With active help, a program can provide some inline warnings or hints for users as they hit tab. Now, your CLIs can be even more intuitive to use!

    Currently active help is only supported for bash V2 and zsh. Marc wrote a whole guide on how to do this, so make sure to give it a good read to learn how you can add this to your cobra code! https://github.com/spf13/cobra/blob/master/active_help.md

    Group flags 🧑🏼‍🤝‍🧑🏼

    Cobra now has the ability to mark flags as required or exclusive as a group. Shout out to our newest maintainer @​johnSchnake for this! spf13/cobra#1654 Let's say you have a username flag that MUST be partnered with a password flag. Well, now, you can enforce those as being required together:

    rootCmd.Flags().StringVarP(&u, "username", "u", "", "Username (required if password is set)")
    rootCmd.Flags().StringVarP(&pw, "password", "p", "", "Password (required if username is set)")
    rootCmd.MarkFlagsRequiredTogether("username", "password")
    

    Flags may also be marked as "mutally exclusive" with the MarkFlagsMutuallyExclusive(string, string ... ) command API. Refer to our user guide documentation for further info!

    Completions 👀

    Documentation 📝

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/stretchr/testify from 1.7.0 to 1.7.4

    Bump github.com/stretchr/testify from 1.7.0 to 1.7.4

    Bumps github.com/stretchr/testify from 1.7.0 to 1.7.4.

    Commits
    • 48391ba Fix panic in AssertExpectations for mocks without expectations (#1207)
    • 840cb80 arrays value types in a zero-initialized state are considered empty (#1126)
    • 07dc7ee Bump actions/setup-go from 3.1.0 to 3.2.0 (#1191)
    • c33fc8d Bump actions/checkout from 2 to 3 (#1163)
    • 3c33e07 Added Go 1.18.1 as a build/supported version (#1182)
    • e2b56b3 Bump github.com/stretchr/objx from 0.1.0 to 0.4.0
    • 41453c0 Update gopkg.in/yaml.v3
    • 285adcc Update go versions in build matrix
    • 6e7fab4 Bump actions/setup-go from 2 to 3.1.0
    • 106ec21 use RWMutex
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump github.com/AlecAivazis/survey/v2 from 2.3.2 to 2.3.5

    Bump github.com/AlecAivazis/survey/v2 from 2.3.2 to 2.3.5

    Bumps github.com/AlecAivazis/survey/v2 from 2.3.2 to 2.3.5.

    Release notes

    Sourced from github.com/AlecAivazis/survey/v2's releases.

    v2.3.5

    No release notes provided.

    v2.3.4

    What's Changed

    Full Changelog: https://github.com/AlecAivazis/survey/compare/v2.3.3...v2.3.4

    v2.3.3

    No release notes provided.

    Commits
    • e47352f Fix README formatting for select descriptions (#426)
    • c2be27f Added an option to add a comment to every select's option (#418)
    • 93657ef Enable compilation under Go 1.18 (#417)
    • 459523e Add terminal.Cursor error handling on Windows (#414)
    • 6cbb195 Fix Survey output on Windows (#413)
    • c07023a Skip vi-dependent tests when there is no vi in PATH (#397)
    • 099a968 Fix multiple validator inconsistency (#401)
    • 1b28f27 fix: ensure terminal has required read settings in non-canonical mode (#409)
    • bcabe24 Stricter error handling in tests (#404)
    • 3cabaff Drop proprietary runner dependency in favor of go tooling (#403)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • ENHANCEMENT: Add gofmt

    ENHANCEMENT: Add gofmt

    In order to improve the code quality of gomerge, we should implement a number of automated code quality checks.

    This issue related specifically to gofmt. This should be added a pre-commit hook to ensure all commits maintain the go standard. It would be nice to have this as a command available to be run via the existing Makefile too.

    Implementing this enhancement may bring to light formatting changes across multiple files. This is fine, a requirement for this should be that all relevant go files are formatted correctly.

  • ENHANCEMENT: Add govet as workflow job

    ENHANCEMENT: Add govet as workflow job

    In order to improve the code quality of gomerge, we should implement a number of automated code quality checks.

    This issue related specifically to govet. This should be implemented as a job in the https://github.com/Cian911/gomerge/blob/master/.github/workflows/test.yml workflow file. This should run before the main test suite and should fail the entire workflow if a change fails.

  • ENHANCEMENT: Add workflow to create and push new tags on merge to master

    ENHANCEMENT: Add workflow to create and push new tags on merge to master

    We should have a github workflow file that bumps the version tag for git and pushes it to trigger the release workflow. This therefore necessitates the need for a version file that should be bump accordingly on each pull request to master.

  • FEATURE: Display CI status on Pull requests

    FEATURE: Display CI status on Pull requests

    As a developer I want to be able to see whether the CI on an active pull request/s has passed/failed/in-progress.

    REF: https://www.producthunt.com/posts/gomerge

ghcv-cli makes it easy to view the user-created issues, pull requests, and repositories in the terminal.
ghcv-cli makes it easy to view the user-created issues, pull requests, and repositories in the terminal.

ghcv-cli ghcv-cli makes it easy to view the user-created issues, pull requests, and repositories in the terminal. About Show a list of pull requests c

Mar 13, 2022
A tool to sent comments to Issues or Pull Requests in Github from CI tools.

CommentCI A tool to sent comments to Issues or Pull Requests in Github from CI tools. Usage Required environment variables: GITHUB_COMMENT_USER - User

Apr 10, 2022
A command line utility for labeling GitHub issues and pull requests

A command line utility for labeling GitHub issues and pull requests

Jan 8, 2023
🙌 Bulk-upload GitHub Issues
🙌 Bulk-upload GitHub Issues

?? Bulk-upload GitHub Issues

Jul 23, 2021
Bulk image downloader for reddit.

rrip Program to bulk-download image from reddit subreddits. Features Set max size of file, max total size, minimum score etc.. Filter by post title or

Dec 25, 2022
Several Examples for building docker containers for your Go applications

go-docker Several Examples for building docker containers for your Go applicatio

Dec 27, 2021
Just a simple CLI tool to group dependabot PRs by dependency and merge them.
Just a simple CLI tool to group dependabot PRs by dependency and merge them.

Dependabotbot Have you been the victim of a lodash update? Has your notification page in Github been assaulted by needing to update a patch version of

Jun 30, 2022
Snippet CLI manger for quickly using code snippets without leaving the terminal
Snippet CLI manger for quickly using code snippets without leaving the terminal

SnipKit - Snippet CLI manager This repository is still work in progress! SnipKit aims to paste code snippets from your favorite snippet manager into y

Dec 27, 2022
📝 Take notes quickly and expeditiously from terminal
📝 Take notes quickly and expeditiously from terminal

Installation See the last release, where you can find binary files for your ecosystem Curl: curl -sfL https://raw.githubusercontent.com/anonistas/noty

Dec 29, 2022
A command-line to create a pull request to review the entire content of a Github repository.

Pull Request Me Pull Request Me (PRMe) creates a pull request for the entire content of a Github repository. This is useful to solicit review comments

Nov 2, 2021
A simple single-file executable to pull a git-ssh repository and serve the web app found to a self-contained browser window

go-git-serve A simple single-file executable to pull a git-ssh repository (using go-git library) and serve the web app found to a self-contained brows

Jan 19, 2022
textnote is a command line tool for quickly creating and managing daily plain text notes.

textnote is a command line tool for quickly creating and managing daily plain text notes. It is designed for ease of use to encourage the practice of daily, organized note taking. textnote intentionally facilitates only the management (creation, opening, organizing, and consolidated archiving) of notes, following the philosophy that notes are best written in a text editor and not via a CLI.

Jan 2, 2023
A simple CLI tool to use the _simulate API of elasticsearch to quickly test pipelines

elasticsearch-pipeline-tester A simple CLI tool to use the _simulate API of elasticsearch to quickly test pipelines usage: pipelinetester [<flags>] <p

Oct 19, 2021
A command line tool for quickly converting Unix timestamps to human readable form.

stamp A command line tool to quickly format a Unix timestamp in a human-readable form. Installation Go is required to build this software. To just bui

Oct 30, 2021
F2 is a cross-platform command-line tool for batch renaming files and directories quickly and safely. Written in Go!
F2 is a cross-platform command-line tool for batch renaming files and directories quickly and safely. Written in Go!

F2 is a cross-platform command-line tool for batch renaming files and directories quickly and safely.

Dec 31, 2022
Pi-fetch - get a summary of your pi-hole stats from your terminal

pi-fetch get a summary of your pi-hole stats from your terminal _ ___ _ _ ___|_|___| _|___| |_ ___| |_ | . | |___| _| -_| _

Jan 9, 2022
Stonks is a terminal based stock visualizer and tracker that displays realtime stocks in graph format in a terminal.
Stonks is a terminal based stock visualizer and tracker that displays realtime stocks in graph format in a terminal.

Stonks is a terminal based stock visualizer and tracker. Installation Requirements: golang >= 1.13 Manual Clone the repo Run make && make install Pack

Dec 16, 2022
This CLI tool sends HTTP GET requests and print MD5 hash values of the response's body

HTTP Body Hash Generator This CLI (Command Line Interface) tool sends HTTP GET requests and print MD5 hash values of the response's body. Usage You ne

Feb 10, 2022
🌿circumflex is a command line tool for browsing Hacker News in your terminal
🌿circumflex is a command line tool for browsing Hacker News in your terminal

??circumflex is a command line tool for browsing Hacker News in your terminal

Jan 1, 2023