Ansible is a radically simple IT orchestration engine that makes your applications and systems easier to deploy. Avoid writing scripts or custom code to deploy and update your applications— automate in a language that approaches plain English, using SSH, with no agents to install on remote systems.
Jenkins X provides automated CI+CD for Kubernetes with Preview Environments on Pull Requests using Jenkins, Knative Build, Prow, Skaffold and Helm
A static site for the Jenkins automation server
Fork this template for the 100 days journal - to keep yourself accountable (multiple languages available)
Automatic tiling window manager for macOS à la xmonad.
:gem: A fast, open source text processor and publishing toolchain, written in Ruby, for converting AsciiDoc content to HTML5, DocBook 5 (or 4.5) and other formats.
bitwiseman/asciidoctor-jenkins-extensions 0
Extensions to asciidoctor syntax for Jenkins-related materials
:globe_with_meridians: Asciidoctor project site. Composed in AsciiDoc. Baked with Awestruct.
Improves node.js stacktraces and makes it easier to handle errors
Pull request review commenthub4j/github-api
Feat/credential provider refresh
this.apiUrl = apiUrl; this.connector = connector; - if (oauthAccessToken != null) {- encodedAuthorization = "token " + oauthAccessToken;+ // Prefer credential configuration via provider+ if (credentialProvider != null) {+ this.credentialProvider = credentialProvider; } else {- if (jwtToken != null) {- encodedAuthorization = "Bearer " + jwtToken;- } else if (password != null) {- String authorization = (login + ':' + password);- String charsetName = StandardCharsets.UTF_8.name();- encodedAuthorization = "Basic "- + Base64.getEncoder().encodeToString(authorization.getBytes(charsetName));- } else {// anonymous access- encodedAuthorization = null;+ if (oauthAccessToken != null) {+ this.credentialProvider = ImmutableCredentialProvider.fromOauthToken(oauthAccessToken);+ } else {+ if (jwtToken != null) {+ this.credentialProvider = ImmutableCredentialProvider.fromJwtToken(jwtToken);+ } else if (password != null) {+ this.credentialProvider = ImmutableCredentialProvider.fromLoginAndPassword(login, password);+ } else {// anonymous access+ this.credentialProvider = CredentialProvider.ANONYMOUS;+ } } } this.rateLimitHandler = rateLimitHandler; this.abuseLimitHandler = abuseLimitHandler; this.rateLimitChecker = rateLimitChecker; - if (login == null && encodedAuthorization != null && jwtToken == null) {- GHMyself myself = fetch(GHMyself.class, "/user");- login = myself.getLogin();- if (myselfConsumer != null) {- myselfConsumer.accept(myself);+ this.login = getCurrentUser(login, jwtToken, myselfConsumer);+ }++ @Nullable+ private String getCurrentUser(String login, String jwtToken, Consumer<GHMyself> myselfConsumer) throws IOException {+ if (login == null && this.credentialProvider.getEncodedAuthorization() != null && jwtToken == null) {+ try {+ GHMyself myself = fetch(GHMyself.class, "/user");+ if (myselfConsumer != null) {+ myselfConsumer.accept(myself);+ }+ return myself.getLogin();+ } catch (IOException e) {
Why add this try-catch? It changes the user visible behavior.
comment created time in a month
Pull request review commenthub4j/github-api
Feat/credential provider refresh
public GitHubBuilder withOAuthToken(String oauthToken, String user) { return this; } + public GitHubBuilder withCredentialProvider(final CredentialProvider credentialProvider) {
I'd like to see all the other credential methods call this one.
For example:
public GitHubBuilder withOAuthToken(String oauthToken, String user) {
withCredentialProvider(ImmutableCredentialProvider.fromOauthToken(oauthToken));
this.user = user;
return this;
}
That would let us remove the oauthToken and password instance fields from the class (and down the call chain).
comment created time in a month
pull request commenthub4j/github-api
Feat/credential provider refresh
@MarcosCela
This is looking very good. Having token generation handled outside of the GitHub class is great.
comment created time in a month
pull request commenthub4j/github-api
Feat/credential provider refresh
I think that it's better to let users chose what kind of JWT libraries they use.
Are there a lot of different JWT token libraries?
If there is a specific and clear advantage to not generating the JWT token inside this library it is completely fine to leave that to the user. But as I understand it, the only reason users get JWT tokens is to immediately turn around and get GitHub App credential. If that is the case, why force them to think about it? With the way you've implemented it, looks like you could do both. Allow people to have control AND provide a default implementation in the extras package the people could use if they don't need that control.
comment created time in a month
pull request commenthub4j/github-api
Feat/credential provider refresh
@MarcosCela
Adding dependencies - you could follow the pattern of putting an implementation of the CredentialsProvider in the extras package and make JWT an optional dependency. That would let users choose to use that provider, letting this project provide a tested stable implementation, while also not forcing people to take dependencies they don't need.
comment created time in a month
pull request commentjenkinsci/github-branch-source-plugin
[JENKINS-63711] Cleanup GitHub App Credential cache folders
I'm not sure how to go about testing this - the behavior was (obviously) untested before this change.
comment created time in a month
push eventjenkinsci/bitbucket-branch-source-plugin
commit sha f4d4fad6d1343cb5c3a13edd4954d70bf744ab1d
[JENKINS-48828] Fix mistaken doFillRepositoryItems AccessDenied (#377)
push time in a month
PR merged jenkinsci/bitbucket-branch-source-plugin
There was an error being throw when viewing the multibranch pipeline children of a Bitbucket Team job.
The error was being thrown from doFillRepositoryItems:
https://github.com/jenkinsci/bitbucket-branch-source-plugin/blob/24d9487c9dcdc6e5f00f9c891b162da3bba3cb3c/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/BitbucketSCMSource.java#L1191-L1212
The equivalent method in github-branch-source is quite a bit different:
https://github.com/jenkinsci/github-branch-source-plugin/blob/490693b59b83a4a82b0b94dd1ba2c7b5870be005/src/main/java/org/jenkinsci/plugins/github_branch_source/GitHubSCMSource.java#L2161-L2180
This change makes the method here look like the method in github-branch-source.
Tested manually with and without this change and it appears to work.
Your checklist for this pull request
- [x] Make sure you are requesting to pull a topic/feature/bugfix branch (right side) and not your master branch!
- [x] Ensure that the pull request title represents the desired changelog entry
- [x] Please describe what you did
- [x] Link to relevant issues in GitHub or in Jenkins JIRA
- [x] Link to relevant pull requests, esp. upstream and downstream changes
- [ ] Did you provide a test-case? That demonstrates feature works or fixes the issue.
<!--
Put an x into the [ ] to show you have filled the information below
Describe your pull request below
-->
pr closed time in a month
delete branch bitwiseman/blueocean-display-url-plugin
delete branch : task/branch-api-2.6.0
delete time in a month
push eventjenkinsci/blueocean-display-url-plugin
commit sha 8b480f2e9d9efddd7a6c8784ffd24d29ab9fddd0
Update tests to handle branch-api v.2.6.0 (#79) * Update Jenkinsfile * Update tests to handle branch-api v.2.6.0 The latest branch-api honors quiet period. This means some test operations need to wait longer before checking. * Add more waits * Update Jenkinsfile Co-authored-by: Devin Nusbaum <[email protected]> Co-authored-by: Devin Nusbaum <[email protected]>
push time in a month
PR merged jenkinsci/blueocean-display-url-plugin
The latest branch-api honors quiet period. This means some test operations need to wait longer before checking.
pr closed time in a month
PR closed jenkinsci/pipeline-model-definition-plugin
Increment the Jackson version
pr closed time in a month
pull request commentjenkinsci/bitbucket-branch-source-plugin
Oh, what does this trait look like in the UI, can you give a screenshot?
comment created time in a month
Pull request review commentjenkinsci/bitbucket-branch-source-plugin
+/*+ * The MIT License+ *+ * Copyright (c) 2017, CloudBees, Inc.+ *+ * Permission is hereby granted, free of charge, to any person obtaining a copy+ * of this software and associated documentation files (the "Software"), to deal+ * in the Software without restriction, including without limitation the rights+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+ * copies of the Software, and to permit persons to whom the Software is+ * furnished to do so, subject to the following conditions:+ *+ * The above copyright notice and this permission notice shall be included in+ * all copies or substantial portions of the Software.+ *+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN+ * THE SOFTWARE.+ */+package com.cloudbees.jenkins.plugins.bitbucket;++import com.cloudbees.jenkins.plugins.bitbucket.hooks.WebhookConfiguration;+import edu.umd.cs.findbugs.annotations.NonNull;+import hudson.Extension;+import jenkins.scm.api.SCMSource;+import jenkins.scm.api.trait.SCMSourceContext;+import jenkins.scm.api.trait.SCMSourceTrait;+import jenkins.scm.api.trait.SCMSourceTraitDescriptor;+import org.jenkinsci.Symbol;+import org.kohsuke.stapler.DataBoundConstructor;++/**+ * A {@link SCMSourceTrait} for {@link BitbucketSCMSource} that sets the committersToIgnore+ * setting in {@link WebhookConfiguration}.+ *+ * @since 2.10.0+ */+public class BitbucketBuildStatusNotificationsTrait extends SCMSourceTrait {++ /**+ * Should unstable builds be communicated as success to Bitbucket+ */+ @NonNull+ private final boolean isUnstableBuildSuccess;++ /**+ * Constructor.+ *+ * @param isUnstableBuildSuccess should unstable builds be communicated as success to Bitbucket+ */+ @DataBoundConstructor+ public BitbucketBuildStatusNotificationsTrait(@NonNull boolean isUnstableBuildSuccess) {
If you only want this trait to control "Send Success notification for Unstable", that name should specifically say that.
Otherwise, it should be more generic to allow for additional values later.
Similarly, if you only plan to have one value having it be part of the constructor is fine. If you think there might be additional values later, making the constructor empty and using a setter would be better.
public BitbucketBuildStatusNotificationsTrait() {
comment created time in a month
Pull request review commentjenkinsci/bitbucket-branch-source-plugin
public final WebhookConfiguration webhookConfiguration() { } /**- * Returns {@code true} if notifications should be disabled.+ * Returns {@code true} if unstable builds should be passed as successful to Bitbucket. *- * @return {@code true} if notifications should be disabled.+ * @return {@code true} if unstable builds should be passed as successful to Bitbucket.
* @return {@code true} if notifications should be disabled.
comment created time in a month
Pull request review commentjenkinsci/bitbucket-branch-source-plugin
*/ private boolean notificationsDisabled; + /**+ * {@code true} if unstable builds should be considered as successful by Bitbucket.+ */+ private boolean isUnstableBuildSuccess;
The name should make it clear that it is setting the notification sent, not changing the actual result of the run. I'm not sure of the best way to say it.
private boolean notifyUnstableBuildAsSuccessful;
Or
private boolean notifySuccessfulForUnstableBuild;
Or
private boolean sendSuccessNotificationForUnstableBuild
comment created time in a month
Pull request review commentjenkinsci/bitbucket-branch-source-plugin
+/*+ * The MIT License+ *+ * Copyright (c) 2017, CloudBees, Inc.+ *+ * Permission is hereby granted, free of charge, to any person obtaining a copy+ * of this software and associated documentation files (the "Software"), to deal+ * in the Software without restriction, including without limitation the rights+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+ * copies of the Software, and to permit persons to whom the Software is+ * furnished to do so, subject to the following conditions:+ *+ * The above copyright notice and this permission notice shall be included in+ * all copies or substantial portions of the Software.+ *+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN+ * THE SOFTWARE.+ */+package com.cloudbees.jenkins.plugins.bitbucket;++import com.cloudbees.jenkins.plugins.bitbucket.hooks.WebhookConfiguration;+import edu.umd.cs.findbugs.annotations.NonNull;+import hudson.Extension;+import jenkins.scm.api.SCMSource;+import jenkins.scm.api.trait.SCMSourceContext;+import jenkins.scm.api.trait.SCMSourceTrait;+import jenkins.scm.api.trait.SCMSourceTraitDescriptor;+import org.jenkinsci.Symbol;+import org.kohsuke.stapler.DataBoundConstructor;++/**+ * A {@link SCMSourceTrait} for {@link BitbucketSCMSource} that sets the committersToIgnore+ * setting in {@link WebhookConfiguration}.+ *+ * @since 2.10.0+ */+public class BitbucketBuildStatusNotificationsTrait extends SCMSourceTrait {++ /**+ * Should unstable builds be communicated as success to Bitbucket+ */+ @NonNull+ private final boolean isUnstableBuildSuccess;++ /**+ * Constructor.+ *+ * @param isUnstableBuildSuccess should unstable builds be communicated as success to Bitbucket+ */+ @DataBoundConstructor+ public BitbucketBuildStatusNotificationsTrait(@NonNull boolean isUnstableBuildSuccess) {+ this.isUnstableBuildSuccess = isUnstableBuildSuccess;+ }++ /**+ * @return if unstable builds will be communicated as successful+ */+ public boolean isUnstableSuccess() {+ return this.isUnstableBuildSuccess;+ }++ /**+ * {@inheritDoc}+ */+ @Override+ protected void decorateContext(SCMSourceContext<?, ?> context) {+ ((BitbucketSCMSourceContext) context).withIsUnstableBuildSuccess(isUnstableSuccess());+ }++ /**+ * Our constructor.+ */+ @Symbol("bitbucketBuildStatusConfiguration")
@Symbol("bitbucketNotifications")
comment created time in a month
Pull request review commentjenkinsci/bitbucket-branch-source-plugin
public final WebhookConfiguration webhookConfiguration() { } /**- * Returns {@code true} if notifications should be disabled.+ * Returns {@code true} if unstable builds should be passed as successful to Bitbucket.
* Returns {@code true} if notifications should be disabled.
comment created time in a month
Pull request review commentjenkinsci/bitbucket-branch-source-plugin
private static void createStatus(@NonNull Run<?, ?> build, @NonNull TaskListener String buildDescription = build.getDescription(); String statusDescription; String state;+ final String successful_state = "SUCCESSFUL";+ final String failed_state = "FAILED"; if (Result.SUCCESS.equals(result)) { statusDescription = StringUtils.defaultIfBlank(buildDescription, "This commit looks good.");- state = "SUCCESSFUL";+ state = successful_state; } else if (Result.UNSTABLE.equals(result)) { statusDescription = StringUtils.defaultIfBlank(buildDescription, "This commit has test failures.");- state = "FAILED";+ final SCMSource s = SCMSource.SourceByItem.findSource(build.getParent());+ if (!(s instanceof BitbucketSCMSource)) {+ return;+ }
This should probably be at the top of the method. None of these should run on non-bitbucket sources, right?
comment created time in a month
push eventbitwiseman/github-branch-source-plugin
commit sha 357963903ed69ae3565cc3c69496efd00dcf466c
Bump wiremock-jre8-standalone from 2.27.1 to 2.27.2 Bumps [wiremock-jre8-standalone](https://github.com/tomakehurst/wiremock) from 2.27.1 to 2.27.2. - [Release notes](https://github.com/tomakehurst/wiremock/releases) - [Commits](https://github.com/tomakehurst/wiremock/compare/2.27.1...2.27.2) Signed-off-by: dependabot[bot] <[email protected]>
commit sha f6fb3021d9e5a7fa242c1cadd22096fbf145a67c
Bump bom-2.176.x from 11 to 12 Bumps [bom-2.176.x](https://github.com/jenkinsci/pom) from 11 to 12. - [Release notes](https://github.com/jenkinsci/pom/releases) - [Changelog](https://github.com/jenkinsci/pom/blob/master/CHANGELOG.md) - [Commits](https://github.com/jenkinsci/pom/commits) Signed-off-by: dependabot[bot] <[email protected]>
commit sha 5f28fba49e70673b5a6ce4412e968c0c0dae8c97
Merge pull request #339 from jenkinsci/dependabot/maven/com.github.tomakehurst-wiremock-jre8-standalone-2.27.2 Bump wiremock-jre8-standalone from 2.27.1 to 2.27.2
commit sha 9f0c6e3a538f0c6bb6a51297ff8fbfd61347c9b4
Merge pull request #340 from jenkinsci/dependabot/maven/io.jenkins.tools.bom-bom-2.176.x-12 Bump bom-2.176.x from 11 to 12
commit sha c7ff4b874bc15d6c625174fb6ebee00c6a37e747
Merge branch 'master' into cleanup-cache-folders
push time in a month
push eventbitwiseman/blueocean-display-url-plugin
commit sha 77d1d8eb058becc5ad9eb9829d9ccb12afe09dbf
Update Jenkinsfile Co-authored-by: Devin Nusbaum <[email protected]>
push time in a month
PR opened jenkinsci/jackson2-api-plugin
jackson-datatype-json-org is used by pipeline-model-definition-plugin among others.
pr created time in a month
push eventbitwiseman/jackson2-api-plugin
commit sha 5b75a9f7450f9cde9a7c4e5090ac2614124e4220
Add jackson-datatype-json-org jackson-datatype-json-org is used by pipeline-model-definition-plugin among others.
push time in a month
PR closed jenkinsci/github-branch-source-plugin
Description
Before GitHub App Credentials, cache folders not being cleaned up was okay. It was sometimes even an advantage since cached values that were extremely stable didn't have to be reloaded even across connection instances. However, with GitHub App Credentials the password (token) is regenerated on a regular basis, resulting in new connections with new caches.
This change cleans up cache folders when GitHub App connections are no longer used. Behavior for non-GitHubAppCredential connections is unchanged to preserve the advantages of the existing behavior for standard credentials.
See JENKINS-63711 for further information.
Submitter checklist
- [x] Link to JIRA ticket in description, if appropriate.
- [x] Change is code complete and matches issue description
- [ ] Automated tests have been added to exercise the changes
- [ ] Reviewer's manual test instructions provided in PR description. See Reviewer's first task below.
Reviewer checklist
- [ ] Run the changes and verify that the change matches the issue description
- [ ] Reviewed the code
- [ ] Verified that the appropriate tests have been written or valid explanation given
Documentation changes
- [ ] Link to jenkins.io PR, or an explanation for why no doc changes are needed
Users/aliases to notify
pr closed time in a month
push eventchriskilding/pipeline-model-definition-plugin
commit sha f3ed2bb9d9f36bf1fe06c3e67b38d92b5089b095
Update pom.xml
push time in a month
push eventbitwiseman/pipeline-model-definition-plugin
commit sha c47bb5c81e5e7d7b99e682c2ee9bfcac690cb79f
JENKINS-62808 Fix tests when using tables to divs
push time in a month
push eventjenkinsci/blueocean-plugin
commit sha 852137885a391808714648df45ea73321f3a9e46
limit fetch call
push time in a month
PR merged jenkinsci/blueocean-plugin
Description
See JENKINS-63698.
Submitter checklist
- [x] Link to JIRA ticket in description, if appropriate.
- [x] Change is code complete and matches issue description
- [ ] Appropriate unit or acceptance tests or explanation to why this change has no tests
- [ ] Reviewer's manual test instructions provided in PR description. See Reviewer's first task below.
Reviewer checklist
- [ ] Run the changes and verified the change matches the issue description
- [ ] Reviewed the code
- [ ] Verified that the appropriate tests have been written or valid explanation given
pr closed time in a month
push eventbitwiseman/blueocean-display-url-plugin
commit sha 9e78f23b39bd03b079088c67adb46a51b7cb61db
Add more waits
push time in a month
push eventbitwiseman/blueocean-display-url-plugin
commit sha 17e5d4b5aaaafba21bcd198dcc6617312bc8547b
Update Jenkinsfile
commit sha 880bf6719f68db5d946d44876dd50d5d09f566b2
Update tests to handle branch-api v.2.6.0 The latest branch-api honors quiet period. This means some test operations need to wait longer before checking.
push time in a month
PR closed jenkinsci/blueocean-display-url-plugin
pr closed time in a month
issue closedhub4j/github-api
Expose ETag and Status when getting file contents
Use-case
In HubSpot we use the github-api and are very happy with the implementation. To reduce the load the to requests sent to GitHub and GitHub:Enterprise contents API we would like to use the ETag to store contents of files in a persistent key-value store where the key is contains the ETag and the value is the contents of the file. This is meant to be an implementation that extends beyond the standard 60 seconds HTTP cache provided by OkHttp.
So, when we want to get the contents of a file we will add the ETag to the Request headers. In the response, if the ETag matches, we will get a 304 and empty file contents. If not - we will get the response as usual.
Request
Would it be possible to somehow expose ETag when getting file contents. Perhaps even in the GHContent object itself? Or maybe have a method dedicated to returning a completely new object that contains both the current GHContent, the status code and a field for the ETag? With that said, would it also be possible to have an ETag parameter be added to a method so that the ETag can be included in Request headers?
closed time in a month
AlexShtarbevissue commenthub4j/github-api
Expose ETag and Status when getting file contents
@AlexShtarbev I'm going to close this for now, you are welcome to reopen if needed.
comment created time in a month
pull request commenthub4j/github-api
user, push, pull event extensions
@seregamorph Did see this? https://github.com/hub4j/github-api/pull/944/files#r494672997 You can change it, we can discuss further in the PR, or you can split that part of the change into another PR and we can continue discussion there. Up to you. Thanks for contributing!
comment created time in a month
pull request commentjenkinsci/blueocean-plugin
Thanks @cliffmeyers @eplodn @jglick . I'll merge this change and add a task to tombstone this plugin.
comment created time in a month
PR closed jenkinsci/blueocean-plugin
Description
See JENKINS-63698.
Submitter checklist
- [x] Link to JIRA ticket in description, if appropriate.
- [x] Change is code complete and matches issue description
- [ ] Appropriate unit or acceptance tests or explanation to why this change has no tests
- [ ] Reviewer's manual test instructions provided in PR description. See Reviewer's first task below.
Reviewer checklist
- [ ] Run the changes and verified the change matches the issue description
- [ ] Reviewed the code
- [ ] Verified that the appropriate tests have been written or valid explanation given
pr closed time in a month
push eventbitwiseman/pipeline-model-definition-plugin
commit sha 781e8628335e74b8f41a6835191c674d1487eb1c
[JENKINS-34987] - Allow better script splitting in more scenarios Automatically splitting the pipeline script into multiple smaller parts makes it less like for the resulting compiled class throw "Method code too large!" or "Class too large" exceptions during the class file generation phase of compilation. Locally declared variables are one of scenarios that are incompatible with the more effective function-grouped script splitting. Before this change, any statements outside the pipeline directive would cause the plugin to switch to using the less effect closure-only script splitting. After this change, the plugin specifically detects the presence of locally declared variables and ignores other non-problematic statements such as method/function declaration. By default, the script splitting will also fail instead of switching to the less effecting splitting style. The user may switch back to allowing locally declared variables using the SCRIPT_SPLITTING_ALLOW_LOCAL_VARIABLES setting.
push time in a month
push eventchriskilding/pipeline-model-definition-plugin
commit sha c6024dff9d7dd080c4051f03b9b53ff28c1c8dca
Use Jackson 2.11.0
commit sha b8ec059d0779b038f7f2296bac5efca1dc76f389
Update pom.xml
push time in a month
Pull request review commenthub4j/github-api
Feat/credential provider refresh
this.connector = connector; if (oauthAccessToken != null) {- encodedAuthorization = "token " + oauthAccessToken;+ this.credentialProvider = new ImmutableCredentialProvider(String.format("token %s", oauthAccessToken));
I would also suggest moving all these into GitHubBuilder and have a method GitHubBuilder.withCredentialProvider(CredentialProvider) which can be internal for now. Then this constructor just sets this.credentialProvider = credentialProvider pass from the builder.
comment created time in a month
Pull request review commenthub4j/github-api
Feat/credential provider refresh
this.connector = connector; if (oauthAccessToken != null) {- encodedAuthorization = "token " + oauthAccessToken;+ this.credentialProvider = new ImmutableCredentialProvider(String.format("token %s", oauthAccessToken)); } else { if (jwtToken != null) {- encodedAuthorization = "Bearer " + jwtToken;+ this.credentialProvider = new ImmutableCredentialProvider(String.format("Bearer %s", jwtToken)); } else if (password != null) { String authorization = (login + ':' + password); String charsetName = StandardCharsets.UTF_8.name();- encodedAuthorization = "Basic "+ String encodedAuthorization = "Basic " + Base64.getEncoder().encodeToString(authorization.getBytes(charsetName));+ this.credentialProvider = new ImmutableCredentialProvider(encodedAuthorization); } else {// anonymous access- encodedAuthorization = null;+ this.credentialProvider = new ImmutableCredentialProvider(null);
this.credentialProvider = ImmutableCredentialProvider.ANONYMOUS;
comment created time in a month
Pull request review commenthub4j/github-api
Feat/credential provider refresh
this.connector = connector; if (oauthAccessToken != null) {- encodedAuthorization = "token " + oauthAccessToken;+ this.credentialProvider = new ImmutableCredentialProvider(String.format("token %s", oauthAccessToken)); } else { if (jwtToken != null) {- encodedAuthorization = "Bearer " + jwtToken;+ this.credentialProvider = new ImmutableCredentialProvider(String.format("Bearer %s", jwtToken)); } else if (password != null) { String authorization = (login + ':' + password); String charsetName = StandardCharsets.UTF_8.name();- encodedAuthorization = "Basic "+ String encodedAuthorization = "Basic " + Base64.getEncoder().encodeToString(authorization.getBytes(charsetName));+ this.credentialProvider = new ImmutableCredentialProvider(encodedAuthorization);
this.credentialProvider = ImmutableCredentialProvider.fromLoginAndPassword(login, password);
comment created time in a month
Pull request review commenthub4j/github-api
Feat/credential provider refresh
this.connector = connector; if (oauthAccessToken != null) {- encodedAuthorization = "token " + oauthAccessToken;+ this.credentialProvider = new ImmutableCredentialProvider(String.format("token %s", oauthAccessToken));
this.credentialProvider = ImmutableCredentialProvider.fromOAuthToken(String.format("token %s", oauthAccessToken));
comment created time in a month
push eventhub4j/github-api
commit sha 0894c8007c12aa3ee6a72f4b4409af45683c03d4
pullRequestReview.review.htmlUrl
commit sha f1ca0b5417c853e8b2ca3bb07ae002535594afb9
Merge pull request #946 from seregamorph/feature/pull-request-review-html-url pullRequestReview.review.htmlUrl
push time in a month
PR merged hub4j/github-api
Description
Webhook event GHPullRequestReviewEvent: pull_request_review has review object in it which declares html_url field:
{
"action": "submitted",
"review": {
"id": 496232606,
"node_id": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3NDk2MjMyNjA2",
"user": {
"login": "schernov-xo",
"id": 41187778,
"node_id": "MDQ6VXNlcjQxMTg3Nzc4",
"avatar_url": "https://avatars3.githubusercontent.com/u/41187778?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/schernov-xo",
"html_url": "https://github.com/schernov-xo",
"followers_url": "https://api.github.com/users/schernov-xo/followers",
"following_url": "https://api.github.com/users/schernov-xo/following{/other_user}",
"gists_url": "https://api.github.com/users/schernov-xo/gists{/gist_id}",
"starred_url": "https://api.github.com/users/schernov-xo/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/schernov-xo/subscriptions",
"organizations_url": "https://api.github.com/users/schernov-xo/orgs",
"repos_url": "https://api.github.com/users/schernov-xo/repos",
"events_url": "https://api.github.com/users/schernov-xo/events{/privacy}",
"received_events_url": "https://api.github.com/users/schernov-xo/received_events",
"type": "User",
"site_admin": false
},
"body": "",
"commit_id": "c3acd4733a645e1c6ae3b6da83068ae12099f616",
"submitted_at": "2020-09-25T09:52:57Z",
"state": "commented",
"html_url": "https://github.com/trilogy-group/northplains-telescope-api/pull/21#pullrequestreview-496232606",
"pull_request_url": "https://api.github.com/repos/trilogy-group/northplains-telescope-api/pulls/21",
...
Old implementation ignores it (always null).
Proof: see the test, event existing test payload pull_request_review.json has it (ignored in test).
Before submitting a PR:
We love getting PRs, but we hate asking people for the same basic changes every time.
- [ ] Push your changes to a branch other than
master. Create your PR from that branch. - [ ] Add JavaDocs and other comments
- [ ] Write tests that run and pass in CI. See CONTRIBUTING.md for details on how to capture snapshot data.
- [ ] Run
mvn clean compilelocally. This may reformat your code, commit those changes. - [ ] Run
mvn -D enable-ci clean install sitelocally. If this command doesn't succeed, your change will not pass CI.
When creating a PR:
- [ ] Fill in the "Description" above.
- [ ] Enable "Allow edits from maintainers".
pr closed time in a month
Pull request review commenthub4j/github-api
pullRequestReview.review.htmlUrl
private String commit_id; private GHPullRequestReviewState state; private String submitted_at;+ private String html_url;
@seregamorph "standardize to java naming" - agreed. It just hasn't been a priority. Especially since we don't have sufficient code coverage to have high confidence in tests ensuring it is done right. PR welcome.
comment created time in a month
push eventchriskilding/pipeline-model-definition-plugin
commit sha 475d8b7561842ea64a3e635680e5031523ec5764
Merge branch 'master' into bump-jackson-version
push time in a month
PR closed jenkinsci/pipeline-model-definition-plugin
Increment the Jackson version
pr closed time in a month
PR closed jenkinsci/bitbucket-branch-source-plugin
There was an error being throw when viewing the multibranch pipeline children of a Bitbucket Team job.
The error was being thrown from doFillRepositoryItems:
https://github.com/jenkinsci/bitbucket-branch-source-plugin/blob/24d9487c9dcdc6e5f00f9c891b162da3bba3cb3c/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/BitbucketSCMSource.java#L1191-L1212
The equivalent method in github-branch-source is quite a bit different:
https://github.com/jenkinsci/github-branch-source-plugin/blob/490693b59b83a4a82b0b94dd1ba2c7b5870be005/src/main/java/org/jenkinsci/plugins/github_branch_source/GitHubSCMSource.java#L2161-L2180
This change makes the method here look like the method in github-branch-source.
Tested manually with and without this change and it appears to work.
Your checklist for this pull request
- [x] Make sure you are requesting to pull a topic/feature/bugfix branch (right side) and not your master branch!
- [x] Ensure that the pull request title represents the desired changelog entry
- [x] Please describe what you did
- [x] Link to relevant issues in GitHub or in Jenkins JIRA
- [x] Link to relevant pull requests, esp. upstream and downstream changes
- [ ] Did you provide a test-case? That demonstrates feature works or fixes the issue.
<!--
Put an x into the [ ] to show you have filled the information below
Describe your pull request below
-->
pr closed time in a month
push eventchriskilding/pipeline-model-definition-plugin
commit sha c5bebf4b22a56ca32e1af4ae56f37467867b8cd1
add JTE to ModelParser
commit sha 686fe8f56867c7255a33175fc5309e1c48dd6db7
handle empty pipeline when parsing for JTE
commit sha b925342daced6c4a64315f5ed779ba8cf96f872f
Merge branch 'master' into integrate-jte
commit sha 9f23d5e6b337af90ae6b78f32deb27cad103d92e
Merge pull request #403 from steven-terrana/integrate-jte Support Declarative Pipeline Syntax Within Jenkins Templating Engine
commit sha 10c6d631751f2cb060c8f1b115fd14104ab6baec
Allow ModelParser to be run outside of a Jenkins instance I'm working on tooling for converting Jenkinsfiles to JSON outside of a Jenkins instance, and there are a number of things that break as things stand now. This fixes those, by allowing for providing a `ModelValidator` implementation and a `DescriptorLookupCache` instance to `ModelParser`, and uses a fallback for the zero-arg agent model map if run outside of Jenkins. Signed-off-by: Andrew Bayer <[email protected]>
commit sha fc8d22192d7d3a17badc3b8af7191a84bb7fd4ca
Merge pull request #406 from abayer/specify-validator Allow ModelParser to be run outside of a Jenkins instance
commit sha 0f3a48caf0315aecc864cb9f3b8f9e32945fbf1f
Merge branch 'master' into bump-jackson-version
push time in a month
push eventbitwiseman/pipeline-model-definition-plugin
commit sha c5bebf4b22a56ca32e1af4ae56f37467867b8cd1
add JTE to ModelParser
commit sha 686fe8f56867c7255a33175fc5309e1c48dd6db7
handle empty pipeline when parsing for JTE
commit sha b925342daced6c4a64315f5ed779ba8cf96f872f
Merge branch 'master' into integrate-jte
commit sha 9f23d5e6b337af90ae6b78f32deb27cad103d92e
Merge pull request #403 from steven-terrana/integrate-jte Support Declarative Pipeline Syntax Within Jenkins Templating Engine
commit sha 10c6d631751f2cb060c8f1b115fd14104ab6baec
Allow ModelParser to be run outside of a Jenkins instance I'm working on tooling for converting Jenkinsfiles to JSON outside of a Jenkins instance, and there are a number of things that break as things stand now. This fixes those, by allowing for providing a `ModelValidator` implementation and a `DescriptorLookupCache` instance to `ModelParser`, and uses a fallback for the zero-arg agent model map if run outside of Jenkins. Signed-off-by: Andrew Bayer <[email protected]>
commit sha fc8d22192d7d3a17badc3b8af7191a84bb7fd4ca
Merge pull request #406 from abayer/specify-validator Allow ModelParser to be run outside of a Jenkins instance
commit sha eb098a2e956ff334edb10bd1ed172c84d47d2995
Merge branch 'master' into task/script-splitting/update
push time in a month
PR closed jenkinsci/pipeline-model-definition-plugin
Increment the Jackson version
pr closed time in a month
PR closed jenkinsci/pipeline-model-definition-plugin
Signed-off-by: Andrew Bayer [email protected]
- JENKINS issue(s):
- Issue link or n/a
- Description:
- ...
- Documentation changes:
- Link to related jenkins.io PR or explanation for why doc change not needed
- Users/aliases to notify:
- ...
pr closed time in a month
push eventjenkinsci/pipeline-model-definition-plugin
commit sha 10c6d631751f2cb060c8f1b115fd14104ab6baec
Allow ModelParser to be run outside of a Jenkins instance I'm working on tooling for converting Jenkinsfiles to JSON outside of a Jenkins instance, and there are a number of things that break as things stand now. This fixes those, by allowing for providing a `ModelValidator` implementation and a `DescriptorLookupCache` instance to `ModelParser`, and uses a fallback for the zero-arg agent model map if run outside of Jenkins. Signed-off-by: Andrew Bayer <[email protected]>
commit sha fc8d22192d7d3a17badc3b8af7191a84bb7fd4ca
Merge pull request #406 from abayer/specify-validator Allow ModelParser to be run outside of a Jenkins instance
push time in a month
PR merged jenkinsci/pipeline-model-definition-plugin
- JENKINS issue(s):
- n/a
- Description:
- I'm working on tooling for converting Jenkinsfiles to JSON outside of a Jenkins instance, and there are a number of things that break as things stand now. This fixes those, by allowing for providing a
ModelValidatorimplementation and aDescriptorLookupCacheinstance toModelParser, and uses a fallback for the zero-arg agent model map if run outside of Jenkins.
- I'm working on tooling for converting Jenkinsfiles to JSON outside of a Jenkins instance, and there are a number of things that break as things stand now. This fixes those, by allowing for providing a
- Documentation changes:
- n/a - this isn't user-facing.
- Users/aliases to notify:
- @bitwiseman
pr closed time in a month
pull request commentjenkinsci/pipeline-model-definition-plugin
Allow ModelParser to be run outside of a Jenkins instance
🤦
comment created time in a month
PR closed jenkinsci/pipeline-model-definition-plugin
JENKINS issue(s):
Description:
Automatically splitting the pipeline script into multiple smaller parts makes it less likely for the resulting compiled class throw "Method code too large!" or "Class too large" exceptions during the class file generation phase of compilation.
Script splitting has two different strategies: method-grouped and closure-only. Closure-only is less effective but method-grouped splitting is not compatible with some groovy structures. In particular locally declared variables, such as such as def a = 1, are incompatible with the more effective method-grouped script splitting.
Before this change, any statements outside the pipeline directive would cause the plugin to switch to using the less effective closure-only script splitting.
This change does three things:
- It uses the method-grouped script splitting unless it detects locally declared variables such as
def a = 1outside thepipeline {}directive. - If it detects locally declared variables such as
def a = 1: a. it defaults to failing the run telling the user to add the@Fieldannotation to the declaration. b. IfSCRIPT_SPLITTING_ALLOW_LOCAL_VARIABLES=true, it does not report an error, instead falling back to closure-only splitting.
Script splitting ignores other non-problematic statements such as method/function declarations or method calls. Note, this is experimental. There may be other structures aside from local variable declaration that are incompatible with script splitting. More testing is needed.
WARNING: this is a global change. If you install this version an have SCRIPT_SPLITTING_TRANSFORMATION=true, any declarative pipeline Jenkinsfile with a local variable declaration outside the pipeline block will fail. You may switch back to allowing locally declared variables by setting SCRIPT_SPLITTING_ALLOW_LOCAL_VARIABLES=true.
pr closed time in a month
pull request commentjenkinsci/pipeline-model-definition-plugin
Allow ModelParser to be run outside of a Jenkins instance
@abayer Do you plan to write a test?
comment created time in a month
pull request commenthub4j/github-api
Feat/credential provider refresh
@MarcosCela
If I understand correctly, we'll need to do the second approach in order for refresh to work for longer than the expiration time of the JWT Token. And JWT Tokens have a shorter life span than the GitHub App Tokens.
comment created time in a month
pull request commentjenkinsci/pipeline-model-definition-plugin
Allow ModelParser to be run outside of a Jenkins instance
@abayer I'm seeing the same failure on #405.
comment created time in a month
pull request commentjenkinsci/bitbucket-branch-source-plugin
[JENKINS-48828] Fix mistaken doFillRepositoryItems AccessDenied
Build failures look like infra issues.
comment created time in a month
push eventbitwiseman/bitbucket-branch-source-plugin
commit sha 8d72f76b5bbe8edb2be1d6d8ef778ee2ace6eb25
[JENKINS-48828] Fix mistaken doFillRepositoryItems AccessDenied
push time in a month
push eventbitwiseman/bitbucket-branch-source-plugin
commit sha 38fe04fec906f20d10ac1c808b7c5e7b5451a6f8
[JENKINS-48828] Fix mistaken doFillRepositoryItems AccessDenied
push time in a month
Pull request review commenthub4j/github-api
user, push, pull event extensions
public String getName() { } /**- * Gets email.+ * Gets email (e.g. from git commit). *- * @return E -mail address, such as "[email protected]"+ * @return E-mail address, such as "[email protected]" */ public String getEmail() { return email; } + /**+ * Gets username.+ *+ * @return GitHub username+ */+ public String getUsername() {+ return username;
@seregamorph
Interesting. Is it possible it is only present on events?
This doesn't include it: https://api.github.com/repos/octocat/Hello-World/git/commits/7fd1a60b01f91b314f59955a4e4d4e80d8edf11d
I'd be okay with adding this if the javadoc clearly states that is only seen on events and we add @Preview @Deprecated annotations to it. I would also ask that you contact GitHub support and ask them to clarify the documentation.
username
comment created time in a month
pull request commentjenkinsci/blueocean-plugin
@eplodn We are no longer making major changes to Blue Ocean except for security and regression fixes. Removing a component would be a major change.
@ugatenio I don't have much context in which to evaluate this. What you describe as the new behavior looks good, but I'm not sure how to validate it to make sure it doesn't cause a regression.
@olamy @cliffmeyers Any thoughts? The looks like a pretty safe change, but I'd like some other folks to look at it too.
comment created time in a month
PR closed jenkinsci/blueocean-plugin
Description
See JENKINS-63698.
Submitter checklist
- [x] Link to JIRA ticket in description, if appropriate.
- [x] Change is code complete and matches issue description
- [ ] Appropriate unit or acceptance tests or explanation to why this change has no tests
- [ ] Reviewer's manual test instructions provided in PR description. See Reviewer's first task below.
Reviewer checklist
- [ ] Run the changes and verified the change matches the issue description
- [ ] Reviewed the code
- [ ] Verified that the appropriate tests have been written or valid explanation given
pr closed time in a month
push eventbitwiseman/bitbucket-branch-source-plugin
commit sha d647f8e5cdfdac2b8aa774c529f64da81bc4684d
[JENKINS-48828] Fix mistaken doFillRepositoryItems AccessDenied
push time in a month
push eventbitwiseman/bitbucket-branch-source-plugin
commit sha 8cec450bf71eba812cbb15efe874128d6ec5957d
[JENKINS-48828] Fix mistaken doFillRepositoryItems AccessDenied
push time in a month
PR opened jenkinsci/bitbucket-branch-source-plugin
<!-- Please describe your pull request here. -->
<!-- To mark your pull request as work in progress please create it as a draft pull request -->
Your checklist for this pull request
- [ ] Make sure you are requesting to pull a topic/feature/bugfix branch (right side) and not your master branch!
- [ ] Ensure that the pull request title represents the desired changelog entry
- [ ] Please describe what you did
- [ ] Link to relevant issues in GitHub or in Jenkins JIRA
- [ ] Link to relevant pull requests, esp. upstream and downstream changes
- [ ] Did you provide a test-case? That demonstrates feature works or fixes the issue.
<!--
Put an x into the [ ] to show you have filled the information below
Describe your pull request below
-->
pr created time in a month
create barnchbitwiseman/bitbucket-branch-source-plugin
created branch time in a month
push eventbitwiseman/bitbucket-branch-source-plugin
commit sha 8b12d074b7613dc2173195f399ddced2bbb02ce8
[maven-release-plugin] prepare release cloudbees-bitbucket-branch-source-2.9.4
commit sha 24d9487c9dcdc6e5f00f9c891b162da3bba3cb3c
[maven-release-plugin] prepare for next development iteration
push time in a month
delete branch jenkinsci/bitbucket-branch-source-plugin
delete branch : JENKINS-48828
delete time in a month
create barnchjenkinsci/bitbucket-branch-source-plugin
created branch time in a month
Pull request review commentjenkinsci/bitbucket-branch-source-plugin
public void process(final HookEventType hookEvent, String payload, final Bitbuck eventType = SCMEvent.Type.CREATED; break; case PULL_REQUEST_DECLINED:+ eventType = SCMEvent.Type.REMOVED;+ break;
So, why add these two lines?
comment created time in a month
pull request commentjenkinsci/pipeline-model-definition-plugin
[JENKINS-34987] - Allow better script splitting in more scenarios
To test this change locally:
Install the following incrementals: https://repo.jenkins-ci.org/incrementals/org/jenkinsci/plugins/pipeline-model-api/1.7.3-rc1872.9504c794d213/ https://repo.jenkins-ci.org/incrementals/org/jenkinsci/plugins/pipeline-model-definition/1.7.3-rc1872.9504c794d213/ https://repo.jenkins-ci.org/incrementals/org/jenkinsci/plugins/pipeline-model-extensions/1.7.3-rc1872.9504c794d213/ https://repo.jenkins-ci.org/incrementals/org/jenkinsci/plugins/pipeline-stage-tags-metadata/1.7.3-rc1872.9504c794d213/
(Sorry, yes, you need to do all four of them.)
Then via command-line ops or in Jenkins script console set the flag: org.jenkinsci.plugins.pipeline.modeldefinition.parser.RuntimeASTTransformer.SCRIPT_SPLITTING_TRANSFORMATION=true
WARNING: this is a global change. If you install this version and have SCRIPT_SPLITTING_TRANSFORMATION=true, any declarative pipeline Jenkinsfile with a local variable declaration (def varName="value") outside the pipeline block will fail. This is intentional, keeping users from accidentally defeating the improved script splitting. The fix is to add an @Field annotation - @Field def varName="value". You may switch back to allowing locally declared variables by setting org.jenkinsci.plugins.pipeline.modeldefinition.parser.RuntimeASTTransformer.SCRIPT_SPLITTING_ALLOW_LOCAL_VARIABLES=true.
comment created time in a month
issue commenthub4j/github-api
GHPullRequest.getLabels fails for parsed events
Yeah, that is not great behavior.
GHPullRequest is depending on GHIssue to make sure some fields are populated. This should probably be a check whether labels is null as with a number of other populate() behaviors.
comment created time in a month
Pull request review commenthub4j/github-api
user, push, pull event extensions
@SuppressFBWarnings(value = { "UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD", "UWF_UNWRITTEN_FIELD", "NP_UNWRITTEN_FIELD" }, justification = "JSON API") public class GitUser {- private String name, email, date;+ private String name, email, date, username; /**- * Gets name.+ * Gets name (e.g. from git commit).
The commit aspect is mentioned on line 8 above. I see you're trying to be clear. Maybe the suggestion below?
* Gets the git user name for an author or committer on a git commit.
comment created time in a month