{"id":29082386,"url":"https://github.com/ucl-docaider/docAider","last_synced_at":"2025-06-27T20:30:39.601Z","repository":{"id":243936900,"uuid":"810205245","full_name":"ucl-docaider/docAider","owner":"ucl-docaider","description":"DocAider is an LLM-powered repository agent designed to support developers in efficiently generating documentation through a multi-agent approach. With its integrated workflows, docAider streamlines the documentation update process, making it both effective and user-friendly.","archived":false,"fork":false,"pushed_at":"2024-08-29T21:56:12.000Z","size":2644,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-08-30T05:24:09.746Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/ucl-docaider.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-04T08:49:33.000Z","updated_at":"2024-08-29T21:56:16.000Z","dependencies_parsed_at":"2024-07-28T23:22:16.761Z","dependency_job_id":"0a31ee27-fb71-4371-877d-1094e04a3177","html_url":"https://github.com/ucl-docaider/docAider","commit_stats":null,"previous_names":["ucl-repo-copilot/repo-copilot","ucl-repo-copilot/docaider","ucl-docaider/docaider"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ucl-docaider/docAider","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucl-docaider%2FdocAider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucl-docaider%2FdocAider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucl-docaider%2FdocAider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucl-docaider%2FdocAider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ucl-docaider","download_url":"https://codeload.github.com/ucl-docaider/docAider/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucl-docaider%2FdocAider/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262326914,"owners_count":23294156,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-06-27T20:30:34.303Z","updated_at":"2025-06-27T20:30:39.513Z","avatar_url":"https://github.com/ucl-docaider.png","language":"Python","funding_links":[],"categories":["Categories"],"sub_categories":["Continuous Documentation"],"readme":"# docAider\n\n`docAider` leverages Semantic Kernel and Autogen to automate the process of generating and reviewing code documentation for your repository through a multi-agent approach. Additionally, with its integrated workflows, `docAider` streamlines the documentation update process, ensuring it is both efficient and user-friendly.\n\n## Getting Started\n\n### Docker Setup\n\nAdd the following `Dockerfile` to your repository:\n\n```\nversion: \"3.8\"\n\nservices:\n  docAider:\n    image: zenawang/docaider:v1\n    container_name: docAider\n    volumes:\n      - .:/workspace\n    working_dir: /workspace\n    env_file:\n      - .env\n```\n\n\n### Environment Variables\n\nCreate a `.env` file in your repository with the following variables:\n\n```\nGLOBAL_LLM_SERVICE=\"AzureOpenAI\"\nCHAT_DEPLOYMENT_NAME=\"GPT-4\"\nAZURE_OPENAI_API_KEY=\"YOUR_AZURE_OPENAI_API_KEY\"\nAZURE_OPENAI_ENDPOINT=\"YOUR_AZURE_OPENAI_ENDPOINT\"\nAZURE_OPENAI_API_VERSION=\"2023-03-15-preview\"\nAPI_TYPE=\"azure\"\nBASE_URL=\"YOUR_BASE_URL\"\n\nGITHUB_ACCESS_TOKEN=\"YOUR_GITHUB_ACCESS_TOKEN\"\n\nROOT_FOLDER=\"/workspace\"\n```\n\n## Run docAider\n\n### Activate docAider Image\n\nTo activate the `docAider` Docker image and ensure it continues running (do not terminate it), use the following command:\n\n```\ndocker compose up --build\n```\n\nThis command will build and start the `docAider` container. It will keep running in the foreground, so you can interact with it as needed.\n\n### Generate documentation\n\nTo generate documentation for your repository, run the following command. This process is typically done once to create initial documentation:\n\n```\ndocker exec docAider python3 /docAider/repo_documentation/multi_agent_app.py\n```\n\nDuring execution, you can observe the interaction between multiple agents in the terminal output. The `CodeContextAgent` provides explanations for code contexts, the `documentation_generation_agent` generates documentation for specified code files, and the `review_agent` reviews and enhances the generated documentation. The `agent_manager` orchestrates the interactions between these agents, ensuring a seamless workflow from context explanation to documentation generation and review.\n\nThe generated documentation can be found in the `docs_output` folder. The `prompt_debug` folder contains the prompts for each source code file, which are fed to the agents.\n\nAdditionally, the `call_graph.json,` `cache.json`, and `graph.png` files are generated by the [code2flow](https://github.com/TomasKopunec/code2flow/tree/82b5b9f535b66c9d9f9f12bbb77f86bae0bdc248?tab=readme-ov-file) project. These files help in:\n\n- Untangling spaghetti code\n- Identifying orphaned functions\n- Getting new developers up to speed\n\n\n### Setup workflows\nTo set up workflows (update-docs.yml and update-comments.yml) for automatic documentation updates, run:\n\n```\ndocker exec docAider python3 /docAider/setup_workflows.py\n```\n\nNote: Remember to manually push the generated documentation and workflows to the repository, preferably to the main branch.\n\n### Ensure Workflow Success\nCreate an environment named \"GPT\" and add the variables from the .env file as secrets (excluding GITHUB_ACCESS_TOKEN and ROOT_FOLDER). This can be done in your repository settings under **Settings** \u003e **Security** \u003e **Secrets** and **Variables** \u003e **Actions**.\n\n## Workflows\n\n### update-docs.yml\nThis workflow triggers when a pull request is opened against the main branch and updates the documentation based on the changes between the pull request branch and the main branch.\n\n### update-comments.yml\nUse this workflow to modify the documentation further if the initial update is not satisfactory. You can request changes by commenting in the following format:\n```\nDocumentation {file_path}: {comment}\n```\n`file_path`: Path to the source code file for which you want to update the documentation.\n`comment`: Prompt or instructions to guide the agent in updating the documentation.\n\n## Contribution\nThis project includes features and improvements from a custom fork of the [code2flow](https://github.com/scottrogowski/code2flow/) project licensed under the MIT license. The code2flow project generate call graphs for dynamic programming languages and can be found [here](https://github.com/TomasKopunec/code2flow/tree/82b5b9f535b66c9d9f9f12bbb77f86bae0bdc248?tab=readme-ov-file). This fork is tailored to support Python only.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fucl-docaider%2FdocAider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fucl-docaider%2FdocAider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fucl-docaider%2FdocAider/lists"}