-
Improvement
-
Resolution: Fixed
-
Minor
-
None
-
-
pannonian, iapetus
I would like to request two additions to the Github APIs.
When listing organizations via /jenkins/scm/github/organizations/?credentialId=github the response is currently:
[{ "_class": "io.jenkins.blueocean.blueocean_github_pipeline.GithubOrganization", "_links": { "repositories": { "_class": "io.jenkins.blueocean.rest.hal.Link", "href": "/organizations/jenkins/scm/github/organizations/jenkinsci/repositories/" }, "self": { "_class": "io.jenkins.blueocean.rest.hal.Link", "href": "/organizations/jenkins/scm/github/organizations/jenkinsci/" } }, "avatar": "https://avatars.githubusercontent.com/u/107424?v=3&s=50", "jenkinsOrganizationPipeline": false, "name": "jenkinsci" }, { "_class": "io.jenkins.blueocean.blueocean_github_pipeline.GithubUserOrganization", "_links": { "repositories": { "_class": "io.jenkins.blueocean.rest.hal.Link", "href": "/organizations/jenkins/scm/github/organizations/cliffmeyers/repositories/" }, "self": { "_class": "io.jenkins.blueocean.rest.hal.Link", "href": "/organizations/jenkins/scm/github/organizations/cliffmeyers/" } }, "avatar": "https://avatars.githubusercontent.com/u/143466?v=3&s=50", "jenkinsOrganizationPipeline": true, "name": "cliffmeyers" }, { "_class": "io.jenkins.blueocean.blueocean_github_pipeline.GithubOrganization", "_links": { "repositories": { "_class": "io.jenkins.blueocean.rest.hal.Link", "href": "/organizations/jenkins/scm/github/organizations/cloudbees/repositories/" }, "self": { "_class": "io.jenkins.blueocean.rest.hal.Link", "href": "/organizations/jenkins/scm/github/organizations/cloudbees/" } }, "avatar": "https://avatars.githubusercontent.com/u/235526?v=3&s=50", "jenkinsOrganizationPipeline": false, "name": "cloudbees" }]
1. For organizations where jenkinsOrganizationPipeline is true, could we add an additional field that indicates whether "auto discover" is enabled? This is equivalent to a Github org folder that was created without specifying any repository names (i.e. empty "repoNames" array)
2. For organizations where jenkinsOrganizationPipeline is true, could we also add a HAL link to the Jenkins org folder? This will make REST API update calls much easier.
When listing repositories via /jenkins/scm/github/organizations/cliffmeyers/repositories/?credentialId=github&pageNumber=1&pageSize=100 the response is currently:
{ "_class": "io.jenkins.blueocean.blueocean_github_pipeline.GithubRespositoryContainer", "_links": { "self": { "_class": "io.jenkins.blueocean.rest.hal.Link", "href": "/organizations/jenkins/scm/github/organizations/cliffmeyers/repositories/" } }, "repositories": { "_class": "io.jenkins.blueocean.blueocean_github_pipeline.GithubRepositories", "_links": { "self": { "_class": "io.jenkins.blueocean.rest.hal.Link", "href": "/organizations/jenkins/scm/github/organizations/cliffmeyers/repositories/repositories/" } }, "items": [{ "_class": "io.jenkins.blueocean.blueocean_github_pipeline.GithubRepository", "_links": { "self": { "_class": "io.jenkins.blueocean.rest.hal.Link", "href": "/organizations/jenkins/scm/github/organizations/cliffmeyers/repositories/repositories/blog-examples/" } }, "defaultBranch": "master", "description": "Sample code from stuff on my blog", "name": "blog-examples", "permissions": { "admin": true, "push": true, "pull": true }, "private": false, "fullName": "cliffmeyers/blog-examples" }, { "_class": "io.jenkins.blueocean.blueocean_github_pipeline.GithubRepository", "_links": { "self": { "_class": "io.jenkins.blueocean.rest.hal.Link", "href": "/organizations/jenkins/scm/github/organizations/cliffmeyers/repositories/repositories/blueocean-plugin/" } }, "defaultBranch": "master", "description": "Blue Ocean UI app", "name": "blueocean-plugin", "permissions": { "admin": true, "push": true, "pull": true }, "private": false, "fullName": "cliffmeyers/blueocean-plugin" }, { "_class": "io.jenkins.blueocean.blueocean_github_pipeline.GithubRepository", "_links": { "self": { "_class": "io.jenkins.blueocean.rest.hal.Link", "href": "/organizations/jenkins/scm/github/organizations/cliffmeyers/repositories/repositories/frontend-maven-plugin/" } }, "defaultBranch": "master", "description": "\"Maven-node-grunt-gulp-npm-node-plugin to end all maven-node-grunt-gulp-npm-plugins.\" A Maven plugin that downloads/installs Node and NPM locally, runs NPM install, Grunt, Gulp and/or Karma.", "name": "frontend-maven-plugin", "permissions": { "admin": true, "push": true, "pull": true }, "private": false, "fullName": "cliffmeyers/frontend-maven-plugin" }, { "_class": "io.jenkins.blueocean.blueocean_github_pipeline.GithubRepository", "_links": { "self": { "_class": "io.jenkins.blueocean.rest.hal.Link", "href": "/organizations/jenkins/scm/github/organizations/cliffmeyers/repositories/repositories/java-utils/" } }, "defaultBranch": "master", "description": "Utilities for Java", "name": "java-utils", "permissions": { "admin": true, "push": true, "pull": true }, "private": false, "fullName": "cliffmeyers/java-utils" }], "lastPage": 3, "nextPage": 2, "pageSize": 4 } }
3. Could we add a field to the repository object that indicates whether a pipeline has already been created for it? This is important in the "update" scenario to avoid the user trying to create a repo that was already created.
- blocks
-
JENKINS-38598 User can create pipeline from Github repository
-
- Resolved
-
Yes that is right. And the assumption is that the name of the org is the name of the top level org folder item so that the UI knows what to look up to fetch what repos are setup etc.