{"id":22282079,"url":"https://github.com/jenkinsci/git-server-plugin","last_synced_at":"2025-07-28T20:31:44.891Z","repository":{"id":4226834,"uuid":"5349347","full_name":"jenkinsci/git-server-plugin","owner":"jenkinsci","description":"Git Server Plugin for Jenkins","archived":false,"fork":false,"pushed_at":"2025-04-01T07:33:18.000Z","size":130,"stargazers_count":10,"open_issues_count":5,"forks_count":19,"subscribers_count":98,"default_branch":"master","last_synced_at":"2025-04-05T03:31:49.869Z","etag":null,"topics":["git","git-server","jenkins-api-plugin","jenkins-plugin"],"latest_commit_sha":null,"homepage":"https://plugins.jenkins.io/git-server","language":"Java","has_issues":false,"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/jenkinsci.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-08-09T00:32:26.000Z","updated_at":"2025-04-04T04:17:30.000Z","dependencies_parsed_at":"2024-01-04T01:21:07.806Z","dependency_job_id":"f3047ad3-a55e-4b59-8a04-9e7584387a20","html_url":"https://github.com/jenkinsci/git-server-plugin","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/jenkinsci/git-server-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fgit-server-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fgit-server-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fgit-server-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fgit-server-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jenkinsci","download_url":"https://codeload.github.com/jenkinsci/git-server-plugin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fgit-server-plugin/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267580501,"owners_count":24110855,"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","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["git","git-server","jenkins-api-plugin","jenkins-plugin"],"created_at":"2024-12-03T16:25:21.220Z","updated_at":"2025-07-28T20:31:44.615Z","avatar_url":"https://github.com/jenkinsci.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Git Server Plugin for Jenkins\n\nThis plugin wraps the server-side functionality of JGit so that other plugins can easily expose\nGit repositories from Jenkins via its SSH transport and HTTP in a collaborative fashion.\nThis plugin is a library plugin, in the sense that it doesn't have any user visible feature on its own.\n\n## Developer Guide\n\nSee [Git userContent plugin](https://plugins.jenkins.io/git-userContent) as a nice and short example of how to take advantages of this feature.\n\nIn terms of code, there are two classes that plugins like `git-userContent-plugin` should be interested in.\n\nOne is\n[`HttpGitRepository`](https://github.com/jenkinsci/git-server-plugin/blob/master/src/main/java/org/jenkinsci/plugins/gitserver/HttpGitRepository.java),\nwhich represents Git repository access via HTTP.\nTypically you have some directory inside `$JENKINS_HOME` that houses the repository, then you subtype `GitHttpRepository` and override abstract methods to fill in the missing details.\n[`FileBackedHttpGitRepository`](https://github.com/jenkinsci/git-server-plugin/blob/master/src/main/java/org/jenkinsci/plugins/gitserver/FileBackedHttpGitRepository.java)\nis a convenient default implementation that simplifies this further.\n[GitUserContentRepository](https://github.com/jenkinsci/git-userContent-plugin/blob/master/src/main/java/org/jenkinsci/plugins/gitUserContent/GitUserContentRepository.java)\nin `git-userContent-plugin` is an example of using this class. This use\nalso implements\n[RootAction](https://wiki.jenkins.io/display/JENKINS/Action+and+its+family+of+subtypes#Actionanditsfamilyofsubtypes-RootAction)\nto bind this repository at `http://server/jenkins/userContent.git`, and\nThis combination is fairly common.\n\nThe other class of interest is [`RepositoryResolver`](https://github.com/jenkinsci/git-server-plugin/blob/master/src/main/java/org/jenkinsci/plugins/gitserver/RepositoryResolver.java).\nGit server plugin adds necessary [Jenkins SSH](https://wiki.jenkins.io/display/JENKINS/Jenkins+SSH) CLI hook for exposing Git repositories over SSH.\nThe only missing link here is that when the client runs `git clone ssh://server/foo/bar/zot.git`,\nwe need to figure out what repositories on the server corresponds to `/foo/bar/zot.git`, and that's what the `RepositoryResolver` extension point does.\n[The sample implementation](https://github.com/jenkinsci/git-userContent-plugin/blob/master/src/main/java/org/jenkinsci/plugins/gitUserContent/GitUserContentRepositorySSHAccess.java) in `git-userContent-plugin` will be hopefully self-explanatory.\nIn this case, `GitUserContentRepository` is a singleton (because it's `RootAction`), so we inject that and basically just delegate the calls to it.\n\n## Changelog\n\n* See [GitHub Releases](https://github.com/jenkinsci/git-server-plugin/releases/latest) for recent releases\n* See the [Changelog Archive](https://github.com/jenkinsci/git-server-plugin/blob/git-server-1.9/docs/OLD_CHANGELOG.md) for versions 1.7 and older\n\n## Reporting issues\n\nUse [Jenkins issue tracker](https://www.jenkins.io/participate/report-issue/redirect/#17613) to report issues or feature requests\n(project = `JENKINS`, component = `git-server-plugin`).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenkinsci%2Fgit-server-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjenkinsci%2Fgit-server-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenkinsci%2Fgit-server-plugin/lists"}