Status: Closed (View Workflow)
- Read natively from any branch of a Git repository hosted on Github
- Read from any branch of a Git repository
- Must maintain compatibility with Jenkins 2.7.1 and above
Desired user experience
- User experience is described in
- Mockup: https://projects.invisionapp.com/share/Q2A110KM9#/screens/219088047
jglick said there is beginnings of this in the scm-api but no implementations.
JENKINS-39355 API improvements based on real-world implementation and usage
- is blocking
JENKINS-36291 Pipeline Editor
- relates to
JENKINS-42080 API to write a single file to the repository
JENKINS-41966 Load and save Jenkinsfile to Github
JENKINS-33273 Optimize Jenkinsfile loading and branch detection
michaelneale that is tracked as
jglick I probably worded that poorly - the sha is required at some point or else you won't be able to save back any changes.
In theory this can be calculated, but github don't specify the 11 secret herbs and spices for how it is calculated.
All I found was this: http://stackoverflow.com/questions/39873507/how-to-calculate-sha-from-a-string-with-the-github-api-in-python
which uses a string involving "blob" and length (wut? why?) - which implies they may change how it is calculated, and that is why they return it on content load.
So it may be required on load (hopefully not though).
I have opened to get GitHub API returned data (sha included), https://issues.jenkins-ci.org/browse/JENKINS-42270. We definitely need sha and other elements returned by GitHub should be pretty much pass thru, otherwise it defeats the purpose of consumers who are really interested in getting content data specific to GitHub.
For now I am using 'git' way of computing sha, its a hack for now as who knows git changes it in future, better I get it from upstream library/github directly:
DigestUtils.sha1Hex("blob " + data.length() + "\0" + data)
Ah right - yes it is a git standard, of course. Of course sha1 is topical this week...
In any case, this ticket can be closed, I consider it done (now have seen it working). There is a follow on for github specific fields/properties which isn't needed right now.
hrmpw currently it is missing returning the content sha to allow saving back to github - Vivek is looking if we can calculate this to make it unnecessary, otherwise we won't be able to use it for the purposes of load/save just yet.