项目作者: zarplata

项目描述 :
:rocket: Concourse CI resource for tracking git branches of Bitbucket pull-requests
高级语言: Shell
项目地址: git://github.com/zarplata/concourse-git-bitbucket-pr-resource.git
创建时间: 2017-05-27T16:48:47Z
项目社区:https://github.com/zarplata/concourse-git-bitbucket-pr-resource

开源协议:MIT License

下载


concourse-git-bitbucket-pr-resource

Tracks changes for all git branches for pull requests.

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

Inspirited by git-branch-heads-resourse

Installation

Add the following resource_types entry to your pipeline:

  1. ---
  2. resource_types:
  3. - name: git-bitbucket-pr
  4. type: docker-image
  5. source:
  6. repository: zarplata/concourse-git-bitbucket-pr-resource

Source Configuration

  • base_url: Required. base URL of the bitbucket server, without a trailing slash.
    For example: http://bitbucket.local
  • project: Required. project for tracking
  • repository: Required. repository for tracking
  • limit: Optional. limit of tracked pull requests default: 100.
  • git: Required. configuration is based on the Git
    resource
    . The branch configuration
    from the original resource is ignored.
  • bitbucket_type: Optional. cloud for BitBucket Cloud or server for a self-hosted BitBucket Server. default: server
  • dir: Deprecated. set to name of the resource if resource name is different than repository name. Is deprecated in favor to params.repository in out.
  • branch: Optional. if given, only pull requests against this branch will be checked
  • paths: Optional. if specified (as a list of glob patterns), only changes to the specified files will yield new versions from check
  • changes_limit: Optional. the maximum number of changed paths loaded for each pull-request. default: 100. It works only with the paths parameter.
  • direction: Optional. the direction relative to the specified repository, either incoming (destination, e.g. to master) or outgoing (source, e.g. from feature).
    Either:
  • username: Required. username of the user which have access to repository.
  • password: Required. password of that user
    Or:
  • oauth_id: Required. Oauth id of an OAuth consumer configured as private and with permission to write to PRs.
  • oauth_secret: Required. Oauth secret of the same consumer.

  • exclude_title: Optional. prevent check from emitting new versions when only the pull request title changes, except when the string “WIP” is removed from the title.

  • skip_ssl_verification: Optional. Disable SSL verification on the Bitbucket API calls.
  • ssl_cacert: Optional. Custom CA certs to use to verify Bitbucket API calls.

Example

  1. resources:
  2. - name: my-repo-with-pull-requests
  3. type: git-bitbucket-pr
  4. source:
  5. base_url: http://bitbucket.local
  6. username: some-username
  7. password: some-password
  8. project: zarplata
  9. repository: concourse-git-bitbucket-pr-resource
  10. git:
  11. uri: https://github.com/zarplata/concourse-git-bitbucket-pr-resource
  12. private_key: {{git-repo-key}}
  13. jobs:
  14. - name: my build
  15. plan:
  16. - get: my-repo-with-pull-requests
  17. trigger: true
  18. version: every
  19. - task: unit test
  20. ...
  21. inputs:
  22. - name: my-repo-with-pull-requests
  23. run:
  24. ...
  25. on_failure:
  26. put: my-repo-with-pull-requests
  27. params:
  28. action: change-build-status
  29. state: FAILED
  30. name: "unit test"
  31. url: "http://acme.com/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME"
  32. on_success:
  33. put: my-repo-with-pull-requests
  34. params:
  35. action: change-build-status
  36. state: SUCCESSFUL
  37. name: "unit test"
  38. url: "http://acme.com/teams/$BUILD_TEAM_NAME/pipelines/$BUILD_PIPELINE_NAME/jobs/$BUILD_JOB_NAME/builds/$BUILD_NAME"

Behavior

check: Check for changes to all pull requests.

The current open pull requests fetched from Bitbucket server for given
project and repository. Update time are compared to the last fetched pull request.

If any pull request are new or updated or removed, a new version is emitted.

in: Fetch the commit that changed the pull request.

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

Parameters

All params, except the ones listed below, will be passed through to params of the original git-resource.

  • skip_download: Optional. Skip git pull. Artifacts based on the git will not be present.
  • fetch_upstream: Optional. Also fetch the pull requests’ upstream ref. This will overwrite the fetch param.

out: Update the PR.

Behavior depends on the value of parameter action, where is the values are:

  • change-build-status: Change the commit build status.

    • action: Required. For this behavior should be change-build-status.
    • Parameters except the name will be respected the Bitbucket documentation.
    • name: Deprecated. Parameter is deprecated and has been left only for backward compatibility.
    • repository: Optional. The path of the source repository for changing build status.
  • push: Push the commit to pull request branch.

    • action: Required. For this behavior should be push.
    • repository: Optional. The path of the source repository for pushing.

Troubleshooting

  • Mark PR with “build started” creates a new version of a PR.

    The Concourse is not available to skipping versions but have the workaround.
    You should add the resource with the same settings as pull-request for changing the build status only.

    1. - name: test-pull-requests
    2. plan:
    3. - get: pull-request
    4. trigger: true
    5. version: every
    6. - get: node
    7. - put: pull-request-status
    8. params:
    9. action: change-build-status
    10. state: INPROGRESS
    11. key: concourse-build
    12. description: Building on Concourse