AllAi DevOps - Installation Guide

AllAi DevOps - Installation Guide

Introduction

AllAi DevOps is an AI DevOps platform that is tightly integrated with GitHub. AllAi DevOps is intended to help in the development process by providing useful features that save time for developers and reviewers.

Getting started

External customers

AllAi DevOps is a Github App and is available from the Github marketplace:

GitHub

Any Github Organization or User can install the App, but it is not going to work by default. For the App to work, it is necessary that we manually whitelist the installation. This can be done by sending a request to the AllAi DevOps team, including the installation id.

Installation id can be gathered following below steps:

  1. Go to the installations page, ie. https://github.com/organizations/your-organization/settings/installations

  2. Click on "Configure" on AllAi Devops App

     

  3. You should see the installation id in the url, after the word "installations", ie. https://github.com/organizations/your-organization/settings/installations/aNumericID

Points of contact

  • @Cristina Calota

  • @Amir Halloul

Internal OSF

AllAi DevOps is a GitHub App, meaning it will be available to all repositories inside the OSF Organization once it is officially launched. Until the official launch, it will be available to repos on request.

If the AllAi DevOps App is not available to your repository, please create a ticket to IT to enable the AllAi DevOps App in your repo.

If you are using AllAi DevOps for the first time, you can do so by following the steps:

  1. Add the configuration file below and enable the code checks you’d like to run on push;

  2. Done.

Configuring AllAi DevOps

You can configure AllAi DevOps in your repository by adding the file .github/allai-devops.yaml with the following content:

Watch out the directory!

It’s not “.github/workflows/allai-devops.yaml“

It’s “.github/allai-devops.yaml“

general: show-welcome-message: true # enable welcome message. Default is true pull-request-ai-assist: auto-summary: disabled # possible values: on-push / on-open / disabled. Default is disabled auto-title: disabled # possible values: on-push / on-open / disabled. Default is disabled auto-link-references: match: "NUMERIC" # or "ALPHANUMERIC", default is "NUMERIC"; reference-prefix: "JIRA-" target-url: "https://jira.example.com/issue?query=JIRA-<match>" release-notes-ai-assist: auto-generate: false # true/false. Default is false. metadata-linter: run-on: disabled # can be one of: 'disabled' or 'pull-request' or 'repository'. Default is disabled xsds-path: "path/to/xsds/folder" # folder where the xsds reside inside the repository xmls-path: "path/to/xmls/folder" # folder where the xmls reside inside the repository code-checks: bug-fixer: run-on-push: false # enable bugfixer to run on push. Default is false. ignore-paths: # list of path patterns to be ignored in this check. Default is empty list. - "**/*.min.js" # this is an example path. You can add as many paths as you want. ignore-branches: # list of branches to be ignored in this check. Default is empty list. - "*release*" # this is an example branch. docgen: run-on-push: false # enable docgen to run on push. Default is false. ignore-paths: # list of path patterns to be ignored in this check. Default is empty list. - "**/*.min.js" # this is an example path. You can add as many paths as you want. ignore-branches: # list of branches to be ignored in this check. Default is empty list. - "*release*" # this is an example branch. pmd-fixer: run-on-push: false # enable pmd-fixer to run on push. Default is false. ignore-paths: # list of path patterns to be ignored in this check. Default is empty list. - "**/*.min.js" # this is an example path. You can add as many paths as you want. ignore-branches: # list of branches to be ignored in this check. Default is empty list. - "*release*" # this is an example branch. testgen: run-on-push: false # enable testgen to run on push. Default is false. ignore-paths: # list of path patterns to be ignored in this check. Default is empty list. - "**/*.min.js" # this is an example path. You can add as many paths as you want. ignore-branches: # list of branches to be ignored in this check. Default is empty list. - "*release*" # this is an example branch.

 

Please take into consideration:

Docstrings are generated for functions and methods of the following languages:

  • JavaScript (SFRA and LWC);

  • TypeScript;

  • Python;

  • Apex.

To be eligible for a docstring generation in the PR:

  • a function or a method must have at least one line changed;

The code checks follow the same rules.

Enterprise clients

Enterprise clients often use an on-premises version of code versioning platforms (Github, Gitlab and Bitbucket) behind a company firewall.

In this case, the IT department of the company needs to whitelist which IPs can interact with the versioning platform. To solve this, we attached a static IP to AllAi internal lambdas. The config is already working for Gitlab (it still needs to implemented for other versioning platforms).

The client needs to perform the following configurations:

  • For outbound connections, they need to be able to make requests to https://devops.allai.digital

  • For inbound connections, they need to whitelist this IP (we are going to call their gitlab apis from this ip): 52.20.17.233

Notes

  • The welcome message is the automatic comment the AllAi DevOps comments when pull requests are opened. You can disable it by switching its setting to false.

  • If you enable auto-summary on-open, the summary will be updated only when the pull request is opened. If you enable on-push, the summary will be updated when the pull request is opened and also on subsequent commits.

  • Auto link references: You can provide parameters, like URL patterns and tag prefixes and AllAi will get the info from commit massages and put the references in summaries and release notes. For example, if you create a PR with a commit message This is my commit message for [JIRA-1234] , the resulting PR summary will contain a reference that redirects to "https://jira.example.com/issue?query=JIRA-1234".

  • If you enable a code check to run on push, it will be first executed when the pull request is opened and then for every new commit.

  • The path patterns to be provided to the ignore-paths option from the code checks are relative to the root of the repository. Suppose you have a dist folder in the root of your repository and you’d like to ignore its files from the checks, you can just add dist/* to ignore-paths. For example, if you want to ignore several paths, the syntax should look like this:

docgen: run-on-push: true ignore-paths: - "Some/Path.js" - "Another/Path.js"
  • In the ignore branches parameter you can specify branch name patterns to be ignored by the checks. This is useful for cases when it is necessary to skip branches from the checks, like a releasebranch, for example.

 

After configuration

After configuring your app, we suggest you to continue with the User Guide to learn all the details about AllAi DevOps

Click here to proceed to the user guide.

Related content