Categorygithub.com/dpb587/metalink-repository-resource

# README

metalink-repository-resource

A Concourse resource for managing versions/files in a Metalink repository.

Source Configuration

  • uri - location of the repository
  • signature_trust_store - identities and keys used for signature verification
  • skip_hash_verification - skip hash verification of files
  • skip_signature_verification - skip signature verification of files
  • version - a supported version constraint (e.g. ^4.1)
  • filters - a list of supported filters to limit the discovered metalinks
  • options - a hash of supported options, depending on the repository type
    • for git repositories
      • private_key - a SSH private key for git+ssh URIs
      • rebase - number of rebase attempts when pushing (default 3)
    • for s3 repositories
      • access_key - access key for private S3 endpoints
      • secret_key - secret key for private S3 endpoints
      • role_arn - role arn for private S3 endpoints when using AssumeRole
  • include_files - a list of file globs to match when downloading a version's files (used by in)
  • exclude_files - a list of file globs to skip when downloading a version's files (used by in)
  • url_handlers - a list of URL handlers for custom download/upload configurations
    • type - handler type (i.e. s3)
    • include - a list of URIs that should use this handler (regex'd)
    • exclude - a list of URIs that should avoid this handler (regex'd)
    • options - a hash of supported options, depending on type
      • for s3:
        • access_key - access key for private S3 endpoints
        • secret_key - secret key for private S3 endpoints
        • role_arn - role arn for private S3 endpoints when using AssumeRole
  • mirror_files - a list of mirror configurations for mirroring files (used by out)
    • destination - the mirror URI for uploading files (templated; Name, Version, SHA1, SHA256, SHA512, MD5)
    • location - the ISO3166-1 alpha-2 country code for the geographical location (embedded in the metalink)
    • priority - a priority for the file (embedded in the metalink)

Operations

check

Check for new versions in the repository.

Metadata:

  • version - semantic version (e.g. 4.1.2)

in

Download and verify the referenced file(s).

  • .resource/metalink.meta4 - metalink data used when downloading the file
  • .resource/version - version downloaded (e.g. 4.1.2)
  • * - the downloaded file(s) from the metalink

Parameters:

  • include_files - a list of file globs to match when downloading files (intersects with include_files from source configuration, when present)
  • skip_download - do not download blobs (only metalink.meta4 and version will be available)

out

Publish a metalink file to the repository.

Parameters:

  • metalink - path to the metalink file (one of metalink or files must be configured)
  • files - a list of glob paths for files to create a metalink from (one of metalink or files must be configured; requires version)
  • version - path to a file with the version number (only effective with files)
  • rename - publish the metalink file with a different file name (templated; Version)
  • rename_from_file - path to a file whose content is the metalink file name (alternative to rename)
  • options - a hash of supported options, depending on the repository type
    • for git repositories
      • author_name, author_email - the commit author
      • message - the commit message

Usage

To use this resource type, you should configure it in the resource_types section of your pipeline.

- name: metalink-repository
  type: docker-image
  source:
    repository: dpb587/metalink-repository-resource

URL Credentials

When working with authenticated URLs (for either upload or download), configure the url_handlers option of the resource:

url_handlers:
- type: s3
  options:
    access_key: AKIAA1B2C3...
    secret_key: a1b2c3d4e5...

When using multiple URLs which require different configurations, use the include or exclude options to restrict usage:

url_handlers:
- type: s3
  include:
  - s3://[^/]+/org1-bucket-name/
  options:
    access_key: AKIAA1B2C3...
    secret_key: a1b2c3d4e5...
- type: s3
  include:
  - s3://[^/]+/org2-bucket-name/
  options:
    access_key: AKIAB2C3D4...
    secret_key: b2c3d4e5f6...
	mirror_files:
- destination: s3://s3-external-1.amazonaws.com/org1-bucket-name/my-private-blobs/{{.Version}}/{{.Name}}
- destination: s3://s3-external-1.amazonaws.com/org2-bucket-name/my-private-blobs/{{.Version}}/{{.Name}}

Filters

The fileversion and repositorypath filters are supported.

filters:
- repositorypath: prefix-*.meta4
- fileversion: 27.x              # equivalent to using source version

License

MIT License

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author