GitRepo Examples

JFrog Pipelines Documentation

ft:sourceType
Paligo

Example 1

GitRepo resource listening to the master branch

resources:
  - name: my_app_repo
    type: GitRepo
    configuration:
      gitProvider: my_github
      path: myuser/repo-name
      branches:
        include: master

GitRepo resource listening to all branches except master and release

Example 2

resources:
  - name: my_app_repo
    type: GitRepo
    configuration:
      gitProvider: my_github
      path: myuser/repo-name
      branches:
        exclude: ^(master|release)$

Example 3

The following example may be useful to reference a single directory in a source repository that contains source code for a single microservice within a larger project.

GitRepo resource listening only to certain files in a directory

resources:
  - name: my_app_repo
    type: GitRepo
    configuration:
      gitProvider: my_github
      path: myuser/repo-name
      branches:
        include: master
      files:
        include: ^folder1\/package\/docker\/micro1\/.+

Example 4

By default, a GitRepo triggers on a commit, but this can be changed in the buildOn attributes. For more information about triggering, see Triggering Pipelines and Steps.

GitRepo triggers only for a pull request and not for commit

resources:
  - name: my_app_repo
    type: GitRepo
    configuration:
      gitProvider: my_github
      path: myuser/repo-name
      branches:
        include: master
      buildOn:
        commit: false
        pullRequestCreate: true

Example 5

The following example pipeline triggers the first step on the GitRepo resource. The step uses the environment variables exposed by the GitRepo resource to navigate to the path where the Git repository is cloned on the build node, and to execute a script in that directory.

Usage in a Pipeline

pipelines:
  - name: java_pipeline
    steps:
      - name: step_1
        type: Bash
        configuration:
          inputResources:
            - name: my_app_repo
        execution:
          onExecute:
            - pushd $res_my_app_repo_resourcePath
            - ./execute.sh
            - popd

Example 6

GitRepo resource using HTTPS protocol during repo clone

resources:
  - name: my_app_repo
    type: GitRepo
    configuration:
      gitProvider: my_github
      path: myuser/repo-name
      branches:
        include: master
      cloneProtocol: https

Example 7

In this example, the GitRepo is only updated for pull requests to master.

GitRepo triggers only for a pull requests to master

resources:
  - name: my_app_repo
    type: GitRepo
    configuration:
      gitProvider: my_github
      path: myuser/repo-name
      pullRequestTargetBranches:
        include: ^master$
      buildOn:
        commit: false
        pullRequestCreate: true