Repom.el lets you quickly access both local and remote (GitHub) repositories.
- Helm for local and remote repositories
- The list of local repositories are retrieved by projectile
- GitHub repositories
- User repositories
- Starred repositories
- Search GitHub repositories
- Search code in GitHub (currently just open the web site)
- Various operations on a GitHub repository
- Browse the repository page
- Clone it for reading
- Clone it for editing
- Search code in the repository
- Search issues in the repository
- Emacs 25.1
- dash
- f
- projectile
- magit
- ghub
- helm
- helm-projectile
- all-the-icons (optional)
helm-repom
command displays local and remote repositories via Helm. It also allows you to search repositories/code on GitHub.
The Helm source for local repositories are currently provided by helm-projectile
.
You can discover Git repositories in designated locations. To configure directories that may contain Git repositories, customize repom-local-discovery-locations
variable.
Once you configure locations for local Git repositories, you can get a list of Git repositories using repom-discover-local-git-repos
function. You can also check repository statuses using repom-git-statuses
function in repom-git.el
.
Helm sources for remote repositories provide an action for reading code in the repository. It does:
- Clone the repository to a designated destionation (
~/Downloads
by default), unless there is a local repository of the same name. If there is a local repository, skip to step 2. - Open the repository using a command configured as
repom-view-project-command
. By default, this isprojectile-find-file-other-window
.
The destination directory can be configured through repom-clone-destination-for-viewing
variable.
Likewise, there is a command for editing. The diffrences from the previous command are as follows:
- The git-clone destination is configured through
repom-clone-destination-for-editing
, and its default value is~
. - The action is configured through
repom-edit-project-command
, and its default value isprojectile-switch-project-by-name
. This command runs a function configured asprojectile-switch-project-action
, likeprojectile-switch-project
does.
More actions are available in the Helm sources.
To browse issues in the current local repository, Magithub nicely integrates GitHub into Magit.