Co-authored-by: streats <streats@users.noreply.github.comgit config --global user.emailgit config --global user.email streats@users.noreply.github.comgit config --global user.name>
Co-authored-by: Laura Coursen <lecoursen@github.com>
Co-authored-by: Felicity Chapman <felicitymay@github.com>
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com>
This commit is contained in:
Annie Streater 2023-04-20 14:32:32 +01:00 коммит произвёл GitHub
Родитель 6d3288f704
Коммит 48914bc50e
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
13 изменённых файлов: 62 добавлений и 44 удалений

Просмотреть файл

@ -556,18 +556,21 @@ steps:
| number | `inputs.number` | Supported |
| boolean | `inputs.boolean` | Supported |
| object | `inputs.string` with `fromJSON` expression | Partially supported |
| step | `step` | Partially supported [1] |
| stepList | `step` | Partially supported [1] |
| job | `job` | Partially supported [2] |
| jobList | `job` | Partially supported [2] |
| deployment | `job` | Partially supported [2] |
| deploymentList | `job` | Partially supported [2] |
| stage | `job` | Partially supported [2] |
| stageList | `job` | Partially supported [2] |
| step | `step` | Partially supported |
| stepList | `step` | Partially supported |
| job | `job` | Partially supported |
| jobList | `job` | Partially supported |
| deployment | `job` | Partially supported |
| deploymentList | `job` | Partially supported |
| stage | `job` | Partially supported |
| stageList | `job` | Partially supported |
[1] A template used under the `step` key with this parameter type is only serialized as a composite action if the steps are used at the beginning or end of the template steps.
[2] A template used under the `stage`, `deployment`, and `job` keys with this parameter type are not transformed into a reusable workflow, and instead are serialized as a standalone workflow.
{% note %}
**Note:** A template used under the `step` key with this parameter type is only serialized as a composite action if the steps are used at the beginning or end of the template steps. A template used under the `stage`, `deployment`, and `job` keys with this parameter type are not transformed into a reusable workflow, and instead are serialized as a standalone workflow.
{% endnote %}
## Legal notice

Просмотреть файл

@ -96,7 +96,7 @@ The `configure` CLI command is used to set required credentials and options for
```shell
Updating ghcr.io/actions-importer/cli:latest...
ghcr.io/actions-importer/cli:latest up-to-date
ghcr.io/actions-importer/cli:latest up-to-date
```
## Perform an audit of GitLab
@ -261,14 +261,14 @@ $ gh actions-importer migrate gitlab --target-url https://github.com/octo-org/oc
### Inspecting the pull request
The output from a successful run of the `migrate` command contains a link to the new pull request that adds converted workflows to your repository.
The output from a successful run of the `migrate` command contains a link to the new pull request that adds converted workflows to your repository.
Some important elements of the pull request include:
- In the pull request description, a section called **Manual steps**, which lists steps that you must manually complete before you can finish migrating your pipelines to {% data variables.product.prodname_actions %}. For example, this section may direct you to set up any secrets used in your workflows.
- In the pull request description, a section called **Manual steps**, which lists steps that you must manually complete before you can finish migrating your pipelines to {% data variables.product.prodname_actions %}. For example, this section may direct you to set up any secrets used in your workflows.
- The converted workflows file. Select the **Files changed** tab in the pull request to view the workflow file that will be added to your {% data variables.product.product_name %} repository.
When you are finished inspecting the pull request, you can merge it to add the workflow to your {% data variables.product.product_name %} repository.
When you are finished inspecting the pull request, you can merge it to add the workflow to your {% data variables.product.product_name %} repository.
## Reference
@ -341,7 +341,7 @@ In this example, {% data variables.product.prodname_actions_importer %} uses the
The pipeline is selected by matching the `repository_slug` in the configuration file to the value of the `--namespace` and `--project` options. The `path` is then used to pull the specified source file.
```bash
gh actions-importer dry-run gitlab --namespace my-gitlab-namespace --project my-gitlab-project-name --output-dir ./output/ --config-file-path ./path/to/gitlab/config.yml
gh actions-importer dry-run gitlab --namespace my-gitlab-namespace --project my-gitlab-project-name --output-dir ./output/ --config-file-path ./path/to/gitlab/config.yml
```
### Supported syntax for GitLab pipelines
@ -368,15 +368,13 @@ The following table shows the type of properties {% data variables.product.prodn
| Run pipelines for new commits | `on.push` | Supported |
| Run pipelines manually | `on.workflow_dispatch` | Supported |
| `environment` | `jobs.<job_id>.environment` | Partially supported |
| `include` | [1] | Partially supported |
| `include` | Files referenced in an `include` statement are merged into a single job graph before being transformed. | Partially supported |
| `only` or `except` | `jobs.<job_id>.if` | Partially supported |
| `parallel` | `jobs.<job_id>.strategy` | Partially supported |
| `rules` | `jobs.<job_id>.if` | Partially supported |
| `services` | `jobs.<job_id>.services` | Partially supported |
| `workflow` | `if` | Partially supported |
[1] Files referenced in an `include` statement are merged into a single job graph before being transformed.
For information about supported GitLab constructs, see the [`github/gh-actions-importer` repository](https://github.com/github/gh-actions-importer/blob/main/docs/gitlab/index.md).
### Environment variables syntax

Просмотреть файл

@ -79,7 +79,7 @@ The following table shows the permissions granted to the `GITHUB_TOKEN` by defau
{% rowheaders %}
| Scope | Default access<br>(permissive) | Default access<br>(restricted) | Maximum access for<br>pull requests from<br>public forked repositories [1] |
| Scope | Default access<br>(permissive) | Default access<br>(restricted) | Maximum access for<br>pull requests from<br>public forked repositories |
|---------------|-----------------------------|-----------------------------|--------------------------------|
| actions | read/write | none | read |
| checks | read/write | none | read |
@ -97,7 +97,11 @@ The following table shows the permissions granted to the `GITHUB_TOKEN` by defau
{% endrowheaders %}
[1] Private repositories can control if pull requests from forks can run workflows, and configure the permissions assigned to `GITHUB_TOKEN`. For more information, see "[AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#enabling-workflows-for-forks-of-private-repositories)."
{% note %}
**Note:** Private repositories can control if pull requests from forks can run workflows, and configure the permissions assigned to `GITHUB_TOKEN`. For more information, see "[AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#enabling-workflows-for-forks-of-private-repositories)."
{% endnote %}
{% data reusables.actions.workflow-runs-dependabot-note %}

Просмотреть файл

@ -81,9 +81,9 @@ A {% data variables.product.prodname_github_codespaces %} instance (a "codespace
| Codespaces compute | 8 core | 1 hour | 8 | $0.72 |
| Codespaces compute | 16 core | 1 hour | 16 | $1.44 |
| Codespaces compute | 32 core | 1 hour | 32 | $2.88 |
| Codespaces storage | Storage | 1 GB-month [1] | Not applicable | $0.07 |
| Codespaces storage | Storage | 1 GB-month | Not applicable | $0.07 |
[1] See "[About billing for storage usage](#about-billing-for-storage-usage)" later in this article for details of the GB-month unit of measure.
For more information about the GB-month unit of measure, see "[About billing for storage usage](#about-billing-for-storage-usage)."
If you enable prebuilding of codespaces this will incur additional charges. For more information, see "[About billing for {% data variables.product.prodname_codespaces %} prebuilds](#about-billing-for-codespaces-prebuilds)."

Просмотреть файл

@ -54,7 +54,7 @@ If you've enabled security updates, you'll sometimes see extra pull requests for
## Supported repositories and ecosystems
<!-- If you make changes to this feature, check whether any of the changes affect languages listed in /get-started/learning-about-github/github-language-support. If so, please update the language support article accordingly. -->
You can configure version updates for repositories that contain a dependency manifest or lock file for one of the supported package managers. For some package managers, you can also configure vendoring for dependencies. For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#vendor)."
You can configure version updates for repositories that contain a dependency manifest or lock file for one of the supported package managers. For some package managers, you can also configure vendoring for dependencies. For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#vendor)."
{% ifversion ghes > 3.4 %}

Просмотреть файл

@ -84,12 +84,12 @@ The recommended formats explicitly define which versions are used for all direct
| Composer | PHP | `composer.lock` | `composer.json`, `composer.lock` |
| NuGet | .NET languages (C#, F#, VB), C++ | `.csproj`, `.vbproj`, `.nuspec`, `.vcxproj`, `.fsproj` | `.csproj`, `.vbproj`, `.nuspec`, `.vcxproj`, `.fsproj`, `packages.config` |
{%- ifversion github-actions-in-dependency-graph %}
| {% data variables.product.prodname_actions %} workflows [1] | YAML | `.yml`, `.yaml` | `.yml`, `.yaml` |
| {% data variables.product.prodname_actions %} workflows | YAML | `.yml`, `.yaml` | `.yml`, `.yaml` |
{%- endif %}
| Go modules | Go | `go.mod`| `go.mod`{% ifversion ghes < 3.9 or ghae < 3.9 %}, `go.sum`{% endif %} |
| Maven | Java, Scala | `pom.xml` | `pom.xml` |
| npm | JavaScript | `package-lock.json` | `package-lock.json`, `package.json`|
| pip | Python | `requirements.txt`, `pipfile.lock` | `requirements.txt`, `pipfile`, `pipfile.lock`, `setup.py`[2] |
| pip | Python | `requirements.txt`, `pipfile.lock` | `requirements.txt`, `pipfile`, `pipfile.lock`, `setup.py` |
{%- ifversion dependency-graph-dart-support %}
| pub | Dart | `pubspec.lock` | `pubspec.yaml`, `pubspec.lock` |
{%- endif %}
@ -97,20 +97,25 @@ The recommended formats explicitly define which versions are used for all direct
| RubyGems | Ruby | `Gemfile.lock` | `Gemfile.lock`, `Gemfile`, `*.gemspec` |
| Yarn | JavaScript | `yarn.lock` | `package.json`, `yarn.lock` |
{% ifversion github-actions-in-dependency-graph %}
[1] {% data reusables.enterprise.3-5-missing-feature %} {% data variables.product.prodname_actions %} workflows must be located in the `.github/workflows/` directory of a repository to be recognized as manifests. Any actions or workflows referenced using the syntax `jobs[*].steps[*].uses` or `jobs.<job_id>.uses` will be parsed as dependencies. For more information, see "[AUTOTITLE](/actions/using-workflows/workflow-syntax-for-github-actions)."
{% endif %}
[2] If you list your Python dependencies within a `setup.py` file, we may not be able to parse and list every dependency in your project.
{% ifversion github-actions-in-dependency-graph %}
{% note %}
**Note:** {% data variables.product.prodname_actions %} workflow dependencies are displayed in the dependency graph for informational purposes. Dependabot alerts are not currently supported for {% data variables.product.prodname_actions %} workflows.
**Notes:**
* If you list your Python dependencies within a `setup.py` file, we may not be able to parse and list every dependency in your project.
{% ifversion ghes = 3.5 %}
* Support for {% data variables.product.prodname_actions %} workflows is available from GitHub Enterprise Server 3.5.4 onward. The feature is not available in 3.5.0, 3.5.1, 3.5.2, and 3.5.3. For information about determining the version of {% data variables.product.product_name %} you're using, see "[AUTOTITLE](/get-started/learning-about-github/about-versions-of-github-docs#github-enterprise-server)."
{% endif %}{% ifversion github-actions-in-dependency-graph %}
* {% data variables.product.prodname_actions %} workflows must be located in the `.github/workflows/` directory of a repository to be recognized as manifests. Any actions or workflows referenced using the syntax `jobs[*].steps[*].uses` or `jobs.<job_id>.uses` will be parsed as dependencies. For more information, see "[AUTOTITLE](/actions/using-workflows/workflow-syntax-for-github-actions)."
* {% data variables.product.prodname_actions %} workflow dependencies are displayed in the dependency graph for informational purposes. Dependabot alerts are not currently supported for {% data variables.product.prodname_actions %} workflows.
{% endif %}
{% endnote %}
{% endif %}
{% ifversion dependency-submission-api %}You can use the Dependency submission API (beta) to add dependencies from the package manager or ecosystem of your choice to the dependency graph, even if the ecosystem is not in the supported ecosystem list above.{% endif %} {% data reusables.dependency-graph.dependency-submission-API-short %}

Просмотреть файл

@ -13,7 +13,7 @@ shortTitle: About GitHub Copilot for Business
{% data reusables.copilot.about-copilot %}
With {% data variables.product.prodname_copilot_business_short %}, you can manage access to {% data variables.product.prodname_copilot %} for organizations{% ifversion ghec %} within your enterprise{% endif %}. Once you grant an organization access to {% data variables.product.prodname_copilot %}, the administrators of that organization can grant access to individuals and teams. For more information, see "[AUTOTITLE](/copilot/configuring-github-copilot/configuring-github-copilot-settings-in-your-organization)."
With {% data variables.product.prodname_copilot_business_short %}, you can manage access to {% data variables.product.prodname_copilot %} for organizations{% ifversion ghec %} within your enterprise{% endif %}. Once you grant an organization access to {% data variables.product.prodname_copilot %}, the administrators of that organization can grant access to individuals and teams. For more information, see "[AUTOTITLE](/copilot/configuring-github-copilot/configuring-github-copilot-settings-in-your-organization)."
{% data reusables.copilot.telemetry-setting-org %}

Просмотреть файл

@ -39,4 +39,8 @@ Some features are supported for additional languages or package managers. If you
{% data reusables.supported-languages.scala %}
{% data reusables.supported-languages.typescript %}
[1] These languages are supported for {% data variables.product.prodname_code_scanning %} by third-party actions.
{% note %}
**Note:** PHP{% ifversion ghae %}, Ruby,{% endif %} and Scala are supported for {% data variables.product.prodname_code_scanning %} by third-party actions.
{% endnote %}

Просмотреть файл

@ -167,13 +167,17 @@ In this section, you can find the access required for security features, such as
| [View dependency reviews](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review) | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} |{% endif %}
| [View {% data variables.product.prodname_code_scanning %} alerts on pull requests](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/triaging-code-scanning-alerts-in-pull-requests) | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} |
| [List, dismiss, and delete {% data variables.product.prodname_code_scanning %} alerts](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/managing-code-scanning-alerts-for-your-repository) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} | {% octicon "check" aria-label="Yes" %} |
| [View and dismiss {% data variables.secret-scanning.alerts %} in a repository](/code-security/secret-scanning/managing-alerts-from-secret-scanning) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %}{% ifversion not ghae %}[1]{% endif %} | {% octicon "check" aria-label="Yes" %}{% ifversion not ghae %}[1]{% endif %} | {% octicon "check" aria-label="Yes" %} |{% ifversion ghes or ghae or ghec %}<!--Not available for FPT-->
| [Resolve, revoke, or re-open {% data variables.secret-scanning.alerts %}](/code-security/secret-scanning/managing-alerts-from-secret-scanning) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %}{% ifversion not ghae %}[1]{% endif %} | {% octicon "check" aria-label="Yes" %}{% ifversion not ghae %}[1]{% endif %} | {% octicon "check" aria-label="Yes" %} |{% endif %}{% ifversion ghes or ghae or ghec %}
| [View and dismiss {% data variables.secret-scanning.alerts %} in a repository](/code-security/secret-scanning/managing-alerts-from-secret-scanning) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %}{% ifversion not ghae %}{% endif %} | {% octicon "check" aria-label="Yes" %}{% ifversion not ghae %}{% endif %} | {% octicon "check" aria-label="Yes" %} |{% ifversion ghes or ghae or ghec %}<!--Not available for FPT-->
| [Resolve, revoke, or re-open {% data variables.secret-scanning.alerts %}](/code-security/secret-scanning/managing-alerts-from-secret-scanning) | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %}{% ifversion not ghae %}{% endif %} | {% octicon "check" aria-label="Yes" %}{% ifversion not ghae %}{% endif %} | {% octicon "check" aria-label="Yes" %} |{% endif %}{% ifversion ghes or ghae or ghec %}
| [Designate additional people or teams to receive {% data variables.secret-scanning.alerts %}](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts) in repositories | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "x" aria-label="No" %} | {% octicon "check" aria-label="Yes" %} |{% endif %}
{% endrowheaders %}
[1] Repository writers and maintainers can only see alert information for their own commits.
{%note %}
**Note:** Repository writers and maintainers can only see secret scanning alert information for their own commits.
{% endnote %}
## Further reading

Просмотреть файл

@ -9,8 +9,8 @@
| Plugs right into your editor | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} |
| Offers multi-line function suggestions | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} |
| Organization-wide policy management | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} |
| VPN Proxy support via self-signed certificates [1] | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} |
| VPN Proxy support via self-signed certificates | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} |
{% endrowheaders %}
[1] For more information, see "[AUTOTITLE](/copilot/configuring-github-copilot/configuring-github-copilot-in-your-environment?tool=vscode#configuring-proxy-settings-for-github-copilot-1)" for {% data variables.product.prodname_vscode_shortname %} and "[AUTOTITLE](/copilot/configuring-github-copilot/configuring-github-copilot-in-your-environment?tool=jetbrains#configuring-proxy-settings-for-github-copilot)" for JetBrains IDEs.
For more information about VPN Proxy support via self-signed certificates, see "[AUTOTITLE](/copilot/configuring-github-copilot/configuring-github-copilot-in-your-environment?tool=vscode#configuring-proxy-settings-for-github-copilot-1)".

Просмотреть файл

@ -1 +1 @@
| PHP {% ifversion fpt or ghec %}| {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %} [1] | {% octicon "check" aria-label="The check icon" %}<br>Composer | {% octicon "check" aria-label="The check icon" %}<br>Composer | {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} |{% elsif ghes %}| {% octicon "check" aria-label="The check icon" %} [1] | {% octicon "check" aria-label="The check icon" %}<br>Composer | {% octicon "check" aria-label="The check icon" %}<br>Composer | {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} |{% elsif ghae %}| {% octicon "check" aria-label="The check icon" %} [1] | {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} |{% endif %}
| PHP {% ifversion fpt or ghec %}| {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %}<br>Composer | {% octicon "check" aria-label="The check icon" %}<br>Composer | {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} |{% elsif ghes %}| {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %}<br>Composer | {% octicon "check" aria-label="The check icon" %}<br>Composer | {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} |{% elsif ghae %}| {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} |{% endif %}

Просмотреть файл

@ -1 +1 @@
| Ruby {% ifversion fpt or ghec %}| {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %}<br>RubyGems | {% octicon "check" aria-label="The check icon" %}<br>RubyGems | {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %}<br>RubyGems |{% elsif ghes %}| {% octicon "check" aria-label="The check icon" %} [1] | {% octicon "check" aria-label="The check icon" %}<br>RubyGems | {% octicon "check" aria-label="The check icon" %}<br>RubyGems | {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %}<br>RubyGems |{% elsif ghae %}| {% octicon "check" aria-label="The check icon" %} [1] | {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %}<br>RubyGems |{% endif %}
| Ruby {% ifversion fpt or ghec %}| {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %}<br>RubyGems | {% octicon "check" aria-label="The check icon" %}<br>RubyGems | {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %}<br>RubyGems |{% elsif ghes %}| {% octicon "check" aria-label="The check icon" %}| {% octicon "check" aria-label="The check icon" %}<br>RubyGems | {% octicon "check" aria-label="The check icon" %}<br>RubyGems | {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %}<br>RubyGems |{% elsif ghae %}| {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %}<br>RubyGems |{% endif %}

Просмотреть файл

@ -1 +1 @@
| Scala {% ifversion fpt or ghec %}| {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} | {% octicon "check" aria-label="The check icon" %} [1] | {% octicon "check" aria-label="The check icon" %}<br>Maven | {% octicon "check" aria-label="The check icon" %}<br>Maven, Gradle | {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} |{% elsif ghes %}| {% octicon "check" aria-label="The check icon" %} [1] | {% octicon "check" aria-label="The check icon" %}<br>Maven, Gradle | {% octicon "check" aria-label="The check icon" %}<br>Maven, Gradle | {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} |{% elsif ghae %}| {% octicon "check" aria-label="The check icon" %} [1] | {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} |{% endif %}
| Scala {% ifversion fpt or ghec %}| {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} | {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %}<br>Maven | {% octicon "check" aria-label="The check icon" %}<br>Maven, Gradle | {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} |{% elsif ghes %}| {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %}<br>Maven, Gradle | {% octicon "check" aria-label="The check icon" %}<br>Maven, Gradle | {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} |{% elsif ghae %}| {% octicon "check" aria-label="The check icon" %} | {% octicon "check" aria-label="The check icon" %} | {% octicon "x" aria-label="The X icon" %} |{% endif %}