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:
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:
Go to the installations page, ie. https://github.com/organizations/your-organization/settings/installations
Click on "Configure" on AllAi Devops App
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 have enabled AI GitHub Actions for your repository before, please click here to leave this page and follow the “Installation Guide for Migrating users” page.
If you are using AllAi DevOps for the first time, you can do so by following the steps:
Add the configuration file below and enable the code checks you’d like to run on push;
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 enableon-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 adist
folder in the root of your repository and you’d like to ignore its files from the checks, you can just adddist/*
toignore-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
release
branch, 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