Configurable Settings for Repositories Registered to Yaydoc
Yaydoc, our automatic documentation generation and deployment project, generates and deploys documentation for each of its registered repositories. These repositories registered to Yaydoc have various configurable settings which can be edited to change the behavior of the build process and other processes surrounding it. These settings include Report build status via email, Get build status for pull requests to the repository, Specify project branches, Add or remove sub-projects to a registered master project, and Enable or Disable the build process Delete the repository Report Build Status via Email At Yaydoc, user has an option to receive a mail On the first build after the repository is registered to Yaydoc, irrespective of the status On every failed build On the change of build status (Success to Failed or vice versa) To the user who registered the repository to Yaydoc It is possible that the user may register the repository from one email-address but wishes to receive the build status in another email. Furthermore, the user may never wish to receive any email from the repository. Keeping user’s experience at a priority, we also made it configurable for the user to disable the mail service. This feature is implemented by adding a mailService attribute to the Repository Schema with status: Boolean and email: String as its sub-attributes. The feature is toggled, setting the value of ‘mailService.status’ to true or false. const Repository = mongoose.model(‘Repository’, { .... .... mailService: { status: Boolean, email: String, }, .... .... }); Pull request implementing this feature: https://github.com/fossasia/yaydoc/pull/361/files Get build status for pull requests to the repository We made the generation of documentation website during each Pull Request to the registered repository. Since we do not want to increase the load on our server and also due to the fact that, since testing documentation generation during a Pull Request would be rare, and the user may not want to integrate Yaydoc to Pull Requests, we made this feature configurable with ‘disabled’ as the default configuration. A detail description of the process can be found at: Showing Pull Request Build Status in Yaydoc | FOSSASIA blog Specify Project Branches The documentation for a registered repository is generated at every commit made to the repository. This process happens in commits made to any of the repository’s branches except for branches that they do not have a `.yaydoc.yml` file and the `gh-pages` branch. It is seen that In many of the open sources projects hosted on Github, the development flow follows an approach in which new features and patches are made in a separate branch of the same repository before sending a PR to merge it into the master repository. In such a case, generating documentation from all the branches is an overkill and would not be expected. Hence, we let the user specify branches from which the documentation should be generated and deployed. The existing active branches of the repository along with the registered branches are retrieved and are used to display a Bootstrap select picker to specify branches.…
