Skip to content

mega-manipulator/mega-manipulator

Repository files navigation

mega-manipulator

⚠️ No longer actively maintained ⚠️

If you want, try out the spin-off project that is a standalone desktop application with the same feature set as this plugin.
https://github.com/mega-manipulator/mega-manipulator-standalone/


Build GitHub release (latest by date) Version Downloads

Mega Manipulator (m²)

One stop shop for making changes, big or small, in a lot of places at once. See this as an alternative to sourcegraph campaigns, without the docker layer in between you, and the changes you want to make.

Use sourcegraph queries to find target repos.
Then a forEach approach is provided for each of the following actions:

  • Apply changes
    • InteliJ Search & Replace
    • Using script
    • Direct terminal access
  • Commit
  • Push
  • Fork (lazy, eager, never)
  • PR
    • Create
    • Edit
    • Approve
    • Comment
    • Merge
    • Close
    • Clone

Search

Connect to any number of search hosts, and queury those for repository hits
Clone the found repos to local file system, and inspect/plan the change you want to make

Apply changes

Run scripted changes defined in mega-manipulator.bash, or apply changes from the terminal, or manually, whatever fits you best.

Draft PRs

The file system structure of the clones link back to the config defined in mega-manipulator.yml, so we are able to draft PRs for all code hosts you have cloned from. It doesn't even have to have been discovered using the same search host.
Once you have created your PRs, you are also able to edit them, or decline, in batches.

Profit

Spend less time making small, or big, changes

Installation

  • Using IDE built-in plugin system:

    Settings/Preferences > Plugins > Marketplace > Search for "mega-manipulator" > Install Plugin

  • Manually:

    Download the latest release and install it manually using Settings/Preferences > Plugins > ⚙️ > Install plugin from disk...

Contribution

Tests

To run tests you have to set some environment variables:
GITHUB_USERNAME and GITHUB_TOKEN you can do it creating .env file in the project root path or setting it in the environment variable.
Take a look in .env-example, or copy it to .env.


Plugin based on the IntelliJ Platform Plugin Template.