Giter Site home page Giter Site logo

tomasbjerre / git-changelog-bitbucket-plugin Goto Github PK

View Code? Open in Web Editor NEW
12.0 12.0 9.0 118 KB

Atlassian Bitbucket plugin for generating changelog, or releasenotes

Home Page: https://marketplace.atlassian.com/plugins/se.bjurr.changelog.git-changelog-for-bitbucket/server/overview

License: Apache License 2.0

Java 83.89% HTML 2.52% CSS 1.32% JavaScript 10.66% Shell 1.61%

git-changelog-bitbucket-plugin's People

Contributors

hoppfrosch avatar tomasbjerre avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

git-changelog-bitbucket-plugin's Issues

"Export" functionality

Would be nice to have a feature to export the generated changelog to a HTML file (or another format) - or having a "Print" button available ...

First commit message missing

Creating a log from "first commit" to "master" the very first commit message is missing from the generated changelog.

I've verified this on several repositories

Errors installing in 4.8.1

We try installing from the marketplace and it says it can't enable and to refer to the logs. The logs show the following:

2016-07-25 14:47:40,714 ERROR [ThreadPoolAsyncTaskExecutor::Thread 45] asuda @1WS5LF5x887x422x0 1t29g4n 192.168.40.83,127.0.0.1 "POST /rest/plugins/1.0/ HTTP/1.1" c.a.plugin.osgi.factory.OsgiPlugin Unable to start the plugin container for plugin 'se.bjurr.changelog.git-changelog-for-bitbucket'
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'changelogLibService' defined in URL [bundle://126.0:0/META-INF/spring/atlassian-plugins-components.xml]: Unsatisfied dependency expressed through constructor argument with index 3 of type [se.bjurr.changelog.bitbucket.application.JiraClientService]: : Error creating bean with name 'jiraClientService' defined in URL [bundle://126.0:0/META-INF/spring/atlassian-plugins-components.xml]: Bean instantiation via constructor failed; nested exception is java.lang.ExceptionInInitializerError; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jiraClientService' defined in URL [bundle://126.0:0/META-INF/spring/atlassian-plugins-components.xml]: Bean instantiation via constructor failed; nested exception is java.lang.ExceptionInInitializerError
        at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749) ~[spring-beans-4.2.5.RELEASE.jar:4.2.5.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757) ~[spring-context-4.2.5.RELEASE.jar:4.2.5.RELEASE]
        at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:60) ~[na:na]
        at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:325) ~[na:na]
        at org.eclipse.gemini.blueprint.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85) ~[na:na]
        at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:290) ~[na:na]
        at org.eclipse.gemini.blueprint.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:137) ~[na:na]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_74]
        at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_74]
        ... 11 frames trimmed
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jiraClientService' defined in URL [bundle://126.0:0/META-INF/spring/atlassian-plugins-components.xml]: Bean instantiation via constructor failed; nested exception is java.lang.ExceptionInInitializerError
        at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:275) ~[spring-beans-4.2.5.RELEASE.jar:4.2.5.RELEASE]
        ... 9 common frames omitted
Caused by: java.lang.ExceptionInInitializerError: null
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_74]
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147) ~[spring-beans-4.2.5.RELEASE.jar:4.2.5.RELEASE]
        ... 9 common frames omitted
Caused by: java.lang.NullPointerException: null
        at se.bjurr.gitchangelog.internal.integrations.jira.JiraClient.<init>(JiraClient.java:13) ~[na:na]
        at se.bjurr.changelog.bitbucket.application.JiraClientService$1.<init>(JiraClientService.java:20) ~[na:na]
        at se.bjurr.changelog.bitbucket.application.JiraClientService.<clinit>(JiraClientService.java:20) ~[na:na]
        ... 10 common frames omitted
2016-07-25 14:47:43,635 WARN  [http-nio-7990-exec-3] asuda @1WS5LF5x887x495x1 1t29g4n 192.168.40.83,127.0.0.1 "GET /rest/plugins/1.0/available/se.bjurr.changelog.git-changelog-for-bitbucket-key/review HTTP/1.1" c.a.u.p.MarketplaceReviewsAndNotificationsServiceImpl Marketplace returned error 401 when getting review at https://marketplace.atlassian.com/rest/2/addons/se.bjurr.changelog.git-changelog-for-bitbucket/reviews/mine
2016-07-25 14:47:50,848 ERROR [ThreadPoolAsyncTaskExecutor::Thread 45] asuda @1WS5LF5x887x422x0 1t29g4n 192.168.40.83,127.0.0.1 "POST /rest/plugins/1.0/ HTTP/1.1" o.e.g.b.e.i.u.c.RunnableTimedExecution Closing runnable for context NonValidatingOsgiBundleXmlApplicationContext(bundle=se.bjurr.changelog.git-changelog-for-bitbucket, config=osgibundle:/META-INF/spring/*.xml) did not finish in 10000ms; consider taking a snapshot and then shutdown the VM in case the thread still hangs
2016-07-25 14:47:50,894 ERROR [ThreadPoolAsyncTaskExecutor::Thread 45] asuda @1WS5LF5x887x422x0 1t29g4n 192.168.40.83,127.0.0.1 "POST /rest/plugins/1.0/ HTTP/1.1" o.e.g.b.e.i.s.ExtenderConfiguration Application context refresh failed (NonValidatingOsgiBundleXmlApplicationContext(bundle=se.bjurr.changelog.git-changelog-for-bitbucket, config=osgibundle:/META-INF/spring/*.xml))
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'changelogLibService' defined in URL [bundle://126.0:0/META-INF/spring/atlassian-plugins-components.xml]: Unsatisfied dependency expressed through constructor argument with index 3 of type [se.bjurr.changelog.bitbucket.application.JiraClientService]: : Error creating bean with name 'jiraClientService' defined in URL [bundle://126.0:0/META-INF/spring/atlassian-plugins-components.xml]: Bean instantiation via constructor failed; nested exception is java.lang.ExceptionInInitializerError; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jiraClientService' defined in URL [bundle://126.0:0/META-INF/spring/atlassian-plugins-components.xml]: Bean instantiation via constructor failed; nested exception is java.lang.ExceptionInInitializerError
        at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749) ~[org.apache.servicemix.bundles.spring-beans-4.1.7.RELEASE_1.jar:4.2.5.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757) ~[spring-context-4.2.5.RELEASE.jar:4.2.5.RELEASE]
        at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:60) ~[gemini-blueprint-core-2.0.0.BUILD-atlassian-m002.jar:2.0.0.BUILD-atlassian-m002]
        at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:325) ~[gemini-blueprint-core-2.0.0.BUILD-atlassian-m002.jar:2.0.0.BUILD-atlassian-m002]
        at org.eclipse.gemini.blueprint.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85) ~[na:na]
        at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:290) ~[gemini-blueprint-core-2.0.0.BUILD-atlassian-m002.jar:2.0.0.BUILD-atlassian-m002]
        at org.eclipse.gemini.blueprint.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:137) [gemini-blueprint-extender-2.0.0.BUILD-atlassian-m002.jar:2.0.0.BUILD-atlassian-m002]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_74]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_74]
        ... 11 frames trimmed
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jiraClientService' defined in URL [bundle://126.0:0/META-INF/spring/atlassian-plugins-components.xml]: Bean instantiation via constructor failed; nested exception is java.lang.ExceptionInInitializerError
        at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:275) ~[org.apache.servicemix.bundles.spring-beans-4.1.7.RELEASE_1.jar:4.2.5.RELEASE]
        ... 9 common frames omitted
Caused by: java.lang.ExceptionInInitializerError: null
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_74]
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147) ~[org.apache.servicemix.bundles.spring-beans-4.1.7.RELEASE_1.jar:4.2.5.RELEASE]
        ... 9 common frames omitted
Caused by: java.lang.NullPointerException: null
        at se.bjurr.gitchangelog.internal.integrations.jira.JiraClient.<init>(JiraClient.java:13) ~[na:na]
        at se.bjurr.changelog.bitbucket.application.JiraClientService$1.<init>(JiraClientService.java:20) ~[na:na]
        at se.bjurr.changelog.bitbucket.application.JiraClientService.<clinit>(JiraClientService.java:20) ~[na:na]
        ... 10 common frames omitted
2016-07-25 14:47:50,901 ERROR [ThreadPoolAsyncTaskExecutor::Thread 45] asuda @1WS5LF5x887x422x0 1t29g4n 192.168.40.83,127.0.0.1 "POST /rest/plugins/1.0/ HTTP/1.1" o.e.g.b.e.i.d.s.DependencyWaiterApplicationContextExecutor Unable to create application context for [se.bjurr.changelog.git-changelog-for-bitbucket], unsatisfied dependencies: none
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'changelogLibService' defined in URL [bundle://126.0:0/META-INF/spring/atlassian-plugins-components.xml]: Unsatisfied dependency expressed through constructor argument with index 3 of type [se.bjurr.changelog.bitbucket.application.JiraClientService]: : Error creating bean with name 'jiraClientService' defined in URL [bundle://126.0:0/META-INF/spring/atlassian-plugins-components.xml]: Bean instantiation via constructor failed; nested exception is java.lang.ExceptionInInitializerError; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jiraClientService' defined in URL [bundle://126.0:0/META-INF/spring/atlassian-plugins-components.xml]: Bean instantiation via constructor failed; nested exception is java.lang.ExceptionInInitializerError
        at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749) ~[spring-beans-4.2.5.RELEASE.jar:4.2.5.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757) ~[spring-context-4.2.5.RELEASE.jar:4.2.5.RELEASE]
        at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:60) ~[na:na]
        at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:325) ~[na:na]
        at org.eclipse.gemini.blueprint.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85) ~[na:na]
        at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:290) ~[na:na]
        at org.eclipse.gemini.blueprint.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:137) ~[na:na]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_74]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_74]
        ... 11 frames trimmed
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jiraClientService' defined in URL [bundle://126.0:0/META-INF/spring/atlassian-plugins-components.xml]: Bean instantiation via constructor failed; nested exception is java.lang.ExceptionInInitializerError
        at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:275) ~[spring-beans-4.2.5.RELEASE.jar:4.2.5.RELEASE]
        ... 9 common frames omitted
Caused by: java.lang.ExceptionInInitializerError: null
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_74]
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147) ~[spring-beans-4.2.5.RELEASE.jar:4.2.5.RELEASE]
        ... 9 common frames omitted
Caused by: java.lang.NullPointerException: null
        at se.bjurr.gitchangelog.internal.integrations.jira.JiraClient.<init>(JiraClient.java:13) ~[na:na]
        at se.bjurr.changelog.bitbucket.application.JiraClientService$1.<init>(JiraClientService.java:20) ~[na:na]
        at se.bjurr.changelog.bitbucket.application.JiraClientService.<clinit>(JiraClientService.java:20) ~[na:na]
        ... 10 common frames omitted

Per repo config, disable/enable

So that it can be disabled or enabled for different repos. Large repos requires more performance, and an admin may want to disable such repos.

Wrong date of some commits

Hi,

Your add-on is exactly what we need even without customizations but I have found an annoying bug.
In one of the repositories, when I click on the changelog link, I get a list of commits under a tag but these commits have dates of next year (29.12.2016) and their actual date is a year erlier (29.12.2015).
When I look at the commits list of this project, they are shown with their right date.
wrong date

Error on creating changelog

I tried to generate the changelog for one of our (quite big) repositories, but get an runtime exception in the log.

Git Changelog for Bitbucket v1.4
Bitbucket v4.1.0

java.lang.RuntimeException: First commit at: 7e5583ff8d72b98e1b653691e618e1bc56d9c4a8
Refs:
Ref: HEAD -> 88c88b2c1b4ddb2703fbe33fbada88cfa6ea4021
Ref: refs/heads/bugfix/BIB-100-blablabla -> 5edbd2b71b6b1c1e625a8798c12ab77b88ae1169
Ref: refs/heads/bugfix/BIB-867-testbug -> 75ecfeb237aea354b43e4ef0a0d906d1bf0b9717
Ref: refs/heads/bugfix/BIB-870-testmerge -> b959726c9f755432607f66924681bb2c9323312d
[...]

at se.bjurr.gitchangelog.internal.git.GitRepo.getGitRepoData(GitRepo.java:93) ~[plugin.8774517398436968055.git-changelog-for-bitbucket-1.4_1455518821000.jar:na]
at se.bjurr.gitchangelog.api.GitChangelogApi.getChangelog(GitChangelogApi.java:345) ~[plugin.8774517398436968055.git-changelog-for-bitbucket-1.4_1455518821000.jar:na]
at se.bjurr.gitchangelog.api.GitChangelogApi.getChangelog(GitChangelogApi.java:315) ~[plugin.8774517398436968055.git-changelog-for-bitbucket-1.4_1455518821000.jar:na]
at se.bjurr.gitchangelog.api.GitChangelogApi.render(GitChangelogApi.java:332) ~[plugin.8774517398436968055.git-changelog-for-bitbucket-1.4_1455518821000.jar:na]
at se.bjurr.changelog.bitbucket.presentation.RestResource.getFromRefToRef(RestResource.java:91) ~[plugin.8774517398436968055.git-changelog-for-bitbucket-1.4_1455518821000.jar:na]
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:26) [applinks-plugin-5.0.1_1446433820000.jar:na]
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:26) [applinks-plugin-5.0.1_1446433820000.jar:na]
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:26) [applinks-plugin-5.0.1_1446433820000.jar:na]
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:26) [applinks-plugin-5.0.1_1446433820000.jar:na]
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:26) [applinks-plugin-5.0.1_1446433820000.jar:na]
at com.atlassian.stash.internal.spring.security.StashAuthenticationFilter.doFilter(StashAuthenticationFilter.java:88) [StashAuthenticationFilter.class:na]
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doInsideSpringSecurityChain(BeforeLoginPluginAuthenticationFilter.java:109) [BeforeLoginPluginAuthenticationFilter.class:na]
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doFilter(BeforeLoginPluginAuthenticationFilter.java:75) [BeforeLoginPluginAuthenticationFilter.class:na]
at com.atlassian.security.auth.trustedapps.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:94) [atlassian-trusted-apps-core-4.2.0.jar:na]
at com.atlassian.oauth.serviceprovider.internal.servlet.OAuthFilter.doFilter(OAuthFilter.java:67) [atlassian-oauth-service-provider-plugin-2.0.3_1446433820000.jar:na]
at com.atlassian.analytics.client.filter.DefaultAnalyticsFilter.doFilter(DefaultAnalyticsFilter.java:36) [analytics-client-4.3.2_1446433820000.jar:na]
at com.atlassian.analytics.client.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:32) [analytics-client-4.3.2_1446433820000.jar:na]
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doBeforeBeforeLoginFilters(BeforeLoginPluginAuthenticationFilter.java:87) [BeforeLoginPluginAuthenticationFilter.class:na]
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doFilter(BeforeLoginPluginAuthenticationFilter.java:73) [BeforeLoginPluginAuthenticationFilter.class:na]
at com.atlassian.stash.internal.request.DefaultRequestManager.doAsRequest(DefaultRequestManager.java:85) ~[bitbucket-service-impl-4.1.0.jar:na]
at com.atlassian.stash.internal.hazelcast.ConfigurableWebFilter.doFilter(ConfigurableWebFilter.java:38) ~[ConfigurableWebFilter.class:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_60]
at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_60]
... 218 frames trimmed

Caused by: java.lang.IllegalArgumentException: Multiple entries with same key: 92d9c58f639c35e=Ref[refs/tags/brrrrrrr=079f418696ee88e7e24f7a68a6f90c38c4d5e20d] and 92d9c58f639c35e=Ref[refs/tags/briii=a579b2e8f0efb3f443a899c32c10dd890cfab6d3]
at com.google.common.collect.ImmutableMap.checkNoConflict(ImmutableMap.java:150) ~[guava-18.0.jar:na]
at com.google.common.collect.RegularImmutableMap.checkNoConflictInBucket(RegularImmutableMap.java:104) ~[guava-18.0.jar:na]
at com.google.common.collect.RegularImmutableMap.(RegularImmutableMap.java:70) ~[guava-18.0.jar:na]
at com.google.common.collect.ImmutableMap$Builder.build(ImmutableMap.java:254) ~[guava-18.0.jar:na]
at com.google.common.collect.Maps.uniqueIndex(Maps.java:1166) ~[guava-18.0.jar:na]
at com.google.common.collect.Maps.uniqueIndex(Maps.java:1140) ~[guava-18.0.jar:na]
at se.bjurr.gitchangelog.internal.git.GitRepo.gitTags(GitRepo.java:102) ~[plugin.8774517398436968055.git-changelog-for-bitbucket-1.4_1455518821000.jar:na]
at se.bjurr.gitchangelog.internal.git.GitRepo.getGitRepoData(GitRepo.java:91) ~[plugin.8774517398436968055.git-changelog-for-bitbucket-1.4_1455518821000.jar:na]
... 23 common frames omitted

Template: {{hash}} vs. {{hashFull}}

Within your template (initially provided with your plugin) you use the following:

<a href="{{bitbucketUrl}}/bitbucket/projects/{{projectKey}}/repos/{{repositorySlug}}/commits/{{hash}}">{{hash}}</a>

The generated link does not work since bitbucket uses the full hash instead of the shortened one (BTW: even your shortened one is to long in comparison to the hash used in bitbucket: bitbucket use only 6a5ab0e96393 instead of 6a5ab0e96393ca7 you use ...)

I looked in documentation on https://github.com/tomasbjerre/git-changelog-lib and found there a value {{hashFull}} - but this does not work within your modified template:

<a href="{{bitbucketUrl}}/bitbucket/projects/{{projectKey}}/repos/{{repositorySlug}}/commits/{{hashFull}}">{{hash}}</a>

{{hashFull}} is expanded into an empty string.

NoSuchMethodError in Bitbucket log by clicking on [ <> Changelog ] on a repo

In Bitbucket Server 6.10.5 we experience the following error by clicking on the [ <> Changelog ] button for a repository.

"Error :(" string, that's all.

In the Bitbucket log we can read only this error related to the click event (I've obfuscated username and repo names):

2021-04-26 20:11:34,881 ERROR [http-nio-7990-exec-70] USERNAME @161DXDQx1211x47795761x1 cduqi3 192.168.10.253,10.0.101.2 "GET /rest/changelog/1.0/**/*********** HTTP/1.1" c.a.p.r.c.e.j.ThrowableExceptionMapper Uncaught exception thrown by REST service: com.atlassian.bitbucket.server.ApplicationPropertiesService.getRepositoryDir(Lcom/atlassian/bitbucket/repository/Repository;)Ljava/io/File; java.lang.NoSuchMethodError: com.atlassian.bitbucket.server.ApplicationPropertiesService.getRepositoryDir(Lcom/atlassian/bitbucket/repository/Repository;)Ljava/io/File; at se.bjurr.changelog.bitbucket.application.ChangelogRepositoryService.getRepositoryDir(ChangelogRepositoryService.java:37) at se.bjurr.changelog.bitbucket.presentation.RestResource.getRefs(RestResource.java:66) at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:24) at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:24) at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:24) at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:24) at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:24) at com.atlassian.bitbucket.internal.xcode.web.XcodeUserAgentFilter.doFilter(XcodeUserAgentFilter.java:36) at com.atlassian.analytics.client.filter.UniversalAnalyticsFilter.doFilter(UniversalAnalyticsFilter.java:75) at com.atlassian.analytics.client.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:33) at com.atlassian.stash.internal.spring.lifecycle.LifecycleJohnsonServletFilterModuleContainerFilter.doFilter(LifecycleJohnsonServletFilterModuleContainerFilter.java:42) at com.atlassian.bitbucket.internal.ratelimit.servlet.filter.RateLimitFilter.doFilter(RateLimitFilter.java:75) at com.atlassian.plugin.connect.plugin.auth.scope.ApiScopingFilter.doFilter(ApiScopingFilter.java:81) at com.atlassian.plugins.slack.analytics.SlackAnalyticsFilter.doFilter(SlackAnalyticsFilter.java:35) at com.atlassian.stash.internal.spring.lifecycle.LifecycleJohnsonServletFilterModuleContainerFilter.doFilter(LifecycleJohnsonServletFilterModuleContainerFilter.java:42) at com.atlassian.stash.internal.spring.security.StashAuthenticationFilter.doFilter(StashAuthenticationFilter.java:85) at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doInsideSpringSecurityChain(BeforeLoginPluginAuthenticationFilter.java:112) at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doFilter(BeforeLoginPluginAuthenticationFilter.java:75) at com.atlassian.security.auth.trustedapps.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:94) at com.atlassian.oauth.serviceprovider.internal.servlet.OAuthFilter.doFilter(OAuthFilter.java:67) at com.atlassian.stash.internal.spring.lifecycle.LifecycleJohnsonServletFilterModuleContainerFilter.doFilter(LifecycleJohnsonServletFilterModuleContainerFilter.java:42) at com.atlassian.plugin.connect.plugin.auth.oauth2.DefaultSalAuthenticationFilter.doFilter(DefaultSalAuthenticationFilter.java:69) at com.atlassian.plugin.connect.plugin.auth.user.ThreeLeggedAuthFilter.doFilter(ThreeLeggedAuthFilter.java:109) at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:37) at com.atlassian.analytics.client.filter.DefaultAnalyticsFilter.doFilter(DefaultAnalyticsFilter.java:33) at com.atlassian.analytics.client.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:33) at com.atlassian.stash.internal.spring.lifecycle.LifecycleJohnsonServletFilterModuleContainerFilter.doFilter(LifecycleJohnsonServletFilterModuleContainerFilter.java:42) at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doBeforeBeforeLoginFilters(BeforeLoginPluginAuthenticationFilter.java:90) at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doFilter(BeforeLoginPluginAuthenticationFilter.java:73) at com.atlassian.stash.internal.request.DefaultRequestManager.doAsRequest(DefaultRequestManager.java:87) at com.atlassian.stash.internal.hazelcast.ConfigurableWebFilter.doFilter(ConfigurableWebFilter.java:38) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.lang.Thread.run(Thread.java:748) ... 253 frames trimmed
We had 1.19 version of your add-on then updated to the latest 1.20 but the error stays the same.

Erroneous parsing of JIRA-Issue links

JIRA-issues references are marked by a sequence of letters followed by a minus followed by numbers (i.e XXX-1234)

This plugin tries to detect JIRA-issues as well to link to the corresponding JIRA issues

The used pattern is to liberal when trying to extract JIRA-issue links - for example:

  • The String "jquery-1.6.2" is considered to be an JIRA-issue link by this plugin: "jquery-1" is detected as JIRA-issue link => pls consider the points in your extraction patterns!

  • The String "jquery-migrate-3.0.0" is considered to be an JIRA-issue link by this plugin: "migrate-3" is detected as JIRA-issue link => pls consider the words containing a special character (in my example minus) are no links to JIRA issues!

Hangs for large repos

The generation of the change log needs a long time if there are lot of commits on the considered branch. During this time, bitbucket server does not respond - even for other users trying to access other repositories.

The plugin shouldn't tear down the bitbucket server performance as massively as it does now.

Is it possible to introduce a limitiation in changelog entries? Maybe a limitation in the number of commits which occur within the changelog - or a date limit (only use commits after ...) - or another limitation ...

In this context it would be nice if the settings are available per repository (not only globally as it is now ...)

Bitbucket -> Jira: Http Error 401

After trying successful on our test systems, I installed the plugin on our live bitbucket server which is connected to Jira using SSL.

Here I get an 401 exception. When I enter the URL https://jira.xxxx.com/rest/api/2/issue/DLA-911?fields=parent,summary in my same browser session, I get a valid result with return code 200.

2016-02-19 06:58:26,612 ERROR [http-nio-80-exec-9] emp000621 @KIQBHMx418x285211x2 wpmwu 10.10.16.85 "GET /rest/changelog/1.0/BIB/bib/fromref/build_slash_bib1539p01/toref/build_slash_bib1539p18 HTTP/1.1" s.b.g.i.integrations.rest.RestClient Got:
null
java.io.IOException: Server returned HTTP response code: 401 for URL: https://jira.xxxx.com/rest/api/2/issue/DLA-911?fields=parent,summary
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1839) ~[na:1.8.0_60]
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1440) ~[na:1.8.0_60]
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254) ~[na:1.8.0_60]
at se.bjurr.gitchangelog.internal.integrations.rest.RestClient.getResponse(RestClient.java:82) [plugin.5876010548689494348.git-changelog-for-bitbucket-1.5_1455806655000.jar:na]
at se.bjurr.gitchangelog.internal.integrations.rest.RestClient.doGet(RestClient.java:64) [plugin.5876010548689494348.git-changelog-for-bitbucket-1.5_1455806655000.jar:na]
at se.bjurr.gitchangelog.internal.integrations.rest.RestClient.access$000(RestClient.java:23) [plugin.5876010548689494348.git-changelog-for-bitbucket-1.5_1455806655000.jar:na]
at se.bjurr.gitchangelog.internal.integrations.rest.RestClient$1.load(RestClient.java:35) [plugin.5876010548689494348.git-changelog-for-bitbucket-1.5_1455806655000.jar:na]
at se.bjurr.gitchangelog.internal.integrations.rest.RestClient$1.load(RestClient.java:32) [plugin.5876010548689494348.git-changelog-for-bitbucket-1.5_1455806655000.jar:na]
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527) [guava-18.0.jar:na]
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319) [guava-18.0.jar:na]
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282) [guava-18.0.jar:na]
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197) [guava-18.0.jar:na]
at com.google.common.cache.LocalCache.get(LocalCache.java:3937) [guava-18.0.jar:na]
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941) [guava-18.0.jar:na]
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824) [guava-18.0.jar:na]
at se.bjurr.gitchangelog.internal.integrations.rest.RestClient.get(RestClient.java:47) [plugin.5876010548689494348.git-changelog-for-bitbucket-1.5_1455806655000.jar:na]
at se.bjurr.gitchangelog.internal.integrations.jira.JiraClient.getIssue(JiraClient.java:33) [plugin.5876010548689494348.git-changelog-for-bitbucket-1.5_1455806655000.jar:na]
at se.bjurr.gitchangelog.internal.issues.IssueParser.parseForIssues(IssueParser.java:76) [plugin.5876010548689494348.git-changelog-for-bitbucket-1.5_1455806655000.jar:na]
at se.bjurr.gitchangelog.api.GitChangelogApi.getChangelog(GitChangelogApi.java:336) [plugin.5876010548689494348.git-changelog-for-bitbucket-1.5_1455806655000.jar:na]
at se.bjurr.gitchangelog.api.GitChangelogApi.getChangelog(GitChangelogApi.java:306) [plugin.5876010548689494348.git-changelog-for-bitbucket-1.5_1455806655000.jar:na]
at se.bjurr.gitchangelog.api.GitChangelogApi.render(GitChangelogApi.java:320) [plugin.5876010548689494348.git-changelog-for-bitbucket-1.5_1455806655000.jar:na]
at se.bjurr.changelog.bitbucket.presentation.RestResource.getFromRefToRef(RestResource.java:88) [plugin.5876010548689494348.git-changelog-for-bitbucket-1.5_1455806655000.jar:na]
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:26) [applinks-plugin-5.0.1_1446433820000.jar:na]
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:26) [applinks-plugin-5.0.1_1446433820000.jar:na]
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:26) [applinks-plugin-5.0.1_1446433820000.jar:na]
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:26) [applinks-plugin-5.0.1_1446433820000.jar:na]
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:26) [applinks-plugin-5.0.1_1446433820000.jar:na]
at com.atlassian.stash.internal.spring.security.StashAuthenticationFilter.doFilter(StashAuthenticationFilter.java:88) [StashAuthenticationFilter.class:na]
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doInsideSpringSecurityChain(BeforeLoginPluginAuthenticationFilter.java:109) [BeforeLoginPluginAuthenticationFilter.class:na]
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doFilter(BeforeLoginPluginAuthenticationFilter.java:75) [BeforeLoginPluginAuthenticationFilter.class:na]
at com.atlassian.security.auth.trustedapps.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:94) [atlassian-trusted-apps-core-4.2.0.jar:na]
at com.atlassian.oauth.serviceprovider.internal.servlet.OAuthFilter.doFilter(OAuthFilter.java:67) [atlassian-oauth-service-provider-plugin-2.0.3_1446433820000.jar:na]
at com.atlassian.analytics.client.filter.DefaultAnalyticsFilter.doFilter(DefaultAnalyticsFilter.java:36) [analytics-client-4.3.2_1446433820000.jar:na]
at com.atlassian.analytics.client.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:32) [analytics-client-4.3.2_1446433820000.jar:na]
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doBeforeBeforeLoginFilters(BeforeLoginPluginAuthenticationFilter.java:87) [BeforeLoginPluginAuthenticationFilter.class:na]
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doFilter(BeforeLoginPluginAuthenticationFilter.java:73) [BeforeLoginPluginAuthenticationFilter.class:na]
at com.atlassian.stash.internal.request.DefaultRequestManager.doAsRequest(DefaultRequestManager.java:85) ~[bitbucket-service-impl-4.1.0.jar:na]
at com.atlassian.stash.internal.hazelcast.ConfigurableWebFilter.doFilter(ConfigurableWebFilter.java:38) ~[ConfigurableWebFilter.class:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_60]
at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_60]
... 218 frames trimmed

Initial changelog

This refers to plugin version 1.5

Issue: Opening the ChangeLog page for a repository initially, the generated changelog is EMPTY (see attachment) - the "From branch" and "To branch" do not have any default values.
firefox_2016-02-18_10-27-43

Suggestions

  • Provide some default values for "From Branch" and "To Branch" (maybe: "First Commit" to "Default Branch" ("Default Branch" is the default branch for the repository as defined in Bitbucket repository settings
  • Maybe you extend the selectable range from "From/To Branch" to "From/To Commit" - doing this you might provide default-values like: "HEAD of Default-Branch" to "last 10 commits" ... (Just an idea ...)

Issue:
After having selected an "From Branch" and "To Branch" the page refreshes and a Changelog is generated. Changing the "From/To Branch" again does NOT refresh the changelog ...

Suggestion

  • Refresh the changelog on each change of "From/To Branch"

Bitbucket Server 6 compatibility

This plugin will never be compatible with Bitbucket Server 6+.

Up to version 5 there was a getRepositoriesDir() method in the Bitbucket Server API: https://docs.atlassian.com/bitbucket-server/javadoc/5.0.0/api/reference/com/atlassian/bitbucket/server/ApplicationPropertiesService.html

It is removed in 6 and that makes it impossible for this plugin to be implemented using the Git Changelog Lib

Version 6 of the API: https://docs.atlassian.com/bitbucket-server/javadoc/6.0.0/api/reference/com/atlassian/bitbucket/server/ApplicationPropertiesService.html

Per repo config, fixed from/to

So that users can only view changelog decided by an admin.

For large repos, perhaps only dev to master can be allowed. If a user selects first commit to master, Bitbucket Server may get OutOfMemory.

JiraClientService uses DisplayUrl instead of RpcUrl

The JiraClientService is using primaryApplicationLink.getDisplayUrl() to request the Jira Rest API. This can cause problems if you are behind a proxy. In such an installation, the DisplayUrl is different from the URL being used to create request to the API. To avoid problems with the proxy, it’s better to use primaryApplicationLink.getRpcUrl(). This URL is mandatory in the Jira Application Link configuration and is - if no proxy is involved - the same as the DisplayUrl.

Unable to Create CHANGELOG.html in jenkins

Creating changelog CHANGELOG.htmljava.lang.IllegalArgumentException: Illegal URL: /
at retrofit2.Retrofit$Builder.baseUrl(Retrofit.java:437)
at se.bjurr.gitchangelog.internal.integrations.github.GitHubServiceFactory.getGitHubService(GitHubServiceFactory.java:61)
at se.bjurr.gitchangelog.internal.issues.IssueParser.createGitHubClient(IssueParser.java:188)
at se.bjurr.gitchangelog.internal.issues.IssueParser.parseForIssues(IssueParser.java:59)
at se.bjurr.gitchangelog.api.GitChangelogApi.getChangelog(GitChangelogApi.java:462)
at se.bjurr.gitchangelog.api.GitChangelogApi.getChangelog(GitChangelogApi.java:77)
at se.bjurr.gitchangelog.api.GitChangelogApi.render(GitChangelogApi.java:99)
at se.bjurr.gitchangelog.api.GitChangelogApi.render(GitChangelogApi.java:123)
at org.jenkinsci.plugins.gitchangelog.perform.RemoteCallable.call(RemoteCallable.java:168)
at org.jenkinsci.plugins.gitchangelog.perform.RemoteCallable.call(RemoteCallable.java:27)
at hudson.FilePath.act(FilePath.java:1162)
at org.jenkinsci.plugins.gitchangelog.perform.GitChangelogPerformer.performerPerform(GitChangelogPerformer.java:37)
at org.jenkinsci.plugins.gitchangelog.GitChangelogRecorder.perform(GitChangelogRecorder.java:50)
at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:78)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:741)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:690)
at hudson.model.Build$BuildExecution.post2(Build.java:186)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:635)
at hudson.model.Run.execute(Run.java:1878)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:427)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.