Large-scale software development has become a highly collaborative and geographically distributed endeavour, especially in open-source software development ecosystems and their associated developer communities. It has given rise to modern development processes (e.g., pull-based development) that involve a wide range of activities such as issue and bug handling, code reviewing, coding, testing, and deployment. These often very effort-intensive activities are supported by a wide variety of tools such as version control systems, bug and issue trackers, code reviewing systems, code quality analysis tools, test automation, dependency management, and vulnerability detection tools. To reduce the complexity of the collaborative development process, many of the repetitive human activities that are part of the development workflow are being automated by CI/CD tools that help to increase the productivity and quality of software projects. Social coding platforms aim to integrate all this tooling and workflow automation in a single encompassing environment. These social coding platforms gave rise to the emergence of development bots, facilitating the integration with external CI/CD tools and enabling the automation of many other development-related tasks. GitHub, the most popular social coding platform, has introduced GitHub Actions to automate workflows in its hosted software development repositories since November 2019. This chapter explores the ecosystems of development bots and GitHub Actions and their interconnection. It provides an extensive survey of the state-of-the-art in this domain, discusses the opportunities and threats that these ecosystems entail, and reports on the challenges and future perspectives for researchers as well as software practitioners.
翻译:大规模软件开发已成为高度协作且地理分布广泛的活动,尤其是在开源软件开发生态系统及其相关开发者社区中。这催生了现代开发流程(例如基于拉取请求的开发),涉及问题与缺陷处理、代码审查、编码、测试和部署等一系列活动。这些通常需要大量精力的活动得到了多种工具的支持,例如版本控制系统、缺陷与问题跟踪器、代码审查系统、代码质量分析工具、测试自动化、依赖管理和漏洞检测工具。为降低协作开发流程的复杂性,开发工作流中许多重复性人工活动正通过CI/CD工具实现自动化,从而帮助提高软件项目的生产力与质量。社交编码平台致力于将所有此类工具和工作流自动化集成到一个统一环境中。这些社交编码平台催生了开发机器人的出现,促进了与外部CI/CD工具的集成,并实现了许多其他开发相关任务的自动化。GitHub作为最受欢迎的社交编码平台,自2019年11月起引入了GitHub Actions,以在其托管的软件开发仓库中实现工作流自动化。本章探讨了开发机器人及GitHub Actions的生态系统及其相互关联,提供了对该领域最新技术的全面综述,讨论了这些生态系统所带来的机遇与威胁,并报告了研究人员及软件从业者面临的挑战与未来展望。