fahad-israr / github-automation-and-open-in-ide

Automation for Github and CLI Tool (POC Starfish@GSOC 2020).Dev Repo:
https://github.com/maxandersen/starfish
2 stars 1 forks source link
automation cloud-native java quarkus

= StarFix : Simplifying The Devflow :toc: :toc-placement!:

image:https://github.com/starfixdev/starfix/blob/master/images/starfix.png[StarFix Logo,title="StarFix Logo"]

== Intro Would it not be nice if..

You could open your IDE on any file from any app?

OR

Open a repository/file from a browser in your editor of choice?

OR

Start a debugger locally from your web browser?

StarFix is a cross-platform client-side application that would let you open a file in Editor of your choice (vscode, eclipse, intellij, emacs, vi, etc.) and other commands locally directly from the browser or file system. This will enable an option to “Open in IDE” through browser extension on various websites like Github, Gitlab, etc similar to the one you see in this demo below.

== Demo

image:https://github.com/starfixdev/starfix/blob/master/images/demo.gif[Starfish Demo]

[discrete]

INDEX

toc::[]

== Features StarFix comprises of amazing features :

=== CLI Tool StarFix can be used as a CLI tool as well where the repo is cloned and then the preferred Editor is launched. It also supports modifying the configurations.

=== Configurable StarFix has two configurable properties:

=== Custom Protocol Handler StarFix includes a custom URL Handler to handle ide:// on the user's machine. Whenever a URI with scheme ide:// is encountered StarFix app is launched with the arguement as the URI.

=== Browser Extension To be able to add an "Open In IDE" button on Web Pages and launching the protocol handler we need a browser extension. The extension also acts as the integration between web and desktop.

== Supported Platforms:

== Installation === LINUX

[source, bash]

./install

=== WINDOWS

=== MACOS

[source, bash]

./install

=== BROWSER EXTENSION

==== Loading unpacked on Google Chrome

==== Loading unpacked on Mozilla Firefox

P.S: Browser Extensions will soon be published on Browser's App Store to simplify installation.

== Usage

=== As a CLI Tool

=== Fully Integrated

=== Configuration Editor

== Contributing to StarFix === Creating Issues Start by looking at the existing issues at https://github.com/starfixdev/starfish/issues[starfix/issues] to ensure that the issue you intend to create doesn't exist already.

=== Pull Request

After you've created a branch on your fork with your changes, it's time to https://help.github.com/articles/creating-a-pull-request/[make a pull request]

Once you’ve submitted a pull request, the collaborators can review your proposed changes and decide whether or not to incorporate (pull in) your changes.

==== Pull Request Pro Tips

==== Open Pull Requests

Once you’ve opened a pull request, a discussion will start around your proposed changes.

Other contributors and users may chime in, but ultimately the decision is made by the collaborators.

During the discussion, you may be asked to make some changes to your pull request.

If so, add more commits to your branch and push them – they will automatically go into the existing pull request!

Opening a pull request will trigger a Github Actions build to check the validity of proposed changes. After the build completes, please ensure that the build has succeeded. If the build did not succeed, please view the Github Actions log and correct any errors that were found in your contribution.

=== Technology for Development

=== Quick Command reference:

=== Useful Links/Resources: As StarFix uses Command Mode in Quarkus refer these links to learn more about it:

== FAQS

[qanda] Why do we call it StarFix ? :: The following image is good enough to explain ... image:https://github.com/starfixdev/starfix/blob/master/images/starfix_illustration.png[StarFix Illustration,title="starfix illustration"]

Why are we using Quarkus? :: The reason for going with this is that anything other than this(like node or python bound) would require additional setup. On the other hand Java or Native is something that can be shipped fairly lightweight. Furthermore we need a cross-platform application(Linux, Windows, and MacOS). Thus Quarkus would be the best choice.