vania-janet/multiturn-rag-retrieval-data huggingface dataset:
As the status check runs, it updates from pending to either successful or failed. If your pipeline contains multiple stages, each stage reports its status in the check list.

This status feedback is also supported by the IBM hosted GitLab Community Edition tool for merge requests.

You can also restrict merging based on the results of the status checks by using Git branch protection rules. After a branch protection rule is created, all merging is blocked until all of the required status checks are successful.



 Bitbucket Cloud pull requests 

Bitbucket Cloud currently does not support repository references for pull requests, which is required by the Continuous Delivery service. This feature allows pull requests to be sent to the repo that you want to access by using references in the following format: refs/pull/123/…

You can [locally fetch and check out a pull request](https://confluence.atlassian.com/bbkb/how-to-locally-fetch-and-checkout-a-pull-request-724402529.html) by using the source repo URL. However, if the source repo is a private forked repo, the Continuous Delivery service does not have the access that is required to manage pull requests. To work around this limitation, you must explicitly provide the required access to the forked repo in the pipeline script.

In the following sample bash pipeline script, two users are using Bitbucket Cloud and they each have a private fork of their main repo (bitbucket.org/userA/repo-forked-A and bitbucket.org/userB/repo-forked-B). The script is set up to check out the pull request when a build job is triggered by a pull request open event or update event from one of the two forked repos.

case "$BITBUCKET_PR_SOURCE_HOST" in BITBUCKET_PR_SOURCE_HOST is an environment exported by pipeline if job is triggered by a bitbucket pull request
userA) userA should be replaced to anything to identify a forked repo's url
If you pin the action to a fixed runtime, the runtime cannot change or receive security fixes.







 Create an action by using external libraries with Go modules 

You can create an action by using third-party libraries with Go modules. For more information about Go modules, see [Go module doc](https://go.dev/ref/mod).

If the action has not been pre-compiled, then the libraries are downloaded at the action execution time. If you pre-compile the action, then the libraries are already packaged into the binary and don't need to be downloaded during the action execution time.

.
├── go.mod
└── main.go



1. Create the function.

main.go

package main

import (
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
)

func init() {
zerolog.TimeFieldFormat = ""
}

// Main function for the action
func Main(obj map[string]interface{}) map[string]interface{} {
name, ok := obj["name"].(string)
if !ok {
name = "world"
}
log.Debug().Str("name", name).Msg("Hello")
msg := make(map[string]interface{})
msg["module-main"] = "Hello, " + name + "!"
return msg
}
Show more

go.mod

module action

go 1.19

require github.com/rs/zerolog v1.19.0
2. Compress the source code to a compressed file that is called src.zip.

zip -r src.zip main.go go.mod

This example compresses main.go and go.mod files to src.zip.

If you are pre-compiling your code you might have to generate a go sum by running go mod tidy and adding it to your zip
3.
Alternatively, on the app's Overview page, on the Continuous delivery card, click View toolchain and click Overview.
2. Click Add tool.
3. In the Tool Integrations section, click GitLab.
4. Click the GitLab server that you want to use. If the GitLab server where the repo you want to access resides does not appear in this list, add a custom server:

a. Click Custom Server.

b. Type a name for the server. This server name will appear in the list of available GitLab servers.

c. Type the Root URL of the custom GitLab server.

d. Enter a personal access token for your custom GitLab server. If you don't have a personal access token, [create one](https://cloud.ibm.com/docs/services/ContinuousDelivery?topic=ContinuousDelivery-git_workingcreate_pat).
5. If you have a GitLab repo and want to use it, for the repository type, click Existing and type the URL.
6. If you want to use a new GitLab repo, type a name for the repo, type the URL for the repo that you are cloning or forking, and select the repository type:

a. To create an empty repo, click New.

b. To create a copy of a GitLab repo, click Clone.

c. To fork a GitLab repo so that you can contribute changes through merge requests, click Fork.
7. If you want to create a public repo on the server, clear the Make this repository private checkbox.
8. If you want to use GitLab's Issues for issue tracking, select the Enable GitLab Issues checkbox.
9. If you want to track the deployment of code changes by creating tags and comments on commits, and labels and comments on issues that are referenced by the commits, select the Track deployment of code changes checkbox.
IBM Cloud Event Notifications is the preferred method for distributing notifications to PagerDuty and other communication channels such as Slack, email, SMS, push notifications, webhook, Microsoft® Teams, ServiceNow, and IBM Cloud Functions. For more information about using Event Notifications, see [Enabling event notifications for toolchains](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-event-notifications-cd).







 Creating a toolchain from a template with Git Repos and Issue Tracking or GitHub with the API 

You can create a toolchain from a template only by using the console. To view the steps for using the console, switch to the UI instructions.

For more information about how to create a toolchain with the API instead of by using a template, see [Adding the Git tool integration to an existing toolchain with the API](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-toolchains_gitadding_to_toolchain_api).





 Creating a toolchain from a template with Git Repos and Issue Tracking or GitHub with Terraform 

You can create a toolchain from a template only by using the console. To view the steps for using the console, switch to the UI instructions.

For more information about how to create a toolchain with Terraform instead of by using a template, see [Adding the Git tool integration to an existing toolchain with Terraform](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-toolchains_gitadding_to_toolchain_terraform).





 Adding the Git tool integration to an existing toolchain by using the console 

You can add a Git tool integration to any existing toolchain by using the console.



1. Log in to [IBM Cloud](http://cloud.ibm.com).
2. From the IBM Cloud console, click the menu icon !
Configuring GitHub 

GitHub is a web-based hosting service for Git repos. You can have both local and remote copies of your repos, which makes it easy to collaborate.

GitHub Enterprise is an on-premises, web-based hosting service for Git repos.

GitHub Issues is a tracking tool that keeps your work and your plans all in one place. It is integrated with your development repo so that you can focus on important tasks.

You can configure GitHub as a tool integration in your toolchain so that you can manage source code in a new or existing repo on GitHub.com or your company's GitHub Enterprise instance. Engage in social coding through wikis, issue tracking, and pull requests.

If you are configuring this tool integration as you are creating the toolchain, follow these steps:



1. If you are storing your source code in a GitHub repo, in the Configurable Integrations section, click GitHub. If you are configuring this tool integration on IBM Cloud Public, you must authorize IBM Cloud to access GitHub by choosing either OAuth or Personal Access Token.



* If you choose OAuth, click Authorize to go to the GitHub website. If you don't have an active GitHub session, you are prompted to log in. Click Authorize Application to allow IBM Cloud to access your GitHub account. If you have an active GitHub session but you didn't enter your password recently, you might be prompted to enter your GitHub password to confirm.
* If you choose Personal Access Token, you must enter the personal access token to use to authorize with GitHub to clone repos and perform other actions on your behalf. If you don't have a personal access token, you can follow the documentation on the GitHub website to create one. Make sure that your personal access token has repo, delete_repo, read:user, and workflow rights.



2. If you are using a repo on your own GitHub Enterprise server, in the Configurable Integrations section, click Custom Server.

a.
Configuring Artifactory 

Configure the Artifactory repository manager to store build artifacts in your Artifactory repository (repo).



1. If you are configuring this tool integration as you are creating the toolchain, in the Configurable Integrations section, click Artifactory.
2. If you have a toolchain and are adding this tool integration to it, from the IBM Cloud console, click the menu icon ![hamburger icon](https://cloud.ibm.com/docs-content/v1/content/562806c0b18119f4d21cb66f5ae6d051634b4a16/ContinuousDelivery/images/icon_hamburger.svg) and select DevOps. On the Toolchains page, click a toolchain to open its Overview page. Alternatively, on your app's Overview page, on the Continuous delivery card, click View toolchain. Then, click Overview.

a. Click Add tool.

b. In the Tool Integrations section, click Artifactory.
3. Type the URL for the Artifactory repo that you want to open when you click the Artifactory card.
4. Select the repository type that you want to connect to.
5. If you are using an Artifactory npm registry, follow these steps:

a. Type the email address that is associated with your registry.

b. Type the authentication token that is associated with your registry.

c. Type the URL for your Artifactory release repo, which is your private registry on the Artifactory server.

d. Type the URL for the Mirror or Public registry that you use to combine multiple public and private npm registries. For example, this URL might be the URL of the virtual registry on your Artifactory server that can access both your private registry and a cache of the npm global registry.
6. If you are using an Artifactory Maven repo, follow these steps:

a. Type the user ID that is associated with your repo.

b.
If you don't have an active GitHub session, you are prompted to log in. Click Authorize IBM-Cloud to allow IBM Cloud to access your GitHub account.
* If you choose Personal Access Token, specify a valid personal access token for GitHub.





If you are using the console and you already have a toolchain, update the GitHub tool integration's configuration:



1. From the IBM Cloud console, click the menu icon ![hamburger icon](https://cloud.ibm.com/docs-content/v1/content/562806c0b18119f4d21cb66f5ae6d051634b4a16/ContinuousDelivery/images/icon_hamburger.svg), and select DevOps. On the Toolchains page, click the toolchain to open its Overview page. Alternatively, on the app's Overview page, on the Continuous delivery card, click View toolchain, and then click Overview.
2. On the Toolchain's Overview page, on the Repositories card, locate the GitHub tool integration.
3. Click the menu to access the configuration options and update the configuration settings to authorize IBM Cloud to access GitHub.



* If you choose OAuth, click Authorize to go to the GitHub website. If you don't have an active GitHub session, you are prompted to log in. Click Authorize IBM-Cloud to allow IBM Cloud to access your GitHub account.
* If you choose Personal Access Token, provide a valid personal access token for GitHub.



4. When you are finished updating the settings, click Save Integration.



If you are using Terraform or the API with the OAuth authentication method, switch to using a Personal Access Token (PAT) to provide granular access to a specific user or repo. Authorizing with a PAT is recommended when you use Terraform or the API. Otherwise, you can use the console to authorize IBM Cloud to access your GitHub account:



1. From the IBM Cloud console, click the menu icon !
The recommended options are displayed by default, but you can click the Switch to advanced configuration toggle to see all of the configuration options available for the underlying Git integration. The default behavior of the toolchain is Use default sample that clones the sample application into an IBM-hosted Git Repos and Issue Tracking Repository.

Enter a name for the IBM-hosted Git Repos and Issue Tracking repository that is created by the toolchain as your application repository.

The region of the repository remains the same as the region of the toolchain.

If you want to link an existing Application Repository for the toolchain, select the Bring your own application option, and provide it as input to Repository URL field. As noted earlier, the toolchain currently supports linking only to existing Git Repos and Issue Tracking repositories. If you want to know more about Bring your own application, see [Bringing your own app to DevSecOps](https://cloud.ibm.com/docs/devsecops?topic=devsecops-cd-devsecops-apps-byoa).





 Inventory 

The inventory repository records details of artifacts that are built by the CI toolchains.





 Issues 

The issues repository records issues that are found while the CI pipeline is running.





 Secrets 

Specify the secret vault integrations to be added to your toolchain by using the provided toggles, as explained in [Managing IBM Cloud secrets](https://cloud.ibm.com/docs/secrets-manager?topic=secrets-manager-manage-secrets-ibm-cloud).

The CI toolchain supports Arbitrary secrets and IAM credentials secret types only.

This tutorial uses IBM Cloud® Secrets Manager as the vault for secrets. The Region, Resource group, and Service name fields are automatically populated based on available choices. Click the drop-down indicators to see the other choices.





 Evidence Storage 

The evidence repository stores all the evidence and artifacts that are generated by the DevSecOps CI pipeline.

Toggle the COS bucket slider to also store all the evidence in a Cloud Object Storage bucket that can be configured on the next page.





 Cloud Object Storage bucket 

To use this feature, you must have a Cloud Object Storage instance and a bucket.
For more information about how to create a toolchain with Terraform instead of by using a template, see [Adding the Git tool integration to an existing toolchain with Terraform](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-toolchains_gitadding_to_toolchain_terraform).





 Adding the Git tool integration to an existing toolchain by using the console 

You can add a Git tool integration to any existing toolchain by using the console.



1. Log in to [IBM Cloud](http://cloud.ibm.com).
2. From the IBM Cloud console, click the menu icon ![hamburger icon](https://cloud.ibm.com/docs-content/v1/content/562806c0b18119f4d21cb66f5ae6d051634b4a16/ContinuousDelivery/images/icon_hamburger.svg) and select Resource list.
3. From the Resource list, expand the Developer tools section.
4. Either click a toolchain to which you want to add a Git tool integration, or create a toolchain. For information about creating toolchains, see [Creating toolchains](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-toolchains_getting_started&interface=ui).
5. On the Toolchain's Overview page, click Add Tool, and then select GitHub or Git Repos and Issue Tracking to add either of these tool integrations to your toolchain.
6. Depending on which Git tool integration you select, you can [configure the the GitHub tool integration](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-github) or you can configure the [Git Repos and Issue Tracking tool integration](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-grit).
[Determine the region and ID of the toolchain](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-toolchains_getting_started&interface=apiviewing-toolchain-api) that you want to add the Git tool integration to.
3. Add the Git tool integration to the toolchain. The following example shows how to add a Git tool integration that links to an existing repo on github.com. You can also add a Git tool integration with instructions to create, fork, or clone a new repo. And you can add tool integrations for other GitHub, GitLab, or Bitbucket servers.



* Curl
* Java
* Node
* Python
* Go



curl -X POST https://api.{region}.devops.cloud.ibm.com/toolchain/v2/toolchains/{toolchain_id}/tools -H 'Authorization: Bearer {token}' -H 'Accept: application/json -H 'Content-Type: application/json' -d '{
"tool_type_id": "githubconsolidated",
"name": "{tool_integration_name}",
"parameters": {
"type": "link",
"git_id": "github",
"repo_url": "https://github.com/{git_org}/{git-repo}.git",
"has_issues": true
}
}'

import com.ibm.cloud.continuous_delivery.cd_toolchain.v2.CdToolchain;
import com.ibm.cloud.continuous_delivery.cd_toolchain.v2.model.;
...
CdToolchain toolchainService = CdToolchain.newInstance();
HashMap<String, Object> gitParameters = new HashMap<>();
For more information about using Terraform with Continuous Delivery, see [Setting up Terraform for Continuous Delivery](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-terraform-setup).







 Next steps 

After you add DevOps Insights, you can publish quality data from other sources. These sources include IBM® Continuous Delivery Pipeline for IBM Cloud® in the toolchain, Jenkins, Travis CI, or other pipelines. To learn more, see [aggregating data from multiple sources into a single toolchain](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-aggregating-multiple-sources).
Specifying secrets references with the API 

You can work with secure properties with secrets reference values in calls to the API, which requires an [IAM bearer token](https://cloud.ibm.com/apidocs/toolchainauthentication). Alternatively, if you are using an SDK, [obtain an IAM API key](https://cloud.ibm.com/iam/apikeys) and set the client options by using environment variables.

export CD_TOOLCHAIN_AUTH_TYPE=iam && export CD_TOOLCHAIN_APIKEY={iam_api_key} && export CD_TOOLCHAIN_URL=https://api.us-south.devops.cloud.ibm.com/toolchain/v2



 Using secrets references by name 

The following example demonstrates how to use a secrets reference by name secret. It shows how to create a Slack tool integration with an API token (Slack webhook) that is stored in an instance of Key Protect. This example assumes that the toolchain already contains a Key Protect tool integration and that an IAM service-to-service authorization policy from the source toolchain to the target Key Protect service instance is in place.



* Curl
* Java
* Node
* Python
* Go



curl -X POST https://api.us-south.devops.cloud.ibm.com/toolchain/v2/toolchains/01234567-89ab-cdef-0123-456789abcdef/tools -H "Authorization: Bearer $TOKEN" -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
"tool_type_id": "slack",
"parameters": {
"api_token": "{vault::my-kms-tool-integration.my-slack-webhook}",
"channel_name": "my_slack_channel_name",
"team_url": "my_slack_team_name"
}
}'
* [Advanced tutorial: Deploying an app and updating it with new versions](https://cloud.ibm.com/docs/satellite?topic=satellite-begin-sat-config-tutorialbegin-sat-config-tutorial-advanced-helloworld-ui)







 Connecting Locations with IBM Cloud using Direct Link 

[Connecting Locations with IBM Cloud using Direct Link](https://cloud.ibm.com/docs/satellite?topic=satellite-direct-link-tutorialdirect-link-tutorial)



* [FAQ](https://cloud.ibm.com/docs/satellite?topic=satellite-direct-link-tutorialfaq-direct-link)
* [Target use case](https://cloud.ibm.com/docs/satellite?topic=satellite-direct-link-tutorialtarget-use-case)
* [Overview](https://cloud.ibm.com/docs/satellite?topic=satellite-direct-link-tutorialdl-overview)
* [Objectives](https://cloud.ibm.com/docs/satellite?topic=satellite-direct-link-tutorialdl-objectives)
* [Prerequisites](https://cloud.ibm.com/docs/satellite?topic=satellite-direct-link-tutorialdl-prereq)
* [Creating a Red Hat CoreOS enabled Satellite Location](https://cloud.ibm.com/docs/satellite?topic=satellite-direct-link-tutorialdl-create-coreos-location)
* [Creating a relay](https://cloud.ibm.com/docs/satellite?topic=satellite-direct-link-tutorialdl-create-coreos-relay)
* [Provisioning Red Hat CoreOS hosts](https://cloud.ibm.com/docs/satellite?topic=satellite-direct-link-tutorialdl-provision-coreos-hosts)







 Using IBM Cloud Kubernetes Service on classic to host the dl-reverse-proxy
[The Truck Tracker Solution](https://cloud.ibm.com/docs-content/v1/content/4dfeb7bbbdd817dfbdb17402735fb55d9cfbc7fb/messages-for-rabbitmq/includes/cloud-databases/includes/cloud-databases/images/TruckTrackerOS.png)

Figure 1. The Truck Tracker Solution

In a real-life scenario, your data generators (the truck's IoT devices) would have to find a way to communicate with the Event Streams application, probably using the MQTT protocol. We will simulate our trucks traveling around the country and sending data by using a script (producer.js) that will be generating a truck location every second by reading from a predefined set of lat/long pairs of a couple of "road trips" (LAToDallas.json and boulderToNYC.json) and feeding it into Event Streams.

This tutorial should take you about an hour to complete. It will not be cost-free because some of the IBM services we will use do not come with a free tier, but if you deprovision the services after completing it, you should not have to pay more than a few dollars.





 What you will need 

Before you begin, it's a good idea to install some necessary productivity tools:



* An [IBM Cloud](https://cloud.ibm.com/login) pay-as-you-go account (make sure it is [logged in to your account.](https://cloud.ibm.com/docs/cli?topic=cli-getting-startedstep4-configure-idt-env))
* The [IBM CLI](https://www.ibm.com/cloud/cli) - the command line interface to interact with the IBM API. You will need to make sure it has the following [plug-ins](https://cloud.ibm.com/docs/cli?topic=cli-plug-ins):



* openshift (oc)
* container registry (cr)



* Make sure you have access to a Mac or Linux terminal.
You can find your toolchain ID in the URL of your selected toolchain tool. For more information, see [Identifying your toolchain ID](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-aggregating-multiple-sources).
* Can I manage toolchains by using Terraform?

You can use Terraform to create, read, update, and delete toolchains and tool integrations. For more information about using Terraform with toolchains, see [Creating a toolchain with Terraform](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-toolchains_getting_started&interface=terraformcreating_a_toolchain_terraform), [Deleting a toolchain with Terraform](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-toolchains-using&interface=terraformdeleting_a_toolchain_terraform), [Working with tool integrations](https://cloud.ibm.com/docs/ContinuousDelivery?topic=ContinuousDelivery-integrations&interface=terraform), and the [ibm_cd_toolchain resources documentation](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/resources/cd_toolchain).
* Can I manage toolchains by using an API?

You can use HTTP APIs or selected programming language SDKs to create, read, update, and delete toolchains and tool integrations.