{"id":18966925,"url":"https://github.com/link-intersystems/git-repo-commons","last_synced_at":"2026-04-04T04:30:15.510Z","repository":{"id":253355696,"uuid":"843250703","full_name":"link-intersystems/git-repo-commons","owner":"link-intersystems","description":null,"archived":false,"fork":false,"pushed_at":"2024-10-06T05:39:20.000Z","size":305,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-01T06:14:04.915Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/link-intersystems.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-08-16T05:22:35.000Z","updated_at":"2024-10-06T05:39:09.000Z","dependencies_parsed_at":"2024-11-08T14:41:06.938Z","dependency_job_id":"f5ae368a-7b56-4c51-8a02-d1260eb14754","html_url":"https://github.com/link-intersystems/git-repo-commons","commit_stats":null,"previous_names":["link-intersystems/git-repo-commons"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/link-intersystems%2Fgit-repo-commons","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/link-intersystems%2Fgit-repo-commons/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/link-intersystems%2Fgit-repo-commons/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/link-intersystems%2Fgit-repo-commons/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/link-intersystems","download_url":"https://codeload.github.com/link-intersystems/git-repo-commons/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239964515,"owners_count":19725952,"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":[],"created_at":"2024-11-08T14:39:07.575Z","updated_at":"2026-04-04T04:30:15.467Z","avatar_url":"https://github.com/link-intersystems.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Git Repository Commons\n\nThis repository contains scripts and config files that can be re-used and shared across other repositories of [link-intersystems](https://github.com/link-intersystems).\nThe scripts and config files can either be used by just copy and paste them or better to add them via `git subtree`.\n\n\u003e [!WARNING]  \n\u003e This repository was created to share common repository configuration and scripts within the\n\u003e [link-intersystems](https://github.com/link-intersystems) organization.\n\u003e \n\u003e The configurations and scripts provided here might also work for you, since we usually keep them\n\u003e independent of organization specific stuff. But this might change in the future. \n\u003e \n\u003e So if you want to use them, use them with caution and only if you understand what these scripts do.\n\u003e \n\u003e But you can also study this repository and build a similar one for your own organization.\n\n## Apply default scripts and workflow configuration\n\nIn the root directory of the repository you wish to apply the scripts and workflows execute the following line:\n\n```shell\ncurl -H 'Cache-Control: no-cache, no-store' -sSL https://raw.githubusercontent.com/link-intersystems/git-repo-commons/main/apply-project-facet.sh | bash -s -- gradle\n```\n\nThis will download the [apply-project-facet.sh](apply-project-facet.sh) and immediately execute it. The option `gradle` tells the\ninit script to apply the configuration under the [gradle](gradle) directory of this repository.\n\n\n## Gradle Project Commons\n\nThe gradle project commons are located under the [gradle](gradle) directory.\n\n### Gradle Workflows\n\n#### [gradle.yml](gradle/.github/workflows/gradle.yml)\n\nThis workflow just builds the project by invoking `./gradlew build`\n\n#### [release.yml](gradle/.github/workflows/release.yml)\n\nThis workflow is a manually triggered workflow that takes inputs to execute a release.\n\nIt expects that your gradle project uses the `net.researchgate.release` plugin\n\n```kotlin\nplugins {\n    id(\"net.researchgate.release\") version \"3.0.2\"\n}\n```\n\nOnce installed in your repository you can trigger a release\n\n![Trigger Release Workflow](gradle/doc/trigger_release_workflow.png \"Trigger Release Workflow\")\n\nIt will then execute a `patch`, `minor` or `major` release on the current project.\n\nYou can also set a specific release version in the format `[0-9]+.[0-9]+.[0-9]+`. \nThis setting will override the release type that you selected above.\n\nThe Gradle release plugin mentioned above will then update the versions, make commits and tag the\nrelease version commit. After that it will push the changes and the commit tag.\n\nIn order to afterward trigger the publish workflow you need the release tag to be in the format `v[0-9]+.[0-9]+.[0-9]+`.\n\nTherefore, you should configure the release plugin in that way:\n\n```kotlin\nrelease {\n    tagTemplate = \"v\\${version}\"\n}\n```\n\nYou should also configure the release plugin to not push to the remote by itself.\nIf it does, it uses the GITHUB_TOKEN and if the GITHUB_TOKEN pushes to the repository no\nworkflows will be triggered to prevent endless execution.\n\nYou can configure the release plugin in this way. This will allow you reenable the push by passing\n`-PpushToRemote` to the Gradle build.\n\n```kotlin\nval pushToRemoteName = if(project.findProperty(\"pushToRemote\") != null) \"origin\" else \"\"\n\nrelease {\n    git {\n        pushToRemote = pushToRemoteName\n    }\n}\n```\n#### [publish.yml](gradle/.github/workflows/publish.yml)\n\nThe publish workflow uses the `io.github.gradle-nexus.publish-plugin` to publish the build artifacts to the maven central repository.\n\nIt is triggered by tags that follow the pattern `v[0-9]+.[0-9]+.[0-9]+`. The ones as created by the release workflow described above.\n\n\n```kotlin\nplugins {\n    id(\"io.github.gradle-nexus.publish-plugin\")\n}\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flink-intersystems%2Fgit-repo-commons","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flink-intersystems%2Fgit-repo-commons","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flink-intersystems%2Fgit-repo-commons/lists"}