Giter Site home page Giter Site logo

ovity / octotree Goto Github PK

View Code? Open in Web Editor NEW
22.7K 376.0 1.8K 80.97 MB

GitHub on steroids

Home Page: https://www.octotree.io/

License: GNU Affero General Public License v3.0

JavaScript 72.23% CSS 19.49% Less 6.82% HTML 1.46%
github chrome firefox opera safari browser-extension code-review edge pull-request-review code-files

octotree's Introduction

About

Browser extension that enhances GitHub code review and exploration. You can download Octotree for your browser from our website.

Chrome Firefox Edge Safari Brave Opera

Octotree is a proprietary software. This repository contains the old source code of a very limited version of Octotree. The Octotree team owns the complete copyright over this code.

Octotree

Support

Learn more

octotree's People

Contributors

0xflotus avatar athaeryn avatar bayandin avatar bigredwill avatar buunguyen avatar crashbell avatar danhgit avatar duylam avatar endyquang avatar enyo avatar ephemera avatar fahme avatar itiut avatar jackymancs4 avatar jerizm avatar k2nr avatar leereilly avatar leocaseiro avatar letunglam avatar luegg avatar meip avatar monwf avatar mottie avatar ngphi avatar norio-nomura avatar piamancini avatar ricosmall avatar ruanyl avatar spittie avatar stevennoto avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

octotree's Issues

Suggestion: add option to disable panel slide animation

Hi,

Thanks for this great extension. It would be nice to have an option for disabling the slide-in (and slide-out) animation of the panel.

When the panel is brought into view, contents of the webpage move and it can make it difficult to browse Github in an agile fashion.

Automatically adjust horizontal scrollbar

It would be great if the horizontal scrollbar would move automatically to the right when clicking through a nested directory structure, to prevent the below: (Ideally, I would like to see the files to the right).

screenshot from 2014-05-14 01 36 53

Thanks!

reflect github navigation in octotree

when i click through repo source, octotree doesn't show my current location in the tree.
f.e. https://github.com/buunguyen/octotree/tree/master/docs doesn't reflect current folder in the octotree

Feature request: keybinding

Hi, great chrome addon! Is there a keybinding to toggle the source drawer? If not, it would be great to have one.

Remove github.js

It built v1.0 quickly, but now it should be removed for the following reasons:

  • It doesn't support GitHub Enterprise and is not actively developed
  • Octotree only needs a very small portion of it
  • It also requires underscore.js and base64.js, which Octotree doesn't

Sidebar visibility while loading

Hi. I'm using chrome plugin.
When you enter the page where it must be shown (opened by default) first u see initial github page and then after a few seconds sidebar appears. But when it's happening we have a page layout "jump" to the right which is quite annoying.
I would suggest to make sidebar visible from the very begginning of page loading (when its state is 'opened', of course) and just show some small loading animation in it.
Great extension, thanks.

Offer the option to create the Github Personal Access Token on behalf of the user

An extension can control the browser, so it could generate the personal access token with the right permissions set on its own (by simulating navigation, manipulating the DOM, etc.). Then the extension could grab the token directly (no need to bother the user with copy/pasting it).

Of course, ask the user and inform them on what's about to happen before doing so :-)

Make octotree panel resizable

Typical directory structure for Java projects (Gradle and Maven) has a lot of nested folders like /src/main/java/me/loki2302/app1/dal/entities. When exploring such repositories with octotree, the scroll bar appears immediately. A good alternative solution is to allow users to change the panel width manually.

spring-octotree

Suggestion: Combine directories of they have only one subdirectory

hi there, great work so far
my suggestion would be combining multiple directories if they only have one subdirectory, for example:

- src
  `- main
    `- java
      `- at
        `- bluephoenix
          `- Package
            `- Main.java
            `- Part.java

would become

- src/main/javas/at/bluephoenix/Package
  `- Main.java
  `- Part.java

Add bubble to indicate toggle button & shortkey

Until the settings pane is implemented to provide user options, it's nice to show a bubble on the toggle button once to indicate its behavior & shortcut. This is to not surprise users who don't know the (new) default behavior of Octotree is hidden.

Submodules

Submodules are presented with no icon.

This could be made obsolete by #5 - just make submodules italic, or underlined (with a link to the submodule's hash, just like github)

Support GitHub Enterprise

It'd be nice! You could add an option in the plugin about which sites to request permissions for maybe?

I actually don't know if that's possible.

Feature request: Auto-expand to the end where possible

My comment here

Here's an idea: Automatically expand all the tree until there are more than 1 items in the level
e.g. src->com->twitter->scalding->scala->test (in this example, these are all folders in hierarchy and they are the only one until the 'test' so expanding them automatically all the way through makes sense).

Support BitBucket

Love the extension!

It would be great if it also displayed a tree for Bitbucket repos :)

Request: Handle Submodules

I guess it's not an extremely common thing, but it would be nice to be able to click on a git submodule in octotree, and be taken to that repository.

I'm just not sure that this is common enough, or a feature that anyone else would want though.

Icons

Do you have in mind to add icons for some major file extensions?

If you don't ( I hope you don't ), because then the design can be simplified - you only need the arrow (maybe also bold) for folders. Similarly to SublimeText. Easier on the eye, de-duplicate visuals (arrow + folder icon, no arrow + file icon)

XSS via filenames

Filenames are added to jsTree without sanitization. jsTree will render HTML passed as a tree node's text. This can lead to cross-site scripting and potentially compromise GitHub tokens stored in local storage and access GitHub sessions.

Support GitLab

For my projects, I installed gitlab and for this, your addon doesn't work. It would be great, if you can add support for gitlab.

Regards

Chris

Use undocumented API to get around token requirement

GitHub has an API endpoint called 'tree-list' that is part of the presentation layer and is available to all users. This endpoint lists all files in a repository - even private repos (as long as the user is logged in). It's used by the file finder, which is presented when you are viewing a repo and hit the 't' hotkey.

https://github.com/OWNER/REPO/tree-list/COMMIT_SHA

And a live example, using my fork of Octotree:

https://github.com/sullivanmatt/octotree/tree-list/HEAD

{"paths":[".gitignore","LICENSE","README.md","dist/octotree.safariextz","dist/octotree.xpi","docs/chrome.png","docs/firefox.png","docs/safari.png","docs/token.png","gulpfile.js","package.json","src/Info.plist","src/firefox.js","src/icons/icon128.png","src/icons/icon16.png","src/icons/icon19.png","src/icons/icon48.png","src/icons/icon64.png","src/inject.css","src/inject.js","src/lib/css/jstree.css","src/lib/js/base64.js","src/lib/js/github.js","src/lib/js/jquery.js","src/lib/js/jquery.pjax.js","src/lib/js/jstree.js","src/lib/js/underscore.js","src/manifest.json","src/package.json"]}

The data it returns could definitely be used to build the file paths list and completely remove the need for granting a token to work with private repos. I've attempted to do this myself, but my JavaScript skill set is simply not strong enough to be able to contribute the required code. Here's a rough start:

# inject.js

function fetchData(repo, done) {
    // Load the branch info from the page data
    var sha = document.getElementById("js-command-bar-field").getAttribute('data-sha')
    if (!sha) {
        sha = "HEAD"
    }

    // Get the data
    $.getJSON( "https://github.com/" + repo.username + "/" + repo.reponame + "/tree-list/" + sha, function( data ) {
        $.each( data.paths, function( key, val ) {
            ... build the path information ...
        }
    }

This is an awesome extension, thank you to everyone doing the heavy lifting!

Add progress indicator for file loading

Octotree loads a file using pjax. If a file is big (e.g. jquery.js), loading can be slow (users seeing nothing happens for a few secs, wondering what's wrong). It would be great to show progress indicator in place of the file icon, similar to what GitHub does natively.

Add Opera extension

The new Presto based Opera uses the same extensions as Chrome, but I am not sure they can be used directly - anyway - you can build an Opera extension the same way as in Chrome and with the same manifest file - no changes needed.

PS. I also tried IE, but all solutions seem overcomplicated, I thought about a bookmarklet, but that got blocked by the github.com Content-Security-Policy.

Don't animate on the succeeding page loads for same project

For example I'm coming to this project https://github.com/buunguyen/octotree for the first time, then the octotree extension brings up the tree view from the left with a slide from left animation.

However, if I go to issues page, same animation will annoyingly happen again and if I click "New issue", yes, it animates the same file tree again.

Maybe you can restrict showing the octotree only for the paths like github.com/[token]/[token]/tree/.. or at least use some local cache to not to animate for the next pageviews on the same project.

I love this project, awesome job! 👍

Add options panel/dialog

This can be used for things like configure short key, directory auto-collapsing, default sidebar visibility, use of private API, access tokens and GH Enterprise URLs etc.

Token settings?

Hi,

When I went to create a token, here's what GitHub set the defaults to:

screen shot 2014-05-14 at 10 14 13 am

What's the recommendation in terms of boxes I should have checked?

Awesome plugin btw! Thank you!!!!

icon sizing & built-in jstree classes

You can consider using the built-in jstree-file and jstree-folder icons - that will take care of the positioning issue I seem to see with the .tree & .blob classes.
Once again - great work.
Btw - you can also create an optional icon set that takes the filetype into account as seen on the jstree demo page - the filebrowser.

Cheers,
Ivan

pjax requests often timing out and falling back to standard page reload

Depending on the speed/cache state/etc of github at the time, if the page request is not served in under 650ms (the default timeout), pjax gives up and falls back to a full page load. This threshold does not seem to be a good default for this application. Although the fallback is adequate, I believe some tuning of this setting would improve the usability.

By default sidebar should be hidden.

It's extremely annoying to have the sidebar pop up any time I open a new tab. Should it be closed by default? Or at least give the user an option to have it closed by default?

Make the sidebar width resizable

  • Allow users to resize the width of the sidebar
  • Remember the width

Currently the fly-in uses CSS3. Implementing this feature might mean moving transition code to JS (still use CSS3 though).

Default branch

When loading the plugin, what do you think about fetching the default branch instead of master?

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.