vito / git-branch-heads-resource

(DEPRECATED) a Concourse resource for tracking changes across many branches

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Archiving; follow the Concourse v10 roadmap which will eliminate the need for this pretty hacky resource type.

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: vito/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.

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

(DEPRECATED) a Concourse resource for tracking changes across many branches

License:Apache License 2.0


Languages

Language:Shell 98.7%Language:Dockerfile 1.3%