GitHub Issues as a documentation source in `living-doc-collector-gh`
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 8/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Active
- Tech stack
- github, python
- Domain
- api, documentation
Research direction
This is a multi-part epic, not a single change, so pick the first unchecked child: the core-issues testbed project. Read docs/reference/authoring-formats.md (GitHub issue-body layout) and docs/examples/gh-issues/ in living-doc, then the existing doc_issues/ code in living-doc-collector-gh. Done means that child is merged and its issues parse with no warning.
Written by the indexing model from the issue text.
Description
Background
GitHub Issues is planned; in v0.1.0 it is not a documentation source. In living-doc-collector-gh v0.2.0 the
doc-issues mode is kept aside: doc_issues/ is out of the build, and doc-issues: true fails at start. Its
doc_issues/body_parser.py reads an older layout, a table of acceptance criteria. Its HTTP layer has no documented
retry policy or timeouts. The github-token input is declared, but only this mode would read it. utilities already
ships the canonical issue-body parser (authoring.issue_body) and the doc-entities contract, unused, and its
github/rate_limiter.py and github/decorators.py are imported only by the kept-aside mode. living-doc has the
canonical layout (docs/reference/authoring-formats.md § GitHub issue-body layout) and a corpus,
docs/examples/gh-issues/. docs/tutorials/gh-issues-to-markdown.md and docs/guides/github-collection.md mark the
source planned. The testbed has no project documented in issues.
#19 planned this before the shared contracts existed. Its one idea that still holds, a local-directory source so that
CI runs offline, is a subtask below.
Goals
doc-issuesmines the issues labelledDocumentedUserStory,DocumentedFeatureorDocumentedFunctionality. It
reads them with the canonical parser and writesdoc-entities.jsonthroughwrite_artifact, with a required
project-idand the partial-collection rules. A closed issue whose## Statussaysactivestaysactive, with
tracker_state: closed.- A robust HTTP layer: REST rate-limit reset, secondary 403 / 429 with
Retry-After, 5xx, GraphQLRATE_LIMITED, a
timeout on every call, and an immediate failure on GraphQLINSUFFICIENT_SCOPESthat names the scope. GitHub
Enterprise Server and GHE.com get their API URL, and every GitHub URL is built in one module. - The issue-body format is settled before real bodies flow: Markdown is turned into the source-code format before it
is parsed, and list nesting has one meaning. - The testbed gets an issues project;
living-docCI runs thegh-issueschain over the corpus and that project,
with the multi-source negative runs. - The tutorial carries a workflow, and a release lists the mode.
Subtasks
In landing order. Each child is drafted when the previous one has merged.
-
living-doc-testbed: acore-issuesproject. Its entities exist only as issues, each with exactly one
Documented*label, and its folder holds only aREADME.md(the issue list) and.featurescenarios. Coverage
matchescore, with one closed issue whose## Statusisactive. Every body parses with no warning. -
living-doc-utilities: an issue body is turned from Markdown into the source-code format before it is
normalised and parsed (tech-debt issue, a child). -
living-doc-utilities: decide what list nesting means in an issue body (tech-debt issue, a child; an owner
decision). -
living-doc-collector-gh:doc-issuesonauthoring.issue_body.body_parser.pyis deleted, after a
characterisation test against2a27a0c, the last commit where the mode ran.utilities' golden entities come
through unchanged exceptsource_ref. An issue with no parseable id is skipped withMISSING_ENTITY_IDand
counted.doc_issues/README.mdlinks the canonical layout instead of restating it. -
living-doc-collector-gh: the HTTP layer (the retries, timeouts, scope failure and URLs above, configured on the
one PyGithub factory). Its PR states whetherutilities'github.rate_limiterandgithub.decoratorsare
still imported, and links theutilitiesfollow-up. -
living-doc-collector-gh: a local-directory source fordoc-issues, one body file per issue with its label and
title, so a CI run needs no network and no token. -
living-doc-collector-gh: a configurable label set (tech-debt issue, a child; optional for the first release). -
living-doc-utilities: thegithubandhtmlinstall extras and the twogithub/modules, decided once the
HTTP layer has landed (tech-debt issue, related). -
living-doc-toolkit:doc-entitiesinput fornormalize-docsandcoverage-matrix. Shared with the Azure
DevOps epic: whichever epic gets there first builds it. -
living-doc: thegh-issuessnapshot chain overdocs/examples/gh-issues/andcore-issues. Every artifact
validates with no warning, and theMIXED_DOCUMENTATION_SOURCESandMULTIPLE_DOCUMENTATION_SOURCESnegative
runs fail with their codes. -
living-docagentic layer: a skill writes an entity into an issue body (tech-debt issue, a child). -
living-doc: the tutorial and guide lose "planned" and get a workflow, then a milestone run overcore-issues,
then the release.
Related / References
living-docdocs/reference/authoring-formats.md§ GitHub issue-body layout,docs/examples/gh-issues/,
docs/guides/github-collection.md,docs/tutorials/gh-issues-to-markdown.md.living-doc-utilitiesdocs/authoring/parsers.md,docs/contracts/pipeline-rules.md.living-doc-collector-ghdoc_issues/README.md,action.yml(github-token).- #19 (superseded by this epic).
- Dominant language
- Python
- Stars
- 0
- Forks
- 0
- Avg merge
- 6h 14m
- Merged PRs (30d)
- 27
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from AbsaOSS/living-doc
-
type:tech-debt
Difficulty 1/5 Under an hour Newbie friendliness 78/100
AbsaOSS/living-doc#133 ·
Maintainers usually reply within 1 day
-
type:tech-debt
Difficulty 1/5 1-3 hours Newbie friendliness 85/100
AbsaOSS/living-doc#130 ·
Maintainers usually reply within 1 day
-
type:tech-debt
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
AbsaOSS/living-doc#129 ·
Maintainers usually reply within 1 day
-
type:tech-debt
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
AbsaOSS/living-doc#119 ·
Maintainers usually reply within 1 day
-
type:tech-debt
Difficulty 5/5 Over a week Newbie friendliness 5/100
AbsaOSS/living-doc#136 ·
Maintainers usually reply within 1 day
All issues in AbsaOSS/living-doc
Similar issues
-
documentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
JheysonJhordyHuarauyaRiquelme/sprocguard#18 ·
Maintainers usually reply within 1 day
-
enhancement good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
dlq/synthpopcan#59 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
mdn/translated-content#40220 ·
Maintainers usually reply within 4 days
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
ETSInitiative/PETSIRD#243 ·
Maintainers usually reply within 1 day
-
deferred p2
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
cuadrao-ai/argus#2160 ·
Maintainers usually reply within 1 day