Script for automating space or blog watching?

Hi everybody,

i have just started using Scriptrunner for Confluence.

A thing that i would like to do is to manage watchers of a space or blog centrally or to be able to add new users as watchers to spaces.

I had a look in Confluence API but i didn't manage to find something.

Thanx in advance for the help.

Kostas

4 answers

1 accepted

Here is the script i have created for managing Space watchers. It has as inputs a group of users, the Space key and the content type.

import bucket.user.UserAccessor
//import com.atlassian.confluence.user
import com.atlassian.spring.container.ContainerManager;
import com.atlassian.confluence.mail.notification.NotificationManager;
import com.atlassian.confluence.user.DefaultUserDetailsManager;
import com.atlassian.confluence.spaces.SpaceManager;
import com.atlassian.confluence.search.service.ContentTypeEnum
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
def log = Logger.getLogger("com.onresolve.confluence.scripting.WatchSpace")
// Get the default Notification Manager
def notificationManager = (NotificationManager) ContainerManager.getComponent('notificationManager')
//def userDetailsManager = (DefaultUserDetailsManager) ContainerManager.getComponent('userDetailsManager')
// Get User Accessor
def userAccessor = (UserAccessor) ContainerManager.getComponent('userAccessor')
// Get Space Manager
def spaceManager = ContainerManager.getComponent("spaceManager") as SpaceManager
 
//def users = userAccessor.getUsers()
 
//define the group that you want to add as watchers
def group = userAccessor.getGroup('Add group here')
def users = userAccessor.getMemberNames(group)
 
 
//define the space that users will watch.
def space_for_watch = spaceManager.getSpace("Add space key here")
users.each{user->
  log.warn (user)
  def username = userAccessor.getUser(user)
  boolean isWatching = notificationManager.isUserWatchingPageOrSpace(username, space_for_watch, null)
  if (!isWatching) {
 
//Choose the content type of space that users will watch. Add BLOG  for watching Space Blogs, leave blank for watching entire content
  notificationManager.addSpaceNotification(username, space_for_watch, BLOG)
   
  }
}

It looks like you can do it with the RPC and SOAP APIs. Although I haven't used any of these, it looks like watching pages and spaces can be automated with the following services:

  • WikiSoapService
  • XhtmlSoapService
  • ConfluenceSoapService
  • NotificationsRpc
  • ConfluenceXmlRpcHandler

You can also do some automation by writing a user macro, although my success with page and space watching has been mixed with this approach.

Hey Matthew thanks for the help. I managed to write a script for adding space watchers. Is listed in my answer below. Cheers

1 vote

Hi Kostas,

I know you got this sorted for your instance. If anyone stumbles on this and wants a turnkey solution I invite you to look at Better Blogs for Confluence. It is a paid add-on that allows Space Administrators to subscribe users and groups to email notifications of new blogs in a space.

At Twitter we needed this feature to ensure every member of our product, design and engineering organisation (>1,500 people) were notified of new blog posts in the Engineering space. The Engineering Blog enabled VP's to communicate one-to-many and teams to share details of the technology and features they were working on. It didn't make sense to ask every new employee to subscribe to the blog in that space, hence Better Blogs was born.

With Better Blogs you can keep everyone informed, and do so with ease. For those wishing to take advantage of early bird pricing use the promotion code HHYUWD before the end of October 2015.

If you have feedback on the Better Blogs for Confluence add-on contact me via nick@arijea.com or +1 415 568 7064.

Thanks Kostas, hope you don't mind me dropping this note here.

 

Cheers,
Nicholas Muldoon
Arijea

Hi @Nick Muldoon, no problem at all. Thanks for the update on that. Indeed for large instances of Confluence, asking new users to subscribe to the blog doesn't make sense. Our instance has 90 users so far, so i use the script every time that a new user is added. I will take a look on Better Blogs. For any comment, feedback etc i will let you know. Cheers, Kostas

Thanks Kostas

And how about this feature? https://jira.atlassian.com/browse/CONF-40582 Please vote!

Suggest an answer

Log in or Sign up to answer
Atlassian Community Anniversary

Happy Anniversary, Atlassian Community!

This community is celebrating its one-year anniversary and Atlassian co-founder Mike Cannon-Brookes has all the feels.

Read more
Community showcase
Kesha Thillainayagam
Posted Friday in Confluence

We want to hear how your non-technical teams are using Confluence!

Hi Community! Kesha (kay-sha) from the Confluence marketing team here! Can you share stories with us on how your non-technical (think Marketing, Sales, HR, legal, etc.) teams are using Confluen...

278 views 11 10
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you