Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
812499d
Initial commit
raszi Feb 8, 2026
ccaecd0
Fix linter warning
raszi Feb 8, 2026
2c09b20
Add tests
raszi Feb 8, 2026
757cc8d
Add a GitHub CI setup
raszi Feb 8, 2026
e79f8aa
Ignore .eask
raszi Feb 8, 2026
25bd3ff
Bump up the minimum Emacs version
raszi Feb 8, 2026
af80ad6
Fix comment
raszi Feb 8, 2026
1527ab6
Add branch names between commits
raszi Feb 8, 2026
2b7ab26
Evaluate current-time once
raszi Feb 8, 2026
7d73a2d
Combine to let*
raszi Feb 8, 2026
719cee5
Add missing require
raszi Feb 8, 2026
f913710
Add error if author could not be determined
raszi Feb 8, 2026
b76178b
Refactor magit-standup
raszi Feb 8, 2026
d21cc89
Collect directories recursively
raszi Feb 8, 2026
12591cb
Add a helper Makefile
raszi Feb 8, 2026
3f3af7a
Add links to the commits
raszi Feb 8, 2026
10b5484
Remove unnecessary function
raszi Feb 8, 2026
32b958a
Update docstring
raszi Feb 8, 2026
1b9189d
Skip merges
raszi Feb 8, 2026
036a382
Remove unnecessary require
raszi Feb 8, 2026
2fd01a1
Refactor --format-org
raszi Feb 8, 2026
54ed230
Update commentary
raszi Feb 8, 2026
771bc7f
Remove unnecessary cond
raszi Feb 8, 2026
03a2e32
Make new buffer read-only
raszi Feb 8, 2026
f184a39
Fix outdated description
raszi Feb 8, 2026
24b0a96
Quit on q
raszi Feb 8, 2026
8f8331f
Get the author email per repository
raszi Feb 9, 2026
4f7955d
Skip repositories without commits
raszi Feb 9, 2026
b0d0b7c
Fix formatting
raszi Feb 15, 2026
abc4d3a
Refactor tests
raszi Feb 15, 2026
c726d61
Change magit-standup to use transient inputs
raszi Feb 15, 2026
9376569
Link the repositories
raszi Feb 15, 2026
1874ca0
Extract author resolving
raszi Feb 15, 2026
775d17c
Add the missing argument for Emacs 28.1
raszi Feb 15, 2026
41380ef
Add a README
raszi Feb 15, 2026
a2353f4
Add a screenshot
raszi Feb 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .dir-locals.el
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
((emacs-lisp-mode
. ((eval . (progn
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(unless (assoc "magit" package-archive-contents)
(package-refresh-contents)))))))
25 changes: 25 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: CI
on:
pull_request:
push:
branches: [main]

jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
emacs_version: ['28.1', '29.4', '30.2']
steps:
- uses: actions/checkout@v4
- uses: jcs090218/setup-emacs@master
with:
version: ${{ matrix.emacs_version }}
- uses: emacs-eask/setup-eask@master
with:
version: 'snapshot'
- run: eask package
- run: eask install-deps
- run: eask compile
- run: eask lint package
- run: eask test buttercup
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
*.elc
.deps
.compile
.eask/
.cask/
dist/
19 changes: 19 additions & 0 deletions Easkfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
(package "magit-standup"
"0.1.0"
"Collect recent git commits for standup notes")

(website-url "https://github.com/function-artisans/magit-standup")
(keywords "tools" "vc")

(package-file "magit-standup.el")

(source "gnu")
(source "melpa")

(depends-on "emacs" "28.1")
(depends-on "magit" "4.5.0")
(depends-on "transient" "0.8.0")

(development
(depends-on "package-lint")
(depends-on "buttercup"))
19 changes: 19 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
.PHONY: lint test clean

.deps: Easkfile
eask install-deps
@touch .deps

.compile: .deps magit-standup.el
eask compile
@touch .compile

lint: .deps
eask lint package

test: .compile
eask test buttercup

clean:
eask clean all
@rm -f .deps .compile
64 changes: 64 additions & 0 deletions README.org
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
#+title: magit-standup
#+author: István Karaszi

Collect recent git commits across multiple repositories and format them as org-mode standup notes.

[[file:screenshots/standup-buffer.png]]

* Features

- Scans one or more git repositories for your recent commits
- Weekday-aware lookback: on Monday (and weekends) looks back to Friday; otherwise looks back 1 day
- Transient menu lets you override the since-date and repository list before running
- Output is an org-mode buffer with clickable commit links (via [[https://github.com/magit/orgit][orgit]] or [[https://orgmode.org/worg/org-contrib/org-git-link.html][org-git-link]])
- Directories that aren't git repos are searched recursively for nested repos

* Requirements

- Emacs 28.1+
- [[https://github.com/magit/magit][Magit]] 4.5.0+
- [[https://github.com/magit/transient][Transient]] 0.8.0+

* Installation

** With use-package and straight.el

#+begin_src emacs-lisp
(use-package magit-standup
:straight (:host github :repo "function-artisans/magit-standup"))
#+end_src

** Manual

Clone the repository and add it to your =load-path=:

#+begin_src emacs-lisp
(add-to-list 'load-path "/path/to/magit-standup")
(require 'magit-standup)
#+end_src

* Usage

Run =M-x magit-standup= to open the transient menu:

- =-d= / =--since== — override the since-date (defaults to the weekday-aware computed date)
- =-r= / =--repos== — override the repository list
- =s= — show the standup buffer

Press =s= to generate the standup notes in a =*magit-standup*= buffer.

* Configuration

All options can be customized via =M-x customize-group RET magit-standup=.

| Variable | Default | Description |
|---------------------------------+---------+--------------------------------------------------------------------|
| =magit-standup-repos= | =nil= | List of directories to scan. When nil, uses current repo. |
| =magit-standup-repos-max-depth= | =1= | Max depth to search non-repo directories for nested repos. |
| =magit-standup-author= | =nil= | Author filter. When nil, uses =git config user.email=. |
| =magit-standup-since-days-ago= | =nil= | Fixed lookback override. When nil, weekday-aware logic. |
| =magit-standup-link-package= | =nil= | Link style: =orgit=, =org-git-link=, =none=, or nil (auto-detect). |

* License

GPL-3.0-or-later
Loading