You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- parse GitHub/Codeberg remotes into a shared HostedRepo with dynamic PR labels
- show public Codeberg PR status and checks via the Forgejo API
- add a jayjay-network crate (ureq) for blocking HTTP; drop the curl shell-out
- share the PR check roll-up across hosts; host-agnostic PrState parsing
- open the origin remote in the browser via core (handles ssh/scp/git URLs)
- document the bookmark-based GitHub/Codeberg PR flow
When a change spans multiple areas, load each relevant doc before editing.
15
16
@@ -89,12 +90,15 @@ jj describe -m "message"
89
90
jj commit -m "message"
90
91
jj squash
91
92
jj split --paths FILE -m "msg"
93
+
jj edit <rev>
92
94
jj bookmark set<name> -r <rev>
93
95
jj git fetch
94
-
jj git push
96
+
jj git push --bookmark <name>
95
97
jj fix
96
98
```
97
99
100
+
For PR work, load [Pull Request Workflow](agents/pull-requests.md). Use a pushed bookmark and JayJay's **Pull Request on GitHub** or **Pull Request on Codeberg** action.
101
+
98
102
Do not use `git commit`, `git add`, `git push`, `git stash`, `git branch`, or `git rebase -i`; use the jj equivalents.
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -48,7 +48,7 @@ Browse your DAG, review side-by-side diffs, resolve conflicts, and run every jj
48
48
- Absorb hunks into ancestors, back out (revert) changes
49
49
- Git push/fetch with auto-track
50
50
- Bookmark Manager (⌘⇧B) with stats, filter, clean up stale branches, resolve conflicts
51
-
- Pull Request on GitHub from bookmark right-click (DAG row + Bookmark Manager) — opens the existing PR if one exists, else GitHub's compose URL
51
+
- Pull Request on GitHub/Codeberg from bookmark right-click (DAG row + Bookmark Manager) — opens an existing PR when one exists, else a GitHub or Codeberg PR compose URL; public Codeberg PR status is shown via the Forgejo API
52
52
- Divergent commit detection and resolution
53
53
- Undo via operation log
54
54
- Command palette (⌘⇧P) with ~35 commands; type `jj <args>` (or `! <args>`) for inline raw jj CLI output
Copy file name to clipboardExpand all lines: UserGuide.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -69,14 +69,14 @@ This guide covers JayJay's user-facing features. The released macOS app uses the
69
69
- Use Undo to inspect the jj operation log and roll back recent operations.
70
70
- JayJay shows lightweight toasts for completed actions and keeps the rest of the window usable when possible.
71
71
72
-
## Bookmarks, Git, and GitHub
72
+
## Bookmarks, Git, and Pull Requests
73
73
74
74
- Use the Bookmark Manager with `Cmd+Shift+B` to inspect bookmark stats, filter bookmarks, reveal their changes, copy names, diff them, resolve conflicts, and clean up stale entries.
75
75
- Use bookmark actions to create, rename, track, move forward, delete, and push bookmarks.
76
76
- Push and fetch Git remotes from JayJay; push can auto-track a bookmark when needed.
77
-
- Right-click a bookmark in the DAG or Bookmark Manager to open a GitHub pull request.
78
-
- If a PR already exists, JayJay opens it. Otherwise it opens GitHub's PR compose page for that bookmark.
79
-
- The status bar can show the selected bookmark's PR link and check status via `gh`.
77
+
- Right-click a bookmark in the DAG or Bookmark Manager to open a GitHub or Codeberg pull request.
78
+
- If a GitHub PR or public Codeberg PR already exists, JayJay opens it. Otherwise it opens a GitHub or Codeberg PR compose page for that bookmark.
79
+
- The status bar can show the selected bookmark's PR link and check status via `gh` for GitHub or Codeberg's public Forgejo API.
80
80
- Remote repository URLs can be opened in the browser, including `git@...` URLs converted to HTTPS.
Load this file before creating, updating, landing, or documenting pull request workflows.
4
+
5
+
JayJay uses jj bookmarks for pull requests on both GitHub and Codeberg. This keeps the pushed commit identical to the signed jj change, avoids generated PR commits, and matches jj's normal edit-and-rewrite model.
6
+
7
+
GitHub PR status and checks use `gh`. Public Codeberg PR status and commit statuses use the unauthenticated Forgejo API; private Codeberg repositories are not integrated yet.
8
+
9
+
## Default Flow
10
+
11
+
Start from current trunk:
12
+
13
+
```bash
14
+
jj git fetch
15
+
jj new main@origin
16
+
```
17
+
18
+
Keep edits in the working-copy change `@` until they are ready to publish:
19
+
20
+
```bash
21
+
jj st
22
+
jj diff
23
+
jj describe -m "scope: concise change summary"
24
+
```
25
+
26
+
Split by responsibility when the working copy contains more than one logical change:
27
+
28
+
```bash
29
+
jj split --paths <paths-for-one-change> -m "scope: one logical change"
30
+
```
31
+
32
+
Repeat `jj split` until each PR-sized change has one clear purpose. Do not split just to mirror file boundaries; split by behavior, bug fix, or user-visible feature.
33
+
34
+
Before publishing, format and run the checks that match the change:
35
+
36
+
```bash
37
+
jj fix # run configured formatters (rustfmt, SwiftFormat) over the change
38
+
just test
39
+
just test-app
40
+
just lint
41
+
```
42
+
43
+
Publish the selected change by moving a bookmark to it and pushing that bookmark:
44
+
45
+
```bash
46
+
jj bookmark set<topic> -r @
47
+
jj git push --bookmark <topic>
48
+
```
49
+
50
+
Then open the bookmark context menu in JayJay and choose **Pull Request on GitHub** or **Pull Request on Codeberg**. For GitHub, `gh pr create --draft --base main --head <topic>` is also fine when the browser flow is inconvenient.
51
+
52
+
Use `master@origin` or `trunk@origin` instead of `main@origin` when that is the repository's trunk bookmark.
53
+
54
+
## Review Updates
55
+
56
+
Handle review feedback by editing the same change and pushing the same bookmark again:
57
+
58
+
```bash
59
+
jj git fetch
60
+
jj edit <topic>
61
+
62
+
# edit files
63
+
jj st
64
+
jj diff
65
+
jj describe -m "scope: updated summary"
66
+
jj fix
67
+
just test
68
+
just lint
69
+
70
+
jj bookmark set<topic> -r @
71
+
jj git push --bookmark <topic>
72
+
```
73
+
74
+
The remote branch moves as part of normal jj history editing. `jj git push` applies jj's bookmark safety checks, so fetch first if the push reports that the remote bookmark changed.
75
+
76
+
## Multiple Changes
77
+
78
+
For independent PRs, use one bookmark per ready change:
79
+
80
+
```bash
81
+
jj bookmark set<topic-a> -r <rev-a>
82
+
jj bookmark set<topic-b> -r <rev-b>
83
+
jj git push --bookmark <topic-a>
84
+
jj git push --bookmark <topic-b>
85
+
```
86
+
87
+
For stacked work, prefer separate bookmarks only when the stack is actually useful for review. Push the base change first, then the dependent change, and set the dependent PR's base branch to the base bookmark in the hosting UI.
88
+
89
+
## Landing Cleanup
90
+
91
+
After the PR lands:
92
+
93
+
```bash
94
+
jj git fetch
95
+
jj new main@origin
96
+
```
97
+
98
+
If the hosting service deleted the remote branch, forget the local bookmark and its stale remote tracking state:
99
+
100
+
```bash
101
+
jj bookmark forget <topic> --include-remotes
102
+
```
103
+
104
+
If the hosting service did not delete the remote branch, delete it before forgetting it:
105
+
106
+
```bash
107
+
jj bookmark delete <topic>
108
+
jj git push --bookmark <topic>
109
+
```
110
+
111
+
Keep the local reviewed change only when it is still useful for follow-up work; otherwise start new work from `main@origin`.
0 commit comments