git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* git client enhancement request
@ 2024-05-13 15:07 lbdyck
  2024-05-13 17:56 ` Sean Allred
  0 siblings, 1 reply; 8+ messages in thread
From: lbdyck @ 2024-05-13 15:07 UTC (permalink / raw)
  To: git

I would like to see the option to allow the git client to request the
creation of a new empty git repository on the git server without having to
open the web interface to the git server to define a new repository.

Perhaps something like:  git server-repo public/private name

Thank you



Lionel B. Dyck <>< 
Github: https://github.com/lbdyck
System Z Enthusiasts Discord: https://discord.gg/sze

“Worry more about your character than your reputation. Character is what you
are, reputation merely what others think you are.”   - - - John Wooden



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: git client enhancement request
  2024-05-13 15:07 git client enhancement request lbdyck
@ 2024-05-13 17:56 ` Sean Allred
  2024-05-13 18:02   ` lbdyck
                     ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Sean Allred @ 2024-05-13 17:56 UTC (permalink / raw)
  To: lbdyck; +Cc: git

<lbdyck@gmail.com> writes:
> I would like to see the option to allow the git client to request the
> creation of a new empty git repository on the git server without
> having to open the web interface to the git server to define a new
> repository.
>
> Perhaps something like:  git server-repo public/private name

Is 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.

You might look into combining your preferred forge's CLI with git
aliases:

  - GitHub has 'gh': https://cli.github.com
  - GitLab has 'glab' https://docs.gitlab.com/ee/editor_extensions/gitlab_cli

so you could alias

    git config alias.server-repo '!gh repo create'

to get something of what you want.

I believe GitLab also has a feature where you can create repositories
just by pushing an existing repository to an empty project path.

-- 
Sean Allred

^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: git client enhancement request
  2024-05-13 17:56 ` Sean Allred
@ 2024-05-13 18:02   ` lbdyck
  2024-05-13 18:51   ` Junio C Hamano
  2024-05-13 19:09   ` rsbecker
  2 siblings, 0 replies; 8+ messages in thread
From: lbdyck @ 2024-05-13 18:02 UTC (permalink / raw)
  To: 'Sean Allred'; +Cc: git

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.

I know that for GitHub I can also do it with curl (haven't checked the others).

What I'm trying to do is to have a usable wrapper around git for the novice and not require other packages.

One 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.

I'm just asking if it can be done.

Thank you


Lionel B. Dyck <>< 
Github: https://github.com/lbdyck
System Z Enthusiasts Discord: https://discord.gg/sze

“Worry more about your character than your reputation. Character is what you are, reputation merely what others think you are.”   - - - John Wooden

-----Original Message-----
From: Sean Allred <allred.sean@gmail.com> 
Sent: Monday, May 13, 2024 12:56 PM
To: lbdyck@gmail.com
Cc: git@vger.kernel.org
Subject: Re: git client enhancement request

<lbdyck@gmail.com> writes:
> I would like to see the option to allow the git client to request the 
> creation of a new empty git repository on the git server without 
> having to open the web interface to the git server to define a new 
> repository.
>
> Perhaps something like:  git server-repo public/private name

Is 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.

You might look into combining your preferred forge's CLI with git
aliases:

  - GitHub has 'gh': https://cli.github.com
  - GitLab has 'glab' https://docs.gitlab.com/ee/editor_extensions/gitlab_cli

so you could alias

    git config alias.server-repo '!gh repo create'

to get something of what you want.

I believe GitLab also has a feature where you can create repositories just by pushing an existing repository to an empty project path.

--
Sean Allred


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: git client enhancement request
  2024-05-13 17:56 ` Sean Allred
  2024-05-13 18:02   ` lbdyck
@ 2024-05-13 18:51   ` Junio C Hamano
  2024-05-13 19:00     ` lbdyck
  2024-05-13 19:09   ` rsbecker
  2 siblings, 1 reply; 8+ messages in thread
From: Junio C Hamano @ 2024-05-13 18:51 UTC (permalink / raw)
  To: Sean Allred; +Cc: lbdyck, git

Sean Allred <allred.sean@gmail.com> writes:

> Is 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.

Not just "storage implementation", but some things are totally kept
outside the control of Git proper, including user and repository
management.  Creating, deleting, and modifying authentication and
authorization details of these things are outside the scope of Git,
and forges build on their competing designs.



^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: git client enhancement request
  2024-05-13 18:51   ` Junio C Hamano
@ 2024-05-13 19:00     ` lbdyck
  2024-05-13 21:19       ` brian m. carlson
  0 siblings, 1 reply; 8+ messages in thread
From: lbdyck @ 2024-05-13 19:00 UTC (permalink / raw)
  To: 'Junio C Hamano', 'Sean Allred'; +Cc: git

I have to interject here that the git client doing a push must be fully
authenticated which implies to me that all the information required is
available to do so and allow the server repository to be updated.


Lionel B. Dyck <>< 
Github: https://github.com/lbdyck
System Z Enthusiasts Discord: https://discord.gg/sze

“Worry more about your character than your reputation. Character is what you
are, reputation merely what others think you are.”   - - - John Wooden

-----Original Message-----
From: Junio C Hamano <gitster@pobox.com> 
Sent: Monday, May 13, 2024 1:51 PM
To: Sean Allred <allred.sean@gmail.com>
Cc: lbdyck@gmail.com; git@vger.kernel.org
Subject: Re: git client enhancement request

Sean Allred <allred.sean@gmail.com> writes:

> Is 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.

Not just "storage implementation", but some things are totally kept outside
the control of Git proper, including user and repository management.
Creating, deleting, and modifying authentication and authorization details
of these things are outside the scope of Git, and forges build on their
competing designs.




^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: git client enhancement request
  2024-05-13 17:56 ` Sean Allred
  2024-05-13 18:02   ` lbdyck
  2024-05-13 18:51   ` Junio C Hamano
@ 2024-05-13 19:09   ` rsbecker
  2024-05-13 19:11     ` lbdyck
  2 siblings, 1 reply; 8+ messages in thread
From: rsbecker @ 2024-05-13 19:09 UTC (permalink / raw)
  To: 'Sean Allred', lbdyck; +Cc: git

On Monday, May 13, 2024 1:56 PM, Sean Allred wrote:
><lbdyck@gmail.com> writes:
>> I would like to see the option to allow the git client to request the
>> creation of a new empty git repository on the git server without
>> having to open the web interface to the git server to define a new
>> repository.
>>
>> Perhaps something like:  git server-repo public/private name
>
>Is 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.
>
>You might look into combining your preferred forge's CLI with git
>aliases:
>
>  - GitHub has 'gh': https://cli.github.com
>  - GitLab has 'glab' https://docs.gitlab.com/ee/editor_extensions/gitlab_cli
>
>so you could alias
>
>    git config alias.server-repo '!gh repo create'
>
>to get something of what you want.
>
>I believe GitLab also has a feature where you can create repositories just by pushing
>an existing repository to an empty project path.

Please 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.
--Randall


^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: git client enhancement request
  2024-05-13 19:09   ` rsbecker
@ 2024-05-13 19:11     ` lbdyck
  0 siblings, 0 replies; 8+ messages in thread
From: lbdyck @ 2024-05-13 19:11 UTC (permalink / raw)
  To: rsbecker; +Cc: git

I understand that there is currently no function such as I'm requesting - but perhaps there could be.


Lionel B. Dyck <>< 
Github: https://github.com/lbdyck
System Z Enthusiasts Discord: https://discord.gg/sze

“Worry more about your character than your reputation. Character is what you are, reputation merely what others think you are.”   - - - John Wooden

-----Original Message-----
From: rsbecker@nexbridge.com <rsbecker@nexbridge.com> 
Sent: Monday, May 13, 2024 2:09 PM
To: 'Sean Allred' <allred.sean@gmail.com>; lbdyck@gmail.com
Cc: git@vger.kernel.org
Subject: RE: git client enhancement request

On Monday, May 13, 2024 1:56 PM, Sean Allred wrote:
><lbdyck@gmail.com> writes:
>> I would like to see the option to allow the git client to request the 
>> creation of a new empty git repository on the git server without 
>> having to open the web interface to the git server to define a new 
>> repository.
>>
>> Perhaps something like:  git server-repo public/private name
>
>Is 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.
>
>You might look into combining your preferred forge's CLI with git
>aliases:
>
>  - GitHub has 'gh': https://cli.github.com
>  - GitLab has 'glab' 
> https://docs.gitlab.com/ee/editor_extensions/gitlab_cli
>
>so you could alias
>
>    git config alias.server-repo '!gh repo create'
>
>to get something of what you want.
>
>I believe GitLab also has a feature where you can create repositories 
>just by pushing an existing repository to an empty project path.

Please 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.
--Randall



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: git client enhancement request
  2024-05-13 19:00     ` lbdyck
@ 2024-05-13 21:19       ` brian m. carlson
  0 siblings, 0 replies; 8+ messages in thread
From: brian m. carlson @ 2024-05-13 21:19 UTC (permalink / raw)
  To: lbdyck; +Cc: 'Junio C Hamano', 'Sean Allred', git

[-- Attachment #1: Type: text/plain, Size: 1887 bytes --]

On 2024-05-13 at 19:00:14, lbdyck@gmail.com wrote:
> I have to interject here that the git client doing a push must be fully
> authenticated which implies to me that all the information required is
> available to do so and allow the server repository to be updated.

First of all, the authentication required to _create_ a repository need
not be the same as to _read_ or _write_ a repository.  It might require
a totally different set of scopes or privileges to create a new
repository, which many users will have avoided giving to their
credentials for least-privilege reasons.

Second, there's no standard API to perform that functionality, and the
implementation varies widely on different forges.  There are also people
who don't use forges at all, or use tooling like gitolite[0] that handles
this differently.  Adding such functionality into the Git protocol
requires intertwining that functionality and the services that provide
it with the standard forge API, so it's likely to be very complex for
forges to implement using the same functionality as Git uses currently.

Third, we specifically try not to prioritize any individual piece of
software or project here.  Even if there are many common forges, we
won't ship tooling that's specific to GitHub, GitLab, or Bitbucket,
since that prioritizes those users over others.  Since there's no
standard API for this, we won't be adding any forge-specific
functionality to Git.

Even if we decided to implement a standard API for doing this, it
doesn't mean that forges would adopt it.  Many forges don't implement
`git-archive` over SSH, for example, since it's hard to cache versus
using HTTP.

[0] gitolite actually allows you to create repositories by just pushing
to them if you have permissions to do so in the configuration.
-- 
brian m. carlson (they/them or he/him)
Toronto, Ontario, CA

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 262 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2024-05-13 21:20 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-13 15:07 git client enhancement request lbdyck
2024-05-13 17:56 ` Sean Allred
2024-05-13 18:02   ` lbdyck
2024-05-13 18:51   ` Junio C Hamano
2024-05-13 19:00     ` lbdyck
2024-05-13 21:19       ` brian m. carlson
2024-05-13 19:09   ` rsbecker
2024-05-13 19:11     ` lbdyck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).