Giter Club home page Giter Club logo

octotree's Introduction

About

Browser extension that brings GitHub experience to the next level. This repository contains the source code of Octotree Core. You can build and run it locally to access all features of the free version. Or you can download the full version on our website. Octotree supports Chrome, Firefox, Opera and Safari.

Octotree

Settings

Access Token

Octotree uses the GitHub API to retrieve repository metadata. By default, it makes unauthenticated requests to get these data. However, there are two situations when GitHub require such requests to be authenticated:

When that happens, Octotree will ask for your GitHub personal access token. If you don't already have one, create one, then copy and paste it into the token textbox in the Settings screen. Note that the minimal scopes that should be granted are public_repo and repo (if you need access to private repositories).

No BS Policy: Octotree doesn't collect/share/care about your data at all. It stores the access token in your browser storage and uses it only to communicate with GitHub API (see the code that does that here).

Access tokens are stored in the browser storage, only enter access tokens when you use a TRUSTED computer.

Multiple Access Tokens (Pro)

If you have multiple GitHub accounts with access to different private repositories, you can let Octotree know which access token to use for which account. When you login to GitHub with an account, Octotree will use the matching token to make API requests to GitHub. If you don't login to GitHub or if the account you login is not in the account list, Octotree will use the default access token.

Go to Settings and click the + icon to add more accounts. Similar to access token, these accounts and tokens are stored in the browser's storage. Therefore, only enter these on a TRUSTED computer.

Multiple GitHub accounts

Hotkeys

Hotkeys to pin or unpin the sidebar. You can enter multiple hotkeys by separating them with a comma.

  • Supported modifiers: , shift, option, , alt, ctrl, control, command, and .
  • Supported special keys: backspace, tab, clear, enter, return, esc, escape, space, up, down, left, right, home, end, pageup, pagedown, del, delete and f1 through f19.

Learn more at keymaster.

Others

  • Show sidebar on hover. If checked, hover the Octotree button to open the sidebar. Otherwise, click the button to open the sidebar.
  • Show file-type icons. If checked, show different icons for different file types.
  • Enable bookmarking. If checked, show the bookmark icon for repositories, files, pull requests and issues.
  • Enable Octotree in pages (Pro). Control the GitHub pages in which Octotree shows up.
  • Cache repositories locally (Pro). Whether to cache the repository file structure in local machine cache (via browser Cache API). This significantly speeds up subsequent visits to large repositories and reduces the number of API requests to GitHub.
  • Lazy-load code tree. By default, Octotree loads everything in a single API request to render the full code tree. It could be slow if working with a large repository. If you frequently work with big repositories, you should select this option so that Octotree only loads and renders the code tree lazily.
  • Enable multi-tab (Pro). What it says.
  • Font settings (Pro). This will affect the source code font only.

Pro Features

The following features require Pro subscription.

GitHub Enterprise

Note: GitHub Enterprise is not supported on Safari.

Follow these steps to enable Octotree for GitHub Enterprise:

  • Navigate to any repository on github.com (not GitHub Enterprise)
  • Open the Octotree sidebar
  • Click the login link in the footer (or in Settings view)
  • Login using your Octotree account
  • Navigate to your GitHub Enterprise domain
  • Right-click the Octotree icon the browser bar (see image below) select "Enable Octotree on this domain"

GitHub Enterprise

Multi-tab

This makes it even better and faster to browser source with Octotree.

Multi-tab

Code font settings

Easily change code font type and size. Open the Settings screen to do so, will only affect code file, not GitHub font.

Lazy-load a specific repository

Activate lazy-loading for specific repositories by clicking the ⚡️ icon in the Octotree sidebar header.

Lazy-loading is helpful when you work with a big repositories (e.g. Linux, Kubernetes). The downside is it requires Octotree to make an API request and render every subdirectory as you click on the directory. This feature allows you to activate lazy-load for only certain repositories.

Pull request code review pack

A collection of features that make pull request review awesome! If the "Show pull request changes" option is selected, Octotree shows

  • Show changed files
  • Show comments in each file
  • Show file view status for each file

In addition, it's sometimes necessary to view the entire changed file in a pull request. But keep clicking "Expand" is a pain. Octotree solves that. You can click the "View full" button at the top of each file in a pull request to view its entire content and all the diffs.

Multiple themes

Click the theme icon located at the bottom of Octotree to select a color theme. The "Only Sidebar" theme changes the Octotree sidebar to the dark theme without changing the theme of the GitHub page. This is helpful if you already use another mechanism to show GitHub in dark mode.

Change docking position

Click the dock icon at the footer of Octotree to change the sidebar location to the right or left of the screen.

Repo/PR/issue/file bookmark

You can click the bookmark icon next to a repository, pull request, issue or file name to bookmark it. You can view the list of bookmarks by clicking the bookmark icon in Octotree header.

File search

Click the search icon to start file search.

Note that when lazy-loading is used, search only works with directories and files that were already loaded.

Collapse tree

Click the collapse tree icon at the Octotree sidebar header to collapse the code tree.

Browser Permissions

Octotree Core (built from source from this repo) requires some browser permissions:

  • Read/change data in github.com and api.github.com: needed to show Octotree and make requests to GitHub API
  • storage: needed to store Octotree settings

The full version of Octotree requires these additional permissions:

  • Read/change data in octotree.io: needed to authenticate users and load/store bookmarks from Octotree API
  • contextMenus: needed to show Octotree context menu items
  • activeTab: needed for context menu actions to trigger enabling/disabling Octotree in GitHub Enterprise domains

The following permissions are optional and only requested when you enable Octotree in a GitHub Enterprise domain (*):

  • webNavigation: needed to inject Octotree sidebar in GitHub Enterprise domains
  • tabs: needed to inject Octotree sidebar in GitHub Enterprise domains

*: when enabling Octotree in a GitHub Enterprise domain, Chrome displays the prompt for the "Read your browsing history" permission. That's a bit confusing as Octotree doesn't request the history permission or collect your data at all. See this discussion for more details. Firefox, on the other hand, is clearer about the specific permissions being requested by Octotree.

Credits

Octotree uses the following open-source software:

octotree's People

Contributors

0xflotus avatar amio avatar athaeryn avatar bayandin avatar behnam avatar bigredwill avatar brightcells avatar buunguyen avatar carloschneider avatar chrisbrownie avatar crashbell avatar danhgit avatar duylam avatar endyquang avatar ephemera avatar fahme avatar hisabimbola avatar itiut avatar jackymancs4 avatar jerizm avatar k2nr avatar letunglam avatar meip avatar ngphi avatar rheaditi avatar ruanyl avatar sayegh7 avatar spittie avatar stevennoto avatar widyakumara avatar

Watchers

 avatar  avatar

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.