{"id":18632597,"url":"https://github.com/aoepeople/gitlab-crucible-bridge","last_synced_at":"2025-04-11T07:31:10.653Z","repository":{"id":140858153,"uuid":"113005287","full_name":"AOEpeople/gitlab-crucible-bridge","owner":"AOEpeople","description":"Translates GitLab webhooks into Crucible sync triggers","archived":false,"fork":false,"pushed_at":"2021-11-02T21:22:47.000Z","size":64,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-03-25T11:01:57.910Z","etag":null,"topics":["bridge","crucible","gitlab","webhook"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AOEpeople.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":"2017-12-04T06:41:52.000Z","updated_at":"2021-12-18T11:42:58.000Z","dependencies_parsed_at":"2023-05-04T22:27:35.432Z","dependency_job_id":null,"html_url":"https://github.com/AOEpeople/gitlab-crucible-bridge","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AOEpeople%2Fgitlab-crucible-bridge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AOEpeople%2Fgitlab-crucible-bridge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AOEpeople%2Fgitlab-crucible-bridge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AOEpeople%2Fgitlab-crucible-bridge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AOEpeople","download_url":"https://codeload.github.com/AOEpeople/gitlab-crucible-bridge/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248358843,"owners_count":21090442,"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":["bridge","crucible","gitlab","webhook"],"created_at":"2024-11-07T05:12:40.716Z","updated_at":"2025-04-11T07:31:10.333Z","avatar_url":"https://github.com/AOEpeople.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Actions Status](https://github.com/AOEpeople/gitlab-crucible-bridge/workflows/Test%20and%20build%20Docker%20image/badge.svg)](https://github.com/AOEpeople/gitlab-crucible-bridge/actions)\n| [Docker Image](https://hub.docker.com/r/aoepeople/gitlab-crucible-bridge/)\n| [Binaries](https://github.com/AOEpeople/gitlab-crucible-bridge/releases)\n# GitLab Crucible Bridge\nThis project provided some glue code to trigger an SCM refresh in Crucible via GitLab webhooks.\n\n## Why?\nTo trigger an SCM refresh in Crucible you need the Crucible project ID.\nGitLab sends the git url within its webhooks.\nTo be able to leverage GitLab webhooks as a trigger for refreshing Crucible we need to convert between git urls and Crucible project IDs.\nThis tool periodically (with configurable time periods) downloads a project list from Crucible, normalizes the git url (to be able to handle http(s) and ssh urls) and uses that list whenever a GitLab webhook comes in to trigger a refresh. \n\n## Why do I need an API key and credentials?\nThe app uses the `incremental-index` endpoint in Crucible which is the only endpoint which can be accessed via API key for now. For downloading the projects list we need to use real credentials.\n\n# Compatibility\nTested with:\n* GitLab 10.2.x\n* Crucible 4.2.0\n\n# Configuration\n## GitLab itself\nYou can use GitLab's \"System Hooks\". There is no special configuration in each GitLab repository needed.\nAll you have to do is to configure a \"System Hook\" for **Push events** or **Tag push events**, point the URL to the **GitLab Crucible Brigde** (side note: the bridge listens on port 8888) and provide a **Secret Token**.\n\n## This application\n\n### Mandatory settings\n\n| Environment Variable | Description | Example |\n| -------------------- | ----------- | ------- |\n|`CRUCIBLE_API_BASE_URL`|The base url to the REST service endpoint|`https://crucible.example.com/cru/rest-service-fecru`|\n|`CRUCIBLE_API_KEY`|The API key which is used for triggering a refresh in Crucible. Look at the [Crucible documentation](https://confluence.atlassian.com/fisheye/setting-the-rest-api-token-317197023.html) on how to generate that.|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|\n|`CRUCIBLE_USERNAME`|Username of a Crucible user which can access the project list|username|\n|`CRUCIBLE_PASSWORD`|Password of a Crucible user which can access the project list|password|\n|`CRUCIBLE_PROJECT_REFRESH_INTERVAL`|How often the repository list should be refreshed. (In minutes)|60|\n|`CRUCIBLE_PROJECT_LIMIT`|Limit of how many projects should be fetched from Crucible in one request.|100|\n|`GITLAB_TOKEN`|A token in the GitLab webhook which will be used for validation in the app.|some_token|\n\n### Optional settings\n| Environment Variable | Description | Example |\n| -------------------- | ----------- | ------- |\n|`GITLAB_HOSTNAMES`|Space-separated list of host names used by GitLab|`example.com example.org altssh.example.com:443`|\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faoepeople%2Fgitlab-crucible-bridge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faoepeople%2Fgitlab-crucible-bridge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faoepeople%2Fgitlab-crucible-bridge/lists"}