-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
83 lines (75 loc) · 5.85 KB
/
Copy path.env.example
File metadata and controls
83 lines (75 loc) · 5.85 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
# Ongoing GitHub -> AgilePlace sync config. Copy to .env (gitignored) and fill in YOUR values.
# Comments must be on their OWN line -- values are read literally.
# No AgilePlace token -> DRY RUN/read-only only; GitHub API reads still run through gh.
# AgilePlace tokens have no scopes; never commit one; revoke+rotate if leaked.
# Path to the local clone of the repo to sync. Every `gh` call runs with this as its working directory,
# so gh resolves the repo from that clone's remote. (Windows: e.g. C:\Users\you\github\your-repo)
TARGET_REPO_PATH=/path/to/your/repo-clone
# AgilePlace (LeanKit) io v2 API -- placeholders; fill with your tenant's values.
AGILEPLACE_TOKEN=
AGILEPLACE_HOST=your-tenant.leankit.com
AGILEPLACE_BOARD_ID=000000000000
# GitHub Projects v2 board -- the STATUS source of truth (Backlog/Ready/In progress/In review/Done) and,
# later, the Start/Target date fields. Needs the 'project' token scope: gh auth refresh -s project
# Leave GH_PROJECT_OWNER/NUMBER blank to skip Projects v2 (sync falls back to
# label/assignee/PR-derived stages).
# GH_PROJECT_OWNER = a user (@me) or org login; GH_PROJECT_NUMBER = the Projects v2 board number.
# (Comments must be on their OWN line -- values are read literally.)
GH_PROJECT_OWNER=
GH_PROJECT_NUMBER=
GH_PROJECT_STATUS_FIELD=Status
GH_PROJECT_START_FIELD=Start
GH_PROJECT_TARGET_FIELD=Target
# Optional: extra labels to keep OUT of the label<->tag mirror (comma-separated). The lifecycle labels
# agent:in-progress, agent:in-review, and agent:ready are always excluded (they drive lane movement).
LABEL_SYNC_IGNORE=
# Optional: max character length of an AgilePlace card description (rendered HTML) before the sync
# truncates it (appending a marker) rather than risking a write-time error. AgilePlace's own limit is
# undocumented, so this defaults to a conservative value below every documented LeanKit/AgilePlace
# field limit we could find. Must be a positive integer; anything else falls back to the default with
# a WARN.
AP_DESCRIPTION_MAX_LENGTH=
# Optional: map GitHub stages -> YOUR board's lanes when lane titles don't self-describe. Format:
# ';'-separated "Stage=Lane" entries; '|' lists multiple lanes per stage (FIRST = move-to target, ALL =
# "already in that stage", so the sync won't shuffle a card between equivalent lanes). Stages are:
# Backlog, Ready, In progress, In review, Done. Unmapped stages fall back to lane-title / cardStatus
# inference (which fails closed rather than guess when a stage is ambiguous).
# Example -- a board whose Not Started tier splits into New Requests / Approved / Ready to Start,
# Started into Doing Now / Under Review, and Finished into Recently Finished:
# Optional "Intake" stage (two-state backlog, issue #63): map Intake to your unvetted-request lane
# and an open issue that is OFF the Project board with no work signals (no PR, assignees, or agent
# labels) holds there instead of falling back to Backlog. Moving its card to ANY other managed lane
# vets it -- the sync adds the issue to the Project with the matching Status (never the reverse).
# Omit the Intake entry and behavior is exactly the classic single-state Backlog.
# STAGE_LANE_MAP=Intake=New Requests; Backlog=Approved; Ready=Ready to Start; In progress=Doing Now; In review=Under Review; Done=Recently Finished
STAGE_LANE_MAP=
# Optional: two-way issue/card COMMENT sync (issue #66). Both values are required to enable it --
# they identify YOU on each side, so the sync can tell "a comment it mirrored" apart from "a comment
# a human posted", and never re-mirror its own mirrors back and forth. Leave either blank and comment
# sync silently self-disables: no comments are read or written, and NO error is raised at startup --
# instead a single WARN is printed the first time the sync actually tries to run (once per process
# run, not on every .env parse), so a one-time omission doesn't spam every dry run.
# COMMENT_SYNC_GH_LOGIN = your GitHub login (as it appears as a comment author on this repo's issues).
# COMMENT_SYNC_AP_AUTHOR = your AgilePlace display name (as it appears as a comment author on cards).
COMMENT_SYNC_GH_LOGIN=
COMMENT_SYNC_AP_AUTHOR=
# Optional: map GitHub issue types/labels -> YOUR board's card type names, so the sync can set each
# card's type. Format: ';'-separated "<kind>:<key>=<card type>" entries, where <kind> is `type` (a
# NATIVE GitHub issue type) or `label` (an ordinary issue label), and the value is the card type
# title exactly as your board spells it. Entries are evaluated in the order written -- FIRST match
# wins for an issue matching several -- so list the rule that should outrank the others first.
# Leave blank and the built-in defaults apply (native Bug -> 'Bug', native Feature -> 'New Feature',
# label documentation -> 'Documentation', label enhancement -> 'Improvement', label bug -> 'Bug'),
# which only resolve on a board that happens to use those exact names; anything unresolved writes no
# type at all (the card keeps whatever type the board gives it) and WARNs once per run.
# Set it but get every entry wrong and NOTHING is written -- the defaults are NOT silently restored,
# so a typo can never write a type you tried to override. Each rejected entry WARNs with its text.
# The same map is inverted for reverse intake: a promoted card of a mapped type seeds the new
# GitHub issue's native type/label from it, so the two directions cannot drift apart. Once you set
# a map it is the WHOLE truth in both directions: a board card type it does not mention seeds
# nothing on promotion (including 'Other Work' -> native Task, which the defaults cover) -- add an
# entry for it if you want that. `label:` names must be gh-writable (no ',' or '"').
# Run `python -m agilesync.tools.type_inventory` (from the repo root) to print BOTH sides'
# available names plus a filled-in skeleton.
# CARD_TYPE_MAP=type:Bug=Defect; type:Feature=Story; label:documentation=Documentation; label:enhancement=Improvement
CARD_TYPE_MAP=