Tracks the commits in a git repository.
-
uri
: Required. The location of the repository. -
branch
: Required. The branch to track. -
private_key
: Optional. Private key to use when pulling/pushing. Example:private_key: | -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAtCS10/f7W7lkQaSgD/mVeaSOvSF9ql4hf/zfMwfVGgHWjj+W <Lots more text> DWiJL+OFeg9kawcUL6hQ8JeXPhlImG6RTUffma9+iGQyyBMCGd1l -----END RSA PRIVATE KEY-----
-
paths
: Optional. If specified (as a list of glob patterns), only changes to the specified files will yield new versions fromcheck
. -
ignore_paths
: Optional. The inverse ofpaths
; changes to the specified files are ignored.Note that if you want to push commits that change these files via a
put
, the commit will still be "detected", ascheck
andput
both introduce versions. To avoid this you should define a second resource that you use for commits that change files that you don't want to feed back into your pipeline - think of one as read-only (withignore_paths
) and one as write-only (which shouldn't need it). -
skip_ssl_verification
: Optional. Skips git ssl verification by exportingGIT_SSL_NO_VERIFY=true
. -
tag_filter
: Optional. If specified, the resource will only detect commits that have a tag matching the specified expression. Patterns are glob(7) compatible (as in, bash compatible). -
git_config
: Optional. If specified as (list of pairsname
andvalue
) it will configure git global options, setting each name with each value.This can be useful to set options like
credential.helper
or similar.See the
git-config(1)
manual page for more information and documentation of existing git options. -
commit_verification_keys
: Optional. Array of GPG public keys that the resource will check against to verify the commit. -
commit_verification_key_ids
: Optional. Array of GPG public key ids that the resource will check against to verify the commit. The resource will fetch the public keys from the key server specified ingpg_keyserver
. The ids can be short id, long id or fingerprint. -
gpg_keyserver
: Optional. GPG keyserver to download the public keys from. Defaults tohkp://pgp.mit.edu/
.
Resource configuration for a private repo:
resources:
- name: source-code
type: git
source:
uri: [email protected]:concourse/git-resource.git
branch: master
private_key: |
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAtCS10/f7W7lkQaSgD/mVeaSOvSF9ql4hf/zfMwfVGgHWjj+W
<Lots more text>
DWiJL+OFeg9kawcUL6hQ8JeXPhlImG6RTUffma9+iGQyyBMCGd1l
-----END RSA PRIVATE KEY-----
git_config:
- name: core.bigFileThreshold
value: 10m
Fetching a repo with only 100 commits of history:
- get: source-code
params: {depth: 100}
Pushing local commits to the repo:
- get: some-other-repo
- put: source-code
params: {repository: some-other-repo}
The repository is cloned (or pulled if already present), and any commits
from the given version on are returned. If no version is given, the ref
for HEAD
is returned.
Any commits that contain the string [ci skip]
will be ignored. This
allows you to commit to your repository without triggering a new version.
Clones the repository to the destination, and locks it down to a given ref. Returns the resulting ref as the version.
Submodules are initialized and updated recursively.
-
depth
: Optional. If a positive integer is given, shallow clone the repository using the--depth
option. Using this flag voids your warranty. Some things will stop working unless we have the entire history. -
submodules
: Optional. Ifnone
, submodules will not be fetched. If specified as a list of paths, only the given paths will be fetched. If not specified, or ifall
is explicitly specified, all submodules are fetched.
Push the checked-out reference to the source's URI and branch. All tags are
also pushed to the source. If a fast-forward for the branch is not possible
and the rebase
parameter is not provided, the push will fail.
-
repository
: Required. The path of the repository to push to the source. -
rebase
: Optional. If pushing fails with non-fast-forward, continuously attempt rebasing and pushing. -
tag
: Optional If this is set then HEAD will be tagged. The value should be a path to a file containing the name of the tag. -
only_tag
: Optional When set to 'true' push only the tags of a repo. -
tag_prefix
: Optional. If specified, the tag read from the file will be prepended with this string. This is useful for addingv
in front of version numbers. -
annotate
: Optional. If specified the tag will be an annotated tag rather than a lightweight tag. The value should be a path to a file containing the annotation message.