Skip to content

orange-cloudfoundry/git-branch-heads-resource

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Docker Image CI

Git Branch HEADs Resource

Tracks changes made to all branches (or branches matching a filter). This will skip commits on individual branches, but ensure a version is emitted for each change to the branches.

This resource is meant to be used with version: every.

Installation

Add the following resource_types entry to your pipeline:

---
resource_types:
- name: git-branch-heads
  type: docker-image
  source: {repository: elpaasoci/git-branch-heads-resource}

Source Configuration

All source configuration is based on the Git resource, with the addition of the following property:

  • branches: Optional. An array of branch name filters. If not specified, all branches are tracked.
  • exclude: Optional A Regex for branches to be excluded. If not specified, no branches are excluded.
  • changed_only: Optional If true, the resource will only show the changed branch heads and not all of them. Useful for repos with many active branches. Defaults to false

The branch configuration from the original resource is ignored for check.

Example

Resource configuration for a repo with a bunch of branches named wip-*:

resources:
- name: my-repo-with-feature-branches
  type: git-branch-heads
  source:
    uri: https://github.com/concourse/atc
    branches: [wip-*]

Resource configuration for a repo with version and branches beginning with feature/ filtered out:

resources:
- name: my-repo-with-feature-branches
  type: git-branch-heads
  source:
    uri: https://github.com/concourse/atc
    exclude: version|feature/.*

Behavior

check: Check for changes to all branches.

The repository is cloned (or pulled if already present), all remote branches are enumerated, and compared to the existing set of branches.

If any branches are new or removed, a new version is emitted including the delta.

in: Fetch the commit that changed the branch.

This resource delegates entirely to the in of the original Git resource, by specifying source.branch as the branch that changed, and version.ref as the commit on the branch.

All params and source configuration of the original resource will be respected.

out: No-op.

Not implemented.

About

a Concourse resource for tracking changes across many branches

Resources

License

Stars

Watchers

Forks

Languages

  • Shell 98.8%
  • Dockerfile 1.2%