Jenkins GitHub Repository Item Configuration

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

External

Internal

General

Name

Also known as "Folder Name"

Display Name

Different from the item name.

Branch Sources

GitHub

Credentials

Credentials used to scan branches and pull requests, check out sources and mark commit statuses. For GitHub, only "username with password" credentials are supported, credentials of other kinds will be filtered out. This is because Jenkins uses GitHub API, which does not support other ways of authentication. If none is given, only the public repositories will be scanned, and commit status will not be set on GitHub. If your organization contains private repositories, then you need to specify a credential from a user that has access to those repositories. This is done by creating a "username with password" credential where the password is GitHub personal access tokens. The necessary scope is "repo".

Owner

GitHub user account or GitHub organization.

Repository

The GitHub repository to scan.

Behaviors

Discover branches

Strategies to discover branches:

  • "All branches"
  • "Exclude branches that are also filed as PRs"
  • "Only branches that are also filed as PRs"

Discover pull request from origin

Strategies:

  • "The current pull request revision"

Discover pull request from forks

Strategies:

  • Merging the pull request with the current target branch version

Trust:

  • Nobody

Filter by name (with regular expression)

A Java regular expression to restrict branch names. Names that do not match the regex will be ignored.

(task|epic)\/.*\/infra\/.*

Advanced clone behaviors

  • Fetch tags: Disable.
  • Honor refspec on initial clone: Enable. Perform initial clone using the refspec defined for the repository. This can save time, data transfer and disk space when you only need to access the references specified by the refspec.
  • Shallow clone: Enable. Perform shallow clone, so that git will not download the history of the project, saving time and disk space when you just want to access the latest version of a repository.
  • Shallow clone depth: 20
  • Path of the reference repo to use during clone:
  • Timeout (in minutes) for clone and fetch operations: 20

Prune stale remote-tracking branches

Property Strategy

Named branches get different properties.

Build Configuration

Mode

By Jenkinsfile.

Script path: src/something/Something.Jenkinsfile

Scan Repository Triggers

  • Build when another project is promoted.
  • Periodically if not otherwise run
    • Interval: 15 minutes

Orphaned Item Strategy

Discard old items

Health metrics

Properties

JIRA

Pipeline Libraries

Sharable libraries available to any Pipeline jobs inside this folder. These libraries will be untrusted, meaning their code runs in the Groovy sandbox.

TODO

Pipeline Model Definition