3

I am trying to use github api to create organization and repositories instead of creating them manually. I was looking at this site which talks about how to create repositories under a particular organization.

My github instance url is like this - https://github.host.com

And I want my repository to be like this after getting created -

https://github.host.com/Mobile/CustomerSystem

Here Mobile is the organization name and CustomerSystem is the repository name. In my case, I don't have Mobile organization name already created before as I want to create it through Github API along with repository as well.

So I am executing below curl url thinking it will create organization name and repository under them as well but everytime I am getting 404 Not Found -

curl -i -u david -d '{ "name": "CustomerSystem", "auto_init": true, "private": true, "gitignore_template": "nanoc" }' https://github.host.com/api/v3/orgs/Mobile/repos

Below is the result I am getting -

HTTP/1.1 404 Not Found
Server: GitHub.com
Date: Sat, 07 Feb 2015 20:43:32 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 102
Status: 404 Not Found
X-GitHub-Media-Type: github.v3
X-XSS-Protection: 1; mode=block
X-Frame-Options: deny
Content-Security-Policy: default-src 'none'
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
Access-Control-Allow-Origin: *
X-GitHub-Request-Id: fv4af52e-617c-4ga1-br2f-5cb51b1df3bb
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
X-Content-Type-Options: nosniff

{
  "message": "Not Found",
  "documentation_url": "https://developer.github.com/enterprise/2.0/v3"
}

Is there anything wrong I am doing?

It looks to me if organization name is already created, then my above CURL call works fine and the repository gets created fine without any issues. But if the organization name is not there already then it gives me 404 error message.

Is there any way to create organization name as well through github API? In some cases, I might have Organization name already created before, so I will create new repository under them but in some cases, I might not have Organization name already created before so I need to create Organization name through Github API.

4 Answers 4

5

Is there any way to create organization name as well through github API?

Currently it's not possible to create organizations nor user accounts via the GitHub API.

Sign up to request clarification or add additional context in comments.

Comments

2

GitHub doesn't privide a public api for that.

But say if you want to automate the organization creation process, you can inspect the network activity (press F12 in your browser and navigate to the network tab) on this page

https://github.com/account/organizations/new

to find out the private api for checking name availability and creating an organization, then export the request as curl command, put it in a shell script and parameterize the organization name.

I won't go into details or post my script here because the script is fairly to trivial to write and it will leak my browser cookie and session information

btw if you are using GitHub Enterprise then it's documented here

https://developer.github.com/enterprise/2.16/v3/enterprise-admin/orgs/ https://github.com/aws-quickstart/quickstart-github-enterprise/blob/master/scripts/adminuser_org_repo.sh

Update:

WARNING!!! Be careful not to create too many organizations. I currently have created over 500+ organizations with my personal account. Now each time I visit a page on github with my account logged in, it will either take seconds to load or doesn't load at all, showing the unicorn page like https://github.com/503.html. If I log out of my account, the page loads quickly again. I've pretty much given up using the github web ui.

Comments

1

You can check out how a wrapper like go-github proposes to manage an organization, reflecting the Organization API.

You can list, get or edit an organization, but apparently not create one.

6 Comments

Is it possible to rename existing organization name? . Please confirm.
@LearnHadoop It is possible through the GitHub API (developer.github.com/v3/orgs/#edit-an-organization). And go-gitHub has an Edit function (github.com/google/go-github/blob/master/github/…). So yes. You can change the name. Not its ID though.
Thanks .. i Could n't find the right field to rename organization . Any idea.
@LearnHadoop The field to use to rename an organization is... "name".
I tried with below payload. { "description": "GitHub, the company.", "name" :"Test-Org-100" } . No luck . Actually it is change in "Organization display name" in GIThub..Not Repo name..
|
0

You could try something like this

curl --include -u victor-raul-hernandez-contreras:your-personal-access-token-here -X POST https://github.hpe.com/api/v3/admin/organizations --data '{"login":"loko200","profile_name":"lokosoft, inc.", "admin":"victor-raul-hernandez-contreras"}'

It worked for me at github enterprise.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.