This project is on hold. Feel free to use the app or fork the code. The cloud infra is running in read-only mode. The DB is not being updated. Any data you submit is dropped on reception.
The code analysis is non-judgemental. It simply collects the facts such as what languages and frameworks are used, number of lines of code or library use. All that data is assembled into a Developer Profile to help someone looking for your skills to find you.
The app creates a sample stack report on the first run over a project without submitting it (dryrun). You can review the report before continuing.
Examples
sudo curl -o /usr/local/bin/stackmuncher -L https://github.com/stackmuncher/stm_app/releases/download/v0.1.7/stackmuncher-x86_64-unknown-linux-gnu && sudo chmod 755 /usr/local/bin/stackmuncher
sudo curl -o /usr/local/bin/stackmuncher -L https://github.com/stackmuncher/stm_app/releases/download/v0.1.7/stackmuncher-x86_64-unknown-linux-musl && sudo chmod 755 /usr/local/bin/stackmuncher
sudo curl -o /usr/local/bin/stackmuncher -L https://github.com/stackmuncher/stm_app/releases/download/v0.1.7/stackmuncher-x86_64-apple-darwin && sudo chmod 755 /usr/local/bin/stackmuncher
invoke-webrequest -uri https://github.com/stackmuncher/stm_app/releases/download/v0.1.7/stackmuncher-x86_64-pc-windows-msvc.exe -outfile $env:windir\stackmuncher.exe
stackmuncher
stackmuncher
The app will access the local Git repository for the current directory and create a stack report, but will NOT submit any data to the Directory to let you review the stack report first. It will start updating your profile on subsequent runs unless --dryrun
flag is used.
Example
I made commits to ~/rust/xml_to_serde
project recently and now want to test StackMuncher app on it:
~$ cd rust/xml_to_serde
~/rust/xml_to_serde$ stackmuncher
Summary (LoC/libs): Rust 1265/6, Markdown 187, Bash 16
Stack reports: /home/mx/stackmuncher/reports/home_ubuntu_rust_xml_to_serde_git_9a32520d
Project added to: https://stackmuncher.com/?dev=9PdHabyyhf4KhHAE1SqdpnbAZEXTHhpkermwfPQcLeFK
We often commit to the same repo using different user.email
Git setting. Run git shortlog -s -e --all
to check if you made commits under any other email addresses.
Example
Find out what email addresses were used in commits to xml_to_serde
repo:
~/rust/xml_to_serde$ git shortlog -s -e --all
8 Alex Trump <...>
5 Martin Crump <...>
3 alex trump <...>
1 mx <max@onebro.me>
31 rimutaka <rimutaka@onebro.me>
mx and rimutaka are the same person. Let's add both emails to StackMuncher config using --email
parameter:
~/$ stackmuncher config --emails "max@onebro.me, rimutaka@onebro.me"
Primary email: max@onebro.me
Commit emails: max@onebro.me, rimutaka@onebro.me
Anonymous profile: https://stackmuncher.com/?dev=9PdHabyyhf4KhHAE1SqdpnbAZEXTHhpkermwfPQcLeFK
Public profile: disabled
GitHub validation: not set
Stack reports: /home/mx/stackmuncher/reports/
Config folder: /home/mx/stackmuncher/config/
Executable: /usr/local/bin/stackmuncher
The app stored two emails from --emails
param in its config file and printed its full config info (config
command). From now on it will look for commits from max@onebro.me and rimutaka@onebro.me.
Adding more of your projects to your Directory Profile builds a more complete picture of your skills. StackMuncher can be configured to keep your profile current as you write and commit more code:
Make sure stackmuncher
executable is placed in a folder included in PATH
environment variable or add its folder to PATH
.
Check if you have Git hooks already configured: git config --get-all init.templatedir
git config --global --add init.templatedir '~/.git-templates'
mkdir -p ~/.git-templates/hooks
echo 'stackmuncher --log info 2>&1 >> ~/.stm.log' >> ~/.git-templates/hooks/post-commit
chmod a+x ~/.git-templates/hooks/post-commit
git config --global --add init.templatedir '~/.git-templates'
mkdir -p ~/.git-templates/hooks
echo '#!/bin/sh' >> ~/.git-templates/hooks/post-commit
echo 'stackmuncher --log info 2>&1 >> ~/.stm.log' >> ~/.git-templates/hooks/post-commit
Run git init
on your existing repos to add the hook from the template.
hooks/post-commit
file can have the hook added with echo 'stackmuncher --log info 2>&1 >> ~/.stm.log' >> .git/hooks/post-commit
. Run it from the root of the project folder.Git will invoke the app every time you make a commit to a repo with the post-commit hook to generate a report, log its progress in ~/.stm.log
and update your Directory Profile.
You can skip adding the Git hook and run stackmuncher
from the root of any of your projects. No additional params are required.
Anonymous profiles are identified by a public key from the key-pair generated by the app on the first run. E.g. https://stackmuncher.com/?dev=9PdHabyyhf4KhHAE1SqdpnbAZEXTHhpkermwfPQcLeFK The profile can be viewed by anyone with the link, but it cannot be discovered otherwise.
Public profiles are searchable by employers looking for software developers. Your public profile will be created with the same login and personal details as your GitHub profile.
E.g. https://stackmuncher.com/rimutaka has contact details and public projects from https://github.com/rimutaka as well as private projects from https://stackmuncher.com/?dev=9PdHabyyhf4KhHAE1SqdpnbAZEXTHhpkermwfPQcLeFK.
stackmuncher github
stackmuncher config --gist [URL of the Gist]
stackmuncher
executable to a 2nd machinestackmuncher config
on both machines to see the location of config folders.stm_config/config.json
and .stm_config/key.txt
from the 1st to the 2nd machineThe 2nd machine will be connected to the same Developer Profile as the first one for as long as they share the same key.txt and config.json files. If you loose the key file the app will generate a new one and create a new Developer Profile. Contact us on info@stackmuncher.com to merge the old profile into the new one.
Running stackmuncher
without any additional params generates a report for the project in the current working directory and updates your Developer Profile.
Some of the app's settings are cached in a local config file and only need to be set once. You can set, change or unset them via CLI params or by editing config.json file directly.
--emails "me@example.com,me@google.com"
: a list of your email addresses used in commits to to be analyzed. Defaults to git config user.email
. Run git shortlog -s -e --all
to check if you made commits under other email addresses. Set once.--project "path_to_project_to_be_analyzed"
: an optional relative or absolute path to the project/repo to analyze, defaults to the current working directory.--dryrun
: tells the app to generate a report, save it locally, but not upload anything to the Directory.Example:
~$ stackmuncher --project "~/rust/stm_server" --emails "max@onebro.me, rimutaka@onebro.me" --dryrun
Summary (LoC/libs): Rust 12656/26, Markdown 587, PowerShell 169
Stack reports: /home/mx/stackmuncher/reports/home_ubuntu_rust_stm_server_a8ff58d9
Profile update: skipped with `--dryrun` flag
--primary_email "me@example.com"
: an optional email address for Directory notifications only. Defaults to git config user.email
. Set once.Example:
~$ stackmuncher config --primary_email "max+jobs@onebro.me"
Primary email: max+jobs@onebro.me
Commit emails: max@onebro.me, rimutaka@onebro.me
Anonymous profile: https://stackmuncher.com/?dev=9PdHabyyhf4KhHAE1SqdpnbAZEXTHhpkermwfPQcLeFK
Public profile: https://stackmuncher.com/rimutaka
GitHub validation: https://gist.github.com/rimutaka/fb8fc0f87ee78231f064131022c8154a
Stack reports: /home/mx/stackmuncher/reports/
Config folder: /home/mx/stackmuncher/config/
Executable: /usr/local/bin/stackmuncher
--log error|warn|info|debug|trace
: the log is written to stdout. Defaults to error
for least verbose output. Redirect the output to a file or null device to completely silence it. E.g. stackmuncher --log debug >> ~/stm_trace.log
--reports "path to reports folder"
: a path to an alternative location for saving stack reports. The path can be relative or absolute. Defaults to a platform-specific user-data location. Set once.--config "path to config folder"
: a path to an alternative location of the config folder. The path can be relative or absolute. Defaults to a platform-specific user-data location.stackmuncher help
: displays usage info.stackmuncher config
: display the contents of the config file and its location. The config file can be edited manually.The current version of the app is at alpha-stage and should be used for testing purposes only.
We want to hear about as many issues users run into as possible. Copy-paste the log and error messages printed by the app into https://github.com/stackmuncher/stm_app/issues/new/choose and let us help you.
Pre-requisites:
user.email
setting was configureduser.email
settingIf the app did something, but no report was submitted:
stackmuncher config
and check the output in reports
folder - there should be at least 4 files:
user.email
setting or from --emails
paramAssuming that you have Git and a Rust toolchain installed, just clone the repo and run the app:
git clone https://github.com/stackmuncher/stm_app.git
cd stm_app
cargo run -- --log error --project "path_to_any_of_your_local_projects"
File an issue via https://github.com/stackmuncher/stm_app/issues or email the maintainer on info@stackmuncher.com.