{"id":27873909,"url":"https://github.com/absaoss/living-doc-collector-gh","last_synced_at":"2026-01-19T14:04:36.468Z","repository":{"id":289615642,"uuid":"970757707","full_name":"AbsaOSS/living-doc-collector-gh","owner":"AbsaOSS","description":"A GitHub Action that collects project-related information by mining repositories for issues, labels, and other metadata. Produces machine-readable data for use in documentation generation and analysis workflows.","archived":false,"fork":false,"pushed_at":"2026-01-11T08:54:55.000Z","size":134,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-01-11T14:26:54.722Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AbsaOSS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-22T13:46:18.000Z","updated_at":"2026-01-11T08:54:58.000Z","dependencies_parsed_at":"2025-12-04T14:02:44.917Z","dependency_job_id":null,"html_url":"https://github.com/AbsaOSS/living-doc-collector-gh","commit_stats":null,"previous_names":["absaoss/living-doc-collector-gh"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/AbsaOSS/living-doc-collector-gh","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbsaOSS%2Fliving-doc-collector-gh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbsaOSS%2Fliving-doc-collector-gh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbsaOSS%2Fliving-doc-collector-gh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbsaOSS%2Fliving-doc-collector-gh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AbsaOSS","download_url":"https://codeload.github.com/AbsaOSS/living-doc-collector-gh/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbsaOSS%2Fliving-doc-collector-gh/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28571556,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T12:50:50.164Z","status":"ssl_error","status_checked_at":"2026-01-19T12:50:42.704Z","response_time":67,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-05T01:17:05.408Z","updated_at":"2026-01-19T14:04:36.461Z","avatar_url":"https://github.com/AbsaOSS.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Living Documentation Collector for GitHub\n\n- [Motivation](#motivation)\n- [Data-Mining Modes](#data-mining-modes)\n- [Usage](#usage)\n    - [Prerequisites](#prerequisites)\n    - [Adding the Action to Your Workflow](#adding-the-action-to-your-workflow)\n- [Action Configuration](#action-configuration)\n    - [Environment Variables](#environment-variables)\n    - [Inputs](#inputs)\n      - [Base Inputs](#base-inputs)\n      - [Mode Inputs](#mode-inputs)\n- [Action Outputs](#action-outputs)\n- [How-to](#how-to)\n  - [How to Create a Token with Required Scope](#how-to-create-a-token-with-required-scope)\n  - [How to Store Token as a Secret](#how-to-store-token-as-a-secret)\n- [Contribution Guidelines](#contribution-guidelines)\n  - [License Information](#license-information)\n  - [Contact or Support Information](#contact-or-support-information)\n\n## Motivation\n\nAddresses the need for continuously updated documentation accessible to all team members and stakeholders. Achieves this by extracting information directly from GitHub and providing it in a json format, which can be easily transformed into various documentation formats. This approach ensures that the documentation is always up-to-date and relevant, reducing the burden of manual updates and improving overall project transparency.\n\n---\n## Data-Mining Modes\n\nThis Collector supports multiple mining modes, each with its own unique functionality. Read more about the modes at their respective links:\n- [Documentation Issues](doc_issues/README.md) ![Status](https://img.shields.io/badge/status-in%20development-orange)\n- [Test Catalog](test_catalog/README.md) ![Status](https://img.shields.io/badge/status-todo-lightgrey)\n- [Test Headers](test_headers/README.md) ![Status](https://img.shields.io/badge/status-todo-lightgrey)\n- [Code Tags](code_tags/README.md) ![Status](https://img.shields.io/badge/status-todo-lightgrey)\n- [Release Notes](release_notes/README.md) ![Status](https://img.shields.io/badge/status-todo-lightgrey)\n- [Workflows](workflows/README.md) ![Status](https://img.shields.io/badge/status-todo-lightgrey)\n- [User Guide](user_guide/README.md) ![Status](https://img.shields.io/badge/status-todo-lightgrey)\n\n---\n## Usage\n\n### Prerequisites\n\nBefore we begin, ensure you have fulfilled the following prerequisites:\n- GitHub Token with permission to fetch repository data such as Issues and Pull Requests.\n- Python version 3.12 or higher.\n\n### Adding the Action to Your Workflow\n\nSee the default action step definition:\n\n```yaml\n- name: Living Documentation Collector for GitHub\n  id: living_doc_collector_gh\n  uses: AbsaOSS/living-doc-collector-gh@v0.1.0\n  env:\n    GITHUB-TOKEN: ${{ secrets.REPOSITORIES_ACCESS_TOKEN }}  \n  with:\n    # modes de/activation\n    doc-issues: false\n    tests: false\n    test-headers: false\n    code-tags: false\n    release-notes: false\n    workflows: false\n    user-guide: false\n```\n\nSee the default action step definitions for each mode:\n\n- [Documentation Issues mode default step definition](doc_issues/README.md#adding-doc-issues-mode-to-the-workflow)\n- [Tests mode default step definition](test_catalog/README.md#adding-tests-mode-to-the-workflow)\n- [Test Headers mode default step definition](test_headers/README.md#adding-test-headers-mode-to-the-workflow)\n- [Code Tags mode default step definition](code_tags/README.md#adding-code-tags-mode-to-the-workflow)\n- [Release Notes mode default step definition](release_notes/README.md#adding-release-notes-mode-to-the-workflow)\n- [Workflows mode default step definition](workflows/README.md#adding-workflows-mode-to-the-workflow)\n- [User Guide mode default step definition](user_guide/README.md#adding-user-guide-mode-to-the-workflow)\n\n#### Full Example of Action Step Definition\n\nSee the full example of action step definition (in the example, non-default values are used):\n\n```yaml\n- name: Living Documentation Collector for GitHub\n  id: living_doc_collector_gh\n  uses: AbsaOSS/living-doc-collector-gh@v0.1.0\n  env:\n    GITHUB-TOKEN: ${{ secrets.REPOSITORIES_ACCESS_TOKEN }}  \n  with:\n    doc-issues: true                       # Documentation Issues mode de/activation\n    verbose-logging: true                  # Optional: project verbose (debug) logging feature de/activation\n    \n    # 'Documentation Issues' mode required configuration\n    doc-issues-repositories: |\n        [\n          {\n            \"organization-name\": \"your-organization-name\",\n            \"repository-name\": \"your-project-living-documentation\",\n            \"projects-title-filter\": []\n          },\n          {\n            \"organization-name\": \"your-organization-name\",\n            \"repository-name\": \"your-another-project-living-documentation\",\n            \"projects-title-filter\": [\"Management Overview\"]\n          }\n        ]\n      \n    # 'Documentation Issues' mode optional configuration\n    doc-issues-project-state-mining: true     # project state mining feature de/activation\n```\n\n---\n## Action Configuration\n\nThis section outlines the essential parameters that are common to all modes a user can define. Configure the action by customizing the following parameters based on your needs:\n\n### Environment Variables\n\n| Variable Name                | Description                                                                                                | Required | Usage                                                                                                                              |\n|------------------------------|------------------------------------------------------------------------------------------------------------|----------|------------------------------------------------------------------------------------------------------------------------------------|\n| `REPOSITORIES_ACCESS_TOKEN`  | GitHub access token for authentication, that has permission to access all defined repositories / projects. | Yes      | Store it in the GitHub repository secrets and reference it in the workflow file using  `${{ secrets.REPOSITORIES_ACCESS_TOKEN }}`. |\n\n- **Example**:\n  ```yaml\n  env:\n    GITHUB-TOKEN: ${{ secrets.REPOSITORIES_ACCESS_TOKEN }}\n  ```\n\nThe way how to generate and store a token into the GitHub repository secrets is described in the [support chapter](#how-to-create-a-token-with-required-scope).\n\n### Inputs\n\n#### Base Inputs\n\nThese inputs are common to all modes.\n\n| Input Name        | Description                                        | Required | Default | Usage                     | \n|-------------------|----------------------------------------------------|----------|---------|---------------------------|\n| `doc-issues`      | Enables or disables `Documentation Issues` mode. | No       | `false` | Set to true to activate.  |\n| `tests`           | Enables or disables `Tests` mode.                | No       | `false` | Set to true to activate.  |\n| `test-headers`    | Enables or disables `Test headers` mode.         | No       | `false` | Set to true to activate.  |\n| `code-tags`       | Enables or disables `Code tags` mode.            | No       | `false` | Set to true to activate.  |\n| `release-notes`   | Enables or disables `Release Notes` mode.        | No       | `false` | Set to true to activate.  |\n| `workflows`       | Enables or disables `Workflows` mode.            | No       | `false` | Set to true to activate.  |\n| `user-guide`      | Enables or disables `User guide` mode.           | No       | `false` | Set to true to activate.  |\n| `verbose-logging` | Enables or disables verbose (debug) logging.       | No       | `false` | Set to true to activate.  |\n\n\n##### Example\n```yaml\nwith:\n  doc-issues: true          # Activation of Documentation Issues mode\n  test-headers: true        # Activation of Test Headers mode\n  \n  verbose-logging: true     # Activation of verbose (debug) logging\n```\n\n#### Mode Inputs\n\nMode-specific inputs and outputs are detailed in the respective mode's documentation:\n\n- [Documentation Issues mode specific inputs](doc_issues/README.md#mode-configuration)\n- [Tests mode specific inputs](test_catalog/README.md#mode-configuration)\n- [Test Headers mode specific inputs](test_headers/README.md#mode-configuration)\n- [Code Tags mode specific inputs](code_tags/README.md#mode-configuration)\n- [Release Notes mode specific inputs](release_notes/README.md#mode-configuration)\n- [Workflows mode specific inputs](workflows/README.md#mode-configuration)\n- [User Guide mode specific inputs](user_guide/README.md#mode-configuration)\n    \n---\n## Action Outputs\n\nThe action provides a main output path that allows users to locate and access the generated json files easily. \nThis output can be utilized in various ways within your CI/CD pipeline to ensure the documentation is effectively distributed and accessible.\n\n- `output-path`\n  - **Description**: The root output path to the directory where all generated living documentation files are stored.\n  - **Usage**: \n   ``` yaml\n    - name: Living Documentation Collector for GitHub\n      id: living_doc_collector_gh\n      ... rest of the action definition ...\n      \n    - name: Output Documentation Path\n      run: echo \"GitHub Collector root output path: ${{ steps.living_doc_collector_gh.outputs.output-path }}\"            \n    ```\n\n\u003e Each mode generates its output files, which is stored in the `output-path` directory with clear naming conventions.\n\n---\n\n## Developer Guide\n\nSee this [Developer Guide](DEVELOPER.md) for more technical, development-related information.\n\n---\n## How-to\n\nThis section aims to help the user walk through different processes, such as:\n- [Generating and storing a token as a secret](#how-to-create-a-token-with-required-scope)\n\n### How to Create a Token with Required Scope\n\n1. Go to your GitHub account settings.\n2. Click on the `Developer settings` tab in the left sidebar.\n3. In the left sidebar, click on `Personal access tokens` and choose `Tokens (classic)`.\n4. Click on the `Generate new token` button and choose `Generate new token (classic)`.\n5. Optional - Add a note detailing what the token is for and choose the token expiration date.\n6. Select ONLY bold scope options below:\n   - **workflow**\n   - write:packages\n     - **read:packages**\n   - admin:org\n     - **read:org**\n     - **manage_runners:org**\n   - admin:public_key\n     - **read:public_key**\n   - admin:repo_hook\n     - **read:repo_hook**\n   - admin:enterprise\n     - **manage_runners:enterprise**\n     - **read:enterprise**\n   - audit_log\n     - **read:audit_log**\n   - project\n     - **read:project**\n7. Copy the token value somewhere safe, because you won't be able to view it again.\n8. Authorize the new token for the organization you want to fetch from.\n\n### How to Store Token as a Secret\n\n1. Go to the GitHub repository, from which you want to run the GitHub Action.\n2. Click on the `Settings` tab in the top bar.\n3. In the left sidebar, click on `Secrets and variables` \u003e `Actions`.\n4. Click on the `New repository secret` button.\n5. Name the token `REPOSITORIES_ACCESS_TOKEN` and paste the token value.\n\n---\n## Contribution Guidelines\n\nWe welcome contributions to the Living Documentation Generator! Whether you're fixing bugs, improving documentation, or proposing new features, your help is appreciated.\n\n#### How to Contribute\n\nBefore contributing, please review our [contribution guidelines](https://github.com/AbsaOSS/living-doc-collector-gh/blob/master/CONTRIBUTING.md) for more detailed information.\n\n### License Information\n\nThis project is licensed under the Apache License 2.0. It is a liberal license that allows you great freedom in using, modifying, and distributing this software, while also providing an express grant of patent rights from contributors to users.\n\nFor more details, see the [LICENSE](https://github.com/AbsaOSS/living-doc-collector-gh/blob/master/LICENSE) file in the repository.\n\n### Contact or Support Information\n\nIf you need help with using or contributing to the Living Documentation Generator Action, or if you have any questions or feedback, don't hesitate to reach out:\n\n- **Issue Tracker**: For technical issues or feature requests, use the [GitHub Issues page](https://github.com/AbsaOSS/living-doc-collector-gh/issues).\n- **Discussion Forum**: For general questions and discussions, join our [GitHub Discussions forum](https://github.com/AbsaOSS/living-doc-collector-gh/discussions).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabsaoss%2Fliving-doc-collector-gh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabsaoss%2Fliving-doc-collector-gh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabsaoss%2Fliving-doc-collector-gh/lists"}