-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgithub.just
More file actions
131 lines (109 loc) · 3.93 KB
/
Copy pathgithub.just
File metadata and controls
131 lines (109 loc) · 3.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
repo := "scampi-dev/scampi"
# Help
# -----------------------------------------------------------------------------
[default]
[doc("Show this help message")]
@help *args:
just --unsorted --list gh {{args}}
# Issues
# -----------------------------------------------------------------------------
[group('issues')]
[doc("List open issues (extra args pass through: --label kind/bug, --milestone N, --state closed, ...)")]
[positional-arguments]
list-issues *args:
#!/usr/bin/env bash
exec gh issue list --repo {{repo}} "$@"
[group('issues')]
[doc("Show full issue details (extras: --comments, --web)")]
[positional-arguments]
show-issue number *args:
#!/usr/bin/env bash
exec gh issue view --repo {{repo}} "$@"
[group('issues')]
[doc("Search issues (free-text query, gh search filter flags accepted)")]
[positional-arguments]
search-issues *args:
#!/usr/bin/env bash
exec gh search issues --repo {{repo}} "$@"
[group('issues')]
[doc("Create an issue (--title T --body-file path | --body text, --label L, --milestone M, --assignee U)")]
[positional-arguments]
create-issue *args:
#!/usr/bin/env bash
exec gh issue create --repo {{repo}} "$@"
[group('issues')]
[doc("Edit an issue (--add-label, --remove-label, --title, --body, --milestone, ...)")]
[positional-arguments]
update-issue number *args:
#!/usr/bin/env bash
exec gh issue edit --repo {{repo}} "$@"
[group('issues')]
[doc("Close an issue (extras: --reason completed|not-planned, --comment text)")]
[positional-arguments]
close-issue number *args:
#!/usr/bin/env bash
exec gh issue close --repo {{repo}} "$@"
[group('issues')]
[doc("Reopen an issue")]
reopen-issue number:
gh issue reopen --repo {{repo}} {{number}}
[group('issues')]
[doc("Assign an issue to a user")]
assign-issue number user:
gh issue edit --repo {{repo}} {{number}} --add-assignee {{user}}
[group('issues')]
[doc("Add a label to an issue (without removing existing labels)")]
add-label number label:
gh issue edit --repo {{repo}} {{number}} --add-label {{label}}
[group('issues')]
[doc("Comment on an issue (--body text | --body-file path)")]
[positional-arguments]
comment-issue number *args:
#!/usr/bin/env bash
exec gh issue comment --repo {{repo}} "$@"
# Milestones
# -----------------------------------------------------------------------------
# gh has no first-class milestone subcommand, so these go through
# `gh api`. set-milestone uses --milestone with the TITLE string (gh
# accepts either title or number, but title reads better in scripts).
[group('milestones')]
[doc("List open milestones (--state closed for closed ones)")]
[positional-arguments]
list-milestones *args:
#!/usr/bin/env bash
state="open"
for a in "$@"; do
case "$a" in --state) shift; state="$1"; shift ;; esac
done
exec gh api "repos/{{repo}}/milestones?state=${state}" \
--jq '.[] | "\(.number)\t\(.title)\t\(.open_issues) open / \(.closed_issues) closed"'
[group('milestones')]
[doc("Create a milestone")]
create-milestone title description="":
gh api "repos/{{repo}}/milestones" -f title="{{title}}" -f description="{{description}}"
[group('milestones')]
[doc("Set milestone on an issue (by title)")]
set-milestone number title:
gh issue edit --repo {{repo}} {{number}} --milestone "{{title}}"
[group('milestones')]
[doc("Close a milestone by number")]
close-milestone number:
gh api -X PATCH "repos/{{repo}}/milestones/{{number}}" -f state=closed
# Pull requests
# -----------------------------------------------------------------------------
[group('prs')]
[doc("List PRs (--state open|closed|merged, --label L, --author U)")]
[positional-arguments]
list-prs *args:
#!/usr/bin/env bash
exec gh pr list --repo {{repo}} "$@"
[group('prs')]
[doc("Show PR details (extras: --comments, --web)")]
[positional-arguments]
show-pr number *args:
#!/usr/bin/env bash
exec gh pr view --repo {{repo}} "$@"
[group('prs')]
[doc("List inline review comments on a PR")]
pr-comments number:
gh api "repos/{{repo}}/pulls/{{number}}/comments"