{"thread":{"id":"61465","subject":"git client enhancement request","startedAt":"2024-05-13T15:07:49Z","lastAt":"2024-05-13T21:20:00Z","messageCount":8,"participants":["lbdyck@gmail.com","Sean Allred","Junio C Hamano","rsbecker@nexbridge.com","brian m. carlson"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"494631","messageId":"02f201daa547$503df630$f0b9e290$@gmail.com","threadId":"61465","inReplyTo":null,"subject":"git client enhancement request","fromName":"","fromEmail":"lbdyck@gmail.com","sentAt":"2024-05-13T15:07:45Z","receivedAt":"2024-05-13T15:07:49Z","isPatch":false,"sender":{"key":"lbdyck@gmail.com","avatar":null},"body":"I would like to see the option to allow the git client to request the\ncreation of a new empty git repository on the git server without having to\nopen the web interface to the git server to define a new repository.\n\nPerhaps something like:  git server-repo public/private name\n\nThank you\n\n\n\nLionel B. Dyck <>< \nGithub: https://github.com/lbdyck\nSystem Z Enthusiasts Discord: https://discord.gg/sze\n\nWorry more about your character than your reputation. Character is what you\nare, reputation merely what others think you are.   - - - John Wooden\n\n\n"},{"id":"494642","messageId":"m0pltptx3h.fsf@epic96565.epic.com","threadId":"61465","inReplyTo":"02f201daa547$503df630$f0b9e290$@gmail.com","subject":"Re: git client enhancement request","fromName":"Sean Allred","fromEmail":"allred.sean@gmail.com","sentAt":"2024-05-13T17:56:02Z","receivedAt":"2024-05-13T17:56:06Z","isPatch":false,"sender":{"key":"allred.sean@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2082195?v=4"},"body":"<lbdyck@gmail.com> writes:\n> I would like to see the option to allow the git client to request the\n> creation of a new empty git repository on the git server without\n> having to open the web interface to the git server to define a new\n> repository.\n>\n> Perhaps something like:  git server-repo public/private name\n\nIs this even technically feasible? My understanding is that\nstorage implementations of each forge vary *wildly*. I don't believe\nthis would be under Git's ability to implement as a project.\n\nYou might look into combining your preferred forge's CLI with git\naliases:\n\n  - GitHub has 'gh': https://cli.github.com\n  - GitLab has 'glab' https://docs.gitlab.com/ee/editor_extensions/gitlab_cli\n\nso you could alias\n\n    git config alias.server-repo '!gh repo create'\n\nto get something of what you want.\n\nI believe GitLab also has a feature where you can create repositories\njust by pushing an existing repository to an empty project path.\n\n-- \nSean Allred\n"},{"id":"494643","messageId":"04a101daa55f$bd15ce50$37416af0$@gmail.com","threadId":"61465","inReplyTo":"m0pltptx3h.fsf@epic96565.epic.com","subject":"RE: git client enhancement request","fromName":"","fromEmail":"lbdyck@gmail.com","sentAt":"2024-05-13T18:02:36Z","receivedAt":"2024-05-13T18:02:39Z","isPatch":false,"sender":{"key":"lbdyck@gmail.com","avatar":null},"body":"Is this technically feasible - that I don't know but it would seem to be. Since there are tools for github/gitlab/bitbucket that can do it then why not the standard git client.\n\nI know that for GitHub I can also do it with curl (haven't checked the others).\n\nWhat I'm trying to do is to have a usable wrapper around git for the novice and not require other packages.\n\nOne would think that it would be comparable to a \"git push\" but with the addition of the \"git url\" and some indication if the new repo is to be public or private. If it already exists then return an error message. And if it doesn't already exist then do whatever the current web interface to the git server does to define an empty repository. Having a requirement for an existing local repository would be reasonable for this to work.\n\nI'm just asking if it can be done.\n\nThank you\n\n\nLionel B. Dyck <>< \nGithub: https://github.com/lbdyck\nSystem Z Enthusiasts Discord: https://discord.gg/sze\n\n“Worry more about your character than your reputation. Character is what you are, reputation merely what others think you are.”   - - - John Wooden\n\n-----Original Message-----\nFrom: Sean Allred <allred.sean@gmail.com> \nSent: Monday, May 13, 2024 12:56 PM\nTo: lbdyck@gmail.com\nCc: git@vger.kernel.org\nSubject: Re: git client enhancement request\n\n<lbdyck@gmail.com> writes:\n> I would like to see the option to allow the git client to request the \n> creation of a new empty git repository on the git server without \n> having to open the web interface to the git server to define a new \n> repository.\n>\n> Perhaps something like:  git server-repo public/private name\n\nIs this even technically feasible? My understanding is that storage implementations of each forge vary *wildly*. I don't believe this would be under Git's ability to implement as a project.\n\nYou might look into combining your preferred forge's CLI with git\naliases:\n\n  - GitHub has 'gh': https://cli.github.com\n  - GitLab has 'glab' https://docs.gitlab.com/ee/editor_extensions/gitlab_cli\n\nso you could alias\n\n    git config alias.server-repo '!gh repo create'\n\nto get something of what you want.\n\nI believe GitLab also has a feature where you can create repositories just by pushing an existing repository to an empty project path.\n\n--\nSean Allred\n\n"},{"id":"494647","messageId":"xmqq8r0dfsvd.fsf@gitster.g","threadId":"61465","inReplyTo":"m0pltptx3h.fsf@epic96565.epic.com","subject":"Re: git client enhancement request","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2024-05-13T18:51:02Z","receivedAt":"2024-05-13T18:51:11Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Sean Allred <allred.sean@gmail.com> writes:\n\n> Is this even technically feasible? My understanding is that\n> storage implementations of each forge vary *wildly*. I don't believe\n> this would be under Git's ability to implement as a project.\n\nNot just \"storage implementation\", but some things are totally kept\noutside the control of Git proper, including user and repository\nmanagement.  Creating, deleting, and modifying authentication and\nauthorization details of these things are outside the scope of Git,\nand forges build on their competing designs.\n\n\n"},{"id":"494649","messageId":"051d01daa567$caa22750$5fe675f0$@gmail.com","threadId":"61465","inReplyTo":"xmqq8r0dfsvd.fsf@gitster.g","subject":"RE: git client enhancement request","fromName":"","fromEmail":"lbdyck@gmail.com","sentAt":"2024-05-13T19:00:14Z","receivedAt":"2024-05-13T19:00:19Z","isPatch":false,"sender":{"key":"lbdyck@gmail.com","avatar":null},"body":"I have to interject here that the git client doing a push must be fully\nauthenticated which implies to me that all the information required is\navailable to do so and allow the server repository to be updated.\n\n\nLionel B. Dyck <>< \nGithub: https://github.com/lbdyck\nSystem Z Enthusiasts Discord: https://discord.gg/sze\n\nWorry more about your character than your reputation. Character is what you\nare, reputation merely what others think you are.   - - - John Wooden\n\n-----Original Message-----\nFrom: Junio C Hamano <gitster@pobox.com> \nSent: Monday, May 13, 2024 1:51 PM\nTo: Sean Allred <allred.sean@gmail.com>\nCc: lbdyck@gmail.com; git@vger.kernel.org\nSubject: Re: git client enhancement request\n\nSean Allred <allred.sean@gmail.com> writes:\n\n> Is this even technically feasible? My understanding is that storage \n> implementations of each forge vary *wildly*. I don't believe this \n> would be under Git's ability to implement as a project.\n\nNot just \"storage implementation\", but some things are totally kept outside\nthe control of Git proper, including user and repository management.\nCreating, deleting, and modifying authentication and authorization details\nof these things are outside the scope of Git, and forges build on their\ncompeting designs.\n\n\n\n"},{"id":"494651","messageId":"019201daa569$0ae28f20$20a7ad60$@nexbridge.com","threadId":"61465","inReplyTo":"m0pltptx3h.fsf@epic96565.epic.com","subject":"RE: git client enhancement request","fromName":"","fromEmail":"rsbecker@nexbridge.com","sentAt":"2024-05-13T19:09:07Z","receivedAt":"2024-05-13T19:09:20Z","isPatch":false,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"On Monday, May 13, 2024 1:56 PM, Sean Allred wrote:\n><lbdyck@gmail.com> writes:\n>> I would like to see the option to allow the git client to request the\n>> creation of a new empty git repository on the git server without\n>> having to open the web interface to the git server to define a new\n>> repository.\n>>\n>> Perhaps something like:  git server-repo public/private name\n>\n>Is this even technically feasible? My understanding is that storage implementations\n>of each forge vary *wildly*. I don't believe this would be under Git's ability to\n>implement as a project.\n>\n>You might look into combining your preferred forge's CLI with git\n>aliases:\n>\n>  - GitHub has 'gh': https://cli.github.com\n>  - GitLab has 'glab' https://docs.gitlab.com/ee/editor_extensions/gitlab_cli\n>\n>so you could alias\n>\n>    git config alias.server-repo '!gh repo create'\n>\n>to get something of what you want.\n>\n>I believe GitLab also has a feature where you can create repositories just by pushing\n>an existing repository to an empty project path.\n\nPlease have a look at the github/bitbucket/gitlab/azuregit REST API for doing what you are trying to do. There is no specific \"git client\" function as git is symmetrical.\n--Randall\n\n"},{"id":"494652","messageId":"053a01daa569$6df23570$49d6a050$@gmail.com","threadId":"61465","inReplyTo":"019201daa569$0ae28f20$20a7ad60$@nexbridge.com","subject":"RE: git client enhancement request","fromName":"","fromEmail":"lbdyck@gmail.com","sentAt":"2024-05-13T19:11:58Z","receivedAt":"2024-05-13T19:12:02Z","isPatch":false,"sender":{"key":"lbdyck@gmail.com","avatar":null},"body":"I understand that there is currently no function such as I'm requesting - but perhaps there could be.\n\n\nLionel B. Dyck <>< \nGithub: https://github.com/lbdyck\nSystem Z Enthusiasts Discord: https://discord.gg/sze\n\n“Worry more about your character than your reputation. Character is what you are, reputation merely what others think you are.”   - - - John Wooden\n\n-----Original Message-----\nFrom: rsbecker@nexbridge.com <rsbecker@nexbridge.com> \nSent: Monday, May 13, 2024 2:09 PM\nTo: 'Sean Allred' <allred.sean@gmail.com>; lbdyck@gmail.com\nCc: git@vger.kernel.org\nSubject: RE: git client enhancement request\n\nOn Monday, May 13, 2024 1:56 PM, Sean Allred wrote:\n><lbdyck@gmail.com> writes:\n>> I would like to see the option to allow the git client to request the \n>> creation of a new empty git repository on the git server without \n>> having to open the web interface to the git server to define a new \n>> repository.\n>>\n>> Perhaps something like:  git server-repo public/private name\n>\n>Is this even technically feasible? My understanding is that storage \n>implementations of each forge vary *wildly*. I don't believe this would \n>be under Git's ability to implement as a project.\n>\n>You might look into combining your preferred forge's CLI with git\n>aliases:\n>\n>  - GitHub has 'gh': https://cli.github.com\n>  - GitLab has 'glab' \n> https://docs.gitlab.com/ee/editor_extensions/gitlab_cli\n>\n>so you could alias\n>\n>    git config alias.server-repo '!gh repo create'\n>\n>to get something of what you want.\n>\n>I believe GitLab also has a feature where you can create repositories \n>just by pushing an existing repository to an empty project path.\n\nPlease have a look at the github/bitbucket/gitlab/azuregit REST API for doing what you are trying to do. There is no specific \"git client\" function as git is symmetrical.\n--Randall\n\n\n"},{"id":"494667","messageId":"ZkKD95VBlmsUJdB5@tapette.crustytoothpaste.net","threadId":"61465","inReplyTo":"051d01daa567$caa22750$5fe675f0$@gmail.com","subject":"Re: git client enhancement request","fromName":"brian m. carlson","fromEmail":"sandals@crustytoothpaste.net","sentAt":"2024-05-13T21:19:51Z","receivedAt":"2024-05-13T21:20:00Z","isPatch":false,"sender":{"key":"sandals@crustytoothpaste.net","avatar":"https://avatars.githubusercontent.com/u/497054?v=4"},"body":"On 2024-05-13 at 19:00:14, lbdyck@gmail.com wrote:\n> I have to interject here that the git client doing a push must be fully\n> authenticated which implies to me that all the information required is\n> available to do so and allow the server repository to be updated.\n\nFirst of all, the authentication required to _create_ a repository need\nnot be the same as to _read_ or _write_ a repository.  It might require\na totally different set of scopes or privileges to create a new\nrepository, which many users will have avoided giving to their\ncredentials for least-privilege reasons.\n\nSecond, there's no standard API to perform that functionality, and the\nimplementation varies widely on different forges.  There are also people\nwho don't use forges at all, or use tooling like gitolite[0] that handles\nthis differently.  Adding such functionality into the Git protocol\nrequires intertwining that functionality and the services that provide\nit with the standard forge API, so it's likely to be very complex for\nforges to implement using the same functionality as Git uses currently.\n\nThird, we specifically try not to prioritize any individual piece of\nsoftware or project here.  Even if there are many common forges, we\nwon't ship tooling that's specific to GitHub, GitLab, or Bitbucket,\nsince that prioritizes those users over others.  Since there's no\nstandard API for this, we won't be adding any forge-specific\nfunctionality to Git.\n\nEven if we decided to implement a standard API for doing this, it\ndoesn't mean that forges would adopt it.  Many forges don't implement\n`git-archive` over SSH, for example, since it's hard to cache versus\nusing HTTP.\n\n[0] gitolite actually allows you to create repositories by just pushing\nto them if you have permissions to do so in the configuration.\n-- \nbrian m. carlson (they/them or he/him)\nToronto, Ontario, CA\n"}]}