{"id":26059670,"url":"https://github.com/orange-cloudfoundry/gitlab-release-resource","last_synced_at":"2026-03-14T14:01:49.817Z","repository":{"id":41295102,"uuid":"339961642","full_name":"orange-cloudfoundry/gitlab-release-resource","owner":"orange-cloudfoundry","description":"A concourse resource to fetch gitlab releases","archived":false,"fork":false,"pushed_at":"2024-12-16T22:26:54.000Z","size":6206,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-25T04:41:31.776Z","etag":null,"topics":["concourse-resource","gitlab"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/orange-cloudfoundry.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-18T06:50:45.000Z","updated_at":"2024-12-16T22:25:14.000Z","dependencies_parsed_at":"2023-09-21T17:15:44.695Z","dependency_job_id":"49e1c0b8-50e9-4b62-96ee-081c0ba6e260","html_url":"https://github.com/orange-cloudfoundry/gitlab-release-resource","commit_stats":{"total_commits":213,"total_committers":45,"mean_commits":4.733333333333333,"dds":0.863849765258216,"last_synced_commit":"102954af06c1c8323fcd2df2d84cf3be9a1c9a08"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orange-cloudfoundry%2Fgitlab-release-resource","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orange-cloudfoundry%2Fgitlab-release-resource/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orange-cloudfoundry%2Fgitlab-release-resource/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orange-cloudfoundry%2Fgitlab-release-resource/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/orange-cloudfoundry","download_url":"https://codeload.github.com/orange-cloudfoundry/gitlab-release-resource/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248358548,"owners_count":21090401,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["concourse-resource","gitlab"],"created_at":"2025-03-08T13:27:29.457Z","updated_at":"2026-03-14T14:01:44.772Z","avatar_url":"https://github.com/orange-cloudfoundry.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"**Table of Contents**\n\u003c!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-refresh-toc --\u003e\n\u003c!-- TOC --\u003e\n* [GitLab Releases Resource](#gitlab-releases-resource)\n  * [Source Configuration](#source-configuration)\n    * [Examples](#examples)\n  * [Behavior](#behavior)\n    * [`check`: Check for released versions](#check-check-for-released-versions)\n    * [`in`: Fetch assets from a release](#in-fetch-assets-from-a-release)\n      * [Parameters](#parameters)\n    * [`out`: Publish a release](#out-publish-a-release)\n      * [Parameters](#parameters-1)\n  * [Development](#development)\n    * [Prerequisites](#prerequisites)\n    * [Running the tests](#running-the-tests)\n    * [Contributing](#contributing)\n    * [Credits](#credits)\n\u003c!-- TOC --\u003e\n\u003c!-- markdown-toc end --\u003e\n\n# GitLab Releases Resource\n\nFetches and creates versioned GitLab releases.\nNote that `check` will skip tags that do not have associated releases.\n\n\u003e ⚠️ Limitations ⚠️\n\u003e \n\u003e GitLab has a known bug ([28978], [375489]) making impossible to download assets published to a project using a private-token.\n\u003e When using `in` with such release, download assets will contain the plain HTML of GitLab's sign-in page.\n\u003e \n\u003e Once fixed, this Concourse resource will behave as expected with no further modification.\n\n[28978]: https://gitlab.com/gitlab-org/gitlab/-/issues/28978\n[375489]: https://gitlab.com/gitlab-org/gitlab/-/issues/375489\n\n## Source Configuration\n\n* `repository`: *Required.* The repository name that contains the releases.\n* `access_token`: *Required.*\n  Used for accessing a release in a private-repo during an `in` and pushing a release to a repo during an `out`.\n  The access token you create is only required to have the `repo` or `public_repo` scope.\n* `gitlab_api_url`: *Optional.*\n  If you use a non-public GitLab deployment then you can set your API URL here.\n* `insecure`: *Optional. Default `false`.*\n  When set to `true`, Concourse will allow insecure connection to your GitLab API.\n* `tag_filter`: *Optional.*\n  If set, override default tag filter regular expression of `v?([^v].*)`.\n  If the filter includes a capture group, the capture group is used as the release version;\n  otherwise, the entire matching substring is used as the version.\n\n### Examples\n\n``` yaml\n- name: gl-release\n  type: gitlab-release\n  source:\n    repository: group/project\n    access_token: abcdef1234567890\n```\n\n``` yaml\n- get: gl-release\n```\n\n``` yaml\n- put: gl-release\n  params:\n    tag: path/to/tag/file\n    body: path/to/body/file\n    globs:\n    - paths/to/files/to/upload-*.tgz\n```\n\nTo get a specific version of a release:\n\n``` yaml\n- get: gl-release\n  version: { tag: 'v0.0.1' }\n```\n\nTo set a custom tag filter:\n\n```yaml\n- name: gl-release\n  type: gitlab-release\n  source:\n    owner: concourse\n    repository: concourse\n    tag_filter: \"version-(.*)\"\n```\n\n## Behavior\n\n### `check`: Check for released versions\n\nReleases are listed and sorted by their tag, using https://github.com/cppforlife/go-semi-semantic.\nFew example:\n- `v1.0.0` \u003c `v1.0.5` \u003c `v1.10.0` \u003c `v2.0.0` (intuitive behaviour)\n- `v1.0.0-dev1` \u003c `v1.0.0-dev2` \u003c `v1.0.0` (empty dash postfix takes priority)\n- `v1.0.0-dev10` \u003c `v1.0.0-rc1` (dash postfixes are compared alphabetically)\n- `v1.0.0.1` \u003c `v1.0.0_dev` (non integer parts are compared alphabetically, `1` \u003c `0_dev`)\n\nIf `version` is specified, `check` returns releases from the specified version on.\nOtherwise, `check` returns the latest release.\n\n### `in`: Fetch assets from a release\n\nFetches artifacts from the given release version.\nIf the version is not specified, the latest version is chosen using [semver](http://semver.org) semantics.\n\nAlso creates the following files:\n\n* `tag` containing the git tag name of the release being fetched.\n* `version` containing the version determined by the git tag of the release being fetched.\n* `body` containing the body text of the release.\n* `commit_sha` containing the commit SHA the tag is pointing to.\n\n#### Parameters\n\n* `globs`: *Optional.*\n  A list of globs for files that will be downloaded from the release.\n  If not specified, all assets will be fetched.\n* `include_sources`: *Optional.*\n  A list of source format to download from the release.\n  If not specified, no sources will be fetched (i.e.: `[\"zip\", \"tar.gz\",\"tar.bz2\", \"tar\"]`).\n* `include_source_tarball`: *Optional.*\n  Enables downloading of the source artifact tarball for the release as `source.tar.gz`.\n  Defaults to `false`.\n  Equivalent to `include_sources: [\"tar.gz\"]`.\n* `include_source_zip`: *Optional.*\n  Enables downloading of the source artifact tarball for the release as `source.zip`.\n  Defaults to `false`.\n  Equivalent to `include_sources: [\"zip\"]`.\n\n### `out`: Publish a release\n\nGiven a `commit_sha` and  `tag`, this tags the commit and creates a release on GitLab,\nthen uploads the files matching the patterns in `globs` to the release.\n\n#### Parameters\n\n* `commitish`: *Optional, if tag is not specified.*\n  A path to a file containing the commitish (SHA, tag, branch name) that the new tag and release should be associated with.\n* `tag`: *Required.* A path to a file containing the name of the Git tag to use for the release.\n* `tag_prefix`: *Optional.*\n  If specified, the tag read from the file will be prepended with this string.\n  This is useful for adding `v` in front of version numbers.\n* `name`: *Optional.*\n  A path to a file containing the name of the release.\n  Defaults to `tag` value.\n* `body`: *Optional.* A path to a file containing the body text of the release.\n* `globs`: *Optional.*\n  A list of globs for files that will be uploaded alongside the created release.\n\n## Development\n\n### Prerequisites\n\n* Go lang is *required* - version 1.16 is tested; earlier versions may also work.\n* Docker is *required* - version 19.03.x is tested; earlier versions may also work.\n* `go mod` is used for dependency management of the golang packages.\n\n### Running the tests\n\nThe tests have been embedded with the `Dockerfile`, ensuring that the testing\nenvironment is consistent across any `docker` enabled platform.\nWhen the Docker image builds, the tests are run inside the Docker container,\non failure they will stop the building process.\n\nRun the tests with the following command:\n\n```sh\ndocker build -t gitlab-release-resource .\n```\n\n### Contributing\n\nPlease make all pull requests to the `master` branch and ensure tests pass locally.\n\n### Credits\n\nThis project was initially created by [@edtan] and forked from [gitlab-release-resource] which is no longer maintained.\nIt has been re-imported to get rid of the fork relationship to the repository [github-release-resource].\n\n[@edtan]: https://github.com/edtan\n[gitlab-release-resource]: https://github.com/edtan/gitlab-release-resource\n[github-release-resource]: https://github.com/concourse/github-release-resource\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forange-cloudfoundry%2Fgitlab-release-resource","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Forange-cloudfoundry%2Fgitlab-release-resource","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forange-cloudfoundry%2Fgitlab-release-resource/lists"}