{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.model.Cause$UserIdCause",
          "shortDescription" : "Started by user Mike Dawson",
          "userId" : "mike",
          "userName" : "Mike Dawson"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/main" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 499,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "79f13bd94036154da75a495c51794e095eb16e97",
            "branch" : [
              {
                "SHA1" : "79f13bd94036154da75a495c51794e095eb16e97",
                "name" : "refs/remotes/origin/main"
              }
            ]
          },
          "revision" : {
            "SHA1" : "79f13bd94036154da75a495c51794e095eb16e97",
            "branch" : [
              {
                "SHA1" : "79f13bd94036154da75a495c51794e095eb16e97",
                "name" : "refs/remotes/origin/main"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "79f13bd94036154da75a495c51794e095eb16e97",
        "branch" : [
          {
            "SHA1" : "79f13bd94036154da75a495c51794e095eb16e97",
            "name" : "refs/remotes/origin/main"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/UstadMobile/Respect.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    {
      "displayPath" : "app-android-debug.apk",
      "fileName" : "app-android-debug.apk",
      "relativePath" : "app-android/build/outputs/apk/debug/app-android-debug.apk"
    },
    {
      "displayPath" : "app-android-release.apk",
      "fileName" : "app-android-release.apk",
      "relativePath" : "app-android/build/outputs/apk/release/app-android-release.apk"
    },
    {
      "displayPath" : "app-android-debug.aab",
      "fileName" : "app-android-debug.aab",
      "relativePath" : "app-android/build/outputs/bundle/debug/app-android-debug.aab"
    },
    {
      "displayPath" : "app-android-release.aab",
      "fileName" : "app-android-release.aab",
      "relativePath" : "app-android/build/outputs/bundle/release/app-android-release.aab"
    },
    {
      "displayPath" : "mapping.txt",
      "fileName" : "mapping.txt",
      "relativePath" : "app-android/build/outputs/mapping/release/mapping.txt"
    },
    {
      "displayPath" : "respect-cli-1.0.41.zip",
      "fileName" : "respect-cli-1.0.41.zip",
      "relativePath" : "respect-cli/build/distributions/respect-cli-1.0.41.zip"
    },
    {
      "displayPath" : "respect-server-1.0.41.zip",
      "fileName" : "respect-server-1.0.41.zip",
      "relativePath" : "respect-server/build/distributions/respect-server-1.0.41.zip"
    },
    {
      "displayPath" : "respect-server-shadow-1.0.41.zip",
      "fileName" : "respect-server-shadow-1.0.41.zip",
      "relativePath" : "respect-server/build/distributions/respect-server-shadow-1.0.41.zip"
    }
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#499",
  "duration" : 173328,
  "estimatedDuration" : 180857,
  "executor" : None,
  "fullDisplayName" : "RESPECT-Primary #499",
  "id" : "499",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 499,
  "queueId" : 11541,
  "result" : "SUCCESS",
  "timestamp" : 1788269299536,
  "url" : "https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary/499/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app-android/src/main/kotlin/world/respect/AppKoinModule.kt",
          "app-android/src/main/AndroidManifest.xml",
          "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCaseAndroid.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/XapiLaunchParams.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt",
          "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt",
          "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppTags.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/OpenEelIntent.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt"
        ],
        "commitId" : "94fb283538e4668d8f7e0f1a8722e0b335e69c36",
        "timestamp" : 1787908657000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Improve support for launching native apps using intent uri and custom action.\u000a\u000aIntent uri can be used by compatible apps to specify that a native app is required to open a publication. A specific action intent can be used to support dynamic domains (e.g. on apps where the user can specify their own server, making verified app links impossible).\u000a",
        "date" : "2026-08-28 13:17:37 +0400",
        "id" : "94fb283538e4668d8f7e0f1a8722e0b335e69c36",
        "msg" : "Improve support for launching native apps using intent uri and custom action.",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/XapiLaunchParams.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppTags.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt"
          },
          {
            "editType" : "edit",
            "file" : "app-android/src/main/AndroidManifest.xml"
          },
          {
            "editType" : "edit",
            "file" : "app-android/src/main/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/OpenEelIntent.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCaseAndroid.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "app-android/src/main/AndroidManifest.xml"
        ],
        "commitId" : "e6c78c1186adb61644e90402ca52deda4724d3fa",
        "timestamp" : 1787910703000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add non-https support to query for org.openeel.action.LAUNCH\u000a",
        "date" : "2026-08-28 13:51:43 +0400",
        "id" : "e6c78c1186adb61644e90402ca52deda4724d3fa",
        "msg" : "Add non-https support to query for org.openeel.action.LAUNCH",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "app-android/src/main/AndroidManifest.xml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "app-android/src/main/kotlin/world/respect/MainActivity.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt",
          "app-android/src/main/kotlin/world/respect/AppKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt",
          "app-android/src/main/AndroidManifest.xml",
          "respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt",
          "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt",
          "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt",
          "respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.kt",
          "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt",
          "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJobProcessor.kt",
          "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt",
          "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt"
        ],
        "commitId" : "d10f9c64824de16973cd67b2548a978a5b26d5f4",
        "timestamp" : 1787925647000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add support to show app installation prompt.\u000a",
        "date" : "2026-08-28 18:00:47 +0400",
        "id" : "d10f9c64824de16973cd67b2548a978a5b26d5f4",
        "msg" : "Add support to show app installation prompt.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt"
          },
          {
            "editType" : "edit",
            "file" : "app-android/src/main/kotlin/world/respect/MainActivity.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "app-android/src/main/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJobProcessor.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "app-android/src/main/AndroidManifest.xml"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt",
          "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt",
          "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt"
        ],
        "commitId" : "382c3b245cb544ee8e01b89bd67c909a0a163f3a",
        "timestamp" : 1787927780000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add referrer parameter when directing users to an app store.\u000a",
        "date" : "2026-08-28 18:36:20 +0400",
        "id" : "382c3b245cb544ee8e01b89bd67c909a0a163f3a",
        "msg" : "Add referrer parameter when directing users to an app store.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt"
        ],
        "commitId" : "4f9b0028accce4af732cbc094e632d6fa2c20d82",
        "timestamp" : 1787928409000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add referrer parameter when directing users to an app store.\u000a",
        "date" : "2026-08-28 18:46:49 +0400",
        "id" : "4f9b0028accce4af732cbc094e632d6fa2c20d82",
        "msg" : "Add referrer parameter when directing users to an app store.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseProcessor.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt",
          "app-android/src/main/kotlin/world/respect/MainActivity.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt",
          "app-android/src/main/kotlin/world/respect/AppKoinModule.kt",
          "respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseAndroidImpl.kt",
          "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/password/SavePasswordUseCase.kt",
          "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt",
          "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt",
          "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/EnqueueActivityContextJobUseCase.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCase.kt",
          "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCaseAndroid.kt",
          "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt"
        ],
        "commitId" : "adb4fd184baff20a4069382ff26a6a57ab31ecb3",
        "timestamp" : 1788094820000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Rename install prompt to GoToAppStore.\u000a\u000aUpdate SavePasswordUseCase to use activity context processor.\u000a",
        "date" : "2026-08-30 17:00:20 +0400",
        "id" : "adb4fd184baff20a4069382ff26a6a57ab31ecb3",
        "msg" : "Rename install prompt to GoToAppStore.",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/EnqueueActivityContextJobUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCase.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseProcessor.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/password/SavePasswordUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseAndroidImpl.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt"
          },
          {
            "editType" : "edit",
            "file" : "app-android/src/main/kotlin/world/respect/MainActivity.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCaseAndroid.kt"
          },
          {
            "editType" : "delete",
            "file" : "respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "app-android/src/main/kotlin/world/respect/AppKoinModule.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt",
          "respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt"
        ],
        "commitId" : "db1f7b231d0caf93995bea64b72fbfecd5d2765e",
        "timestamp" : 1788096442000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add mobile only lessons to the demoapp catalog.\u000a",
        "date" : "2026-08-30 17:27:22 +0400",
        "id" : "db1f7b231d0caf93995bea64b72fbfecd5d2765e",
        "msg" : "Add mobile only lessons to the demoapp catalog.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt",
          "README_ADD_YOUR_APP.md"
        ],
        "commitId" : "8a654eaaf39c5ada415dc3289b329710cc1e08d5",
        "timestamp" : 1788097416000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Update README_ADD_YOUR_APP.md to add guidance on handling publications that require a native app.\u000a",
        "date" : "2026-08-30 17:43:36 +0400",
        "id" : "8a654eaaf39c5ada415dc3289b329710cc1e08d5",
        "msg" : "Update README_ADD_YOUR_APP.md to add guidance on handling publications that require a native app.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "README_ADD_YOUR_APP.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "README_ADD_YOUR_APP.md"
        ],
        "commitId" : "bdfeefc27719949eaf47dee0ddd2f2bbb1c9a169",
        "timestamp" : 1788106071000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Update README_ADD_YOUR_APP.md to add guidance on intent filter.\u000a",
        "date" : "2026-08-30 20:07:51 +0400",
        "id" : "bdfeefc27719949eaf47dee0ddd2f2bbb1c9a169",
        "msg" : "Update README_ADD_YOUR_APP.md to add guidance on intent filter.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "README_ADD_YOUR_APP.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt",
          "respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt",
          "respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/JsonObjectExt.kt",
          "respect-server/src/main/resources/demoapp/locales/fr-FR.json",
          "respect-server/src/main/resources/demoapp/locales/en-US.json",
          "respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt"
        ],
        "commitId" : "76a3f81564d1ca947cfb1665b7b53c04b62972e3",
        "timestamp" : 1788162043000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add initial language map for multilingual launchable app demo.\u000a",
        "date" : "2026-08-31 11:40:43 +0400",
        "id" : "76a3f81564d1ca947cfb1665b7b53c04b62972e3",
        "msg" : "Add initial language map for multilingual launchable app demo.",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/JsonObjectExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/resources/demoapp/locales/en-US.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/resources/demoapp/locales/fr-FR.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt",
          "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt",
          "respect-server/src/main/resources/demoapp/index.html",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt",
          "respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt",
          "respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/StringExt.kt",
          "respect-server/src/main/resources/demoapp/locales/fr-FR.json",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt",
          "respect-server/src/main/resources/demoapp/locales/en-US.json",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt",
          "respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt"
        ],
        "commitId" : "7a3da32354ec1188fbc09f228f562c409c5815d1",
        "timestamp" : 1788181028000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Update demo app to show multiple language versions.\u000a",
        "date" : "2026-08-31 16:57:08 +0400",
        "id" : "7a3da32354ec1188fbc09f228f562c409c5815d1",
        "msg" : "Update demo app to show multiple language versions.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/resources/demoapp/locales/fr-FR.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/resources/demoapp/locales/en-US.json"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/StringExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/resources/demoapp/index.html"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt",
          "README_ADD_YOUR_APP.md",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt",
          "respect-lib-opds-model/README_LAUNCHABLE_APP.md"
        ],
        "commitId" : "ed81ce23b4e4d297704f361b7f7dc66bb31e0835",
        "timestamp" : 1788187739000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Update demo app examples to include multiple languages.\u000a",
        "date" : "2026-08-31 18:48:59 +0400",
        "id" : "ed81ce23b4e4d297704f361b7f7dc66bb31e0835",
        "msg" : "Update demo app examples to include multiple languages.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-opds-model/README_LAUNCHABLE_APP.md"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt"
          },
          {
            "editType" : "edit",
            "file" : "README_ADD_YOUR_APP.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/resources/demoapp/index.html"
        ],
        "commitId" : "a85c3071dcea57d0b8f5b8991ff83b8e95219bac",
        "timestamp" : 1788188325000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Update demoapp index.html\u000a",
        "date" : "2026-08-31 18:58:45 +0400",
        "id" : "a85c3071dcea57d0b8f5b8991ff83b8e95219bac",
        "msg" : "Update demoapp index.html",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/resources/demoapp/index.html"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/composeResources/values/strings.xml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt",
          "contrib/language-names.ods",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReadiumLinkExt.kt",
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt",
          "app-android/src/main/kotlin/world/respect/AppKoinModule.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getlanguageendonym/GetLanguageEndonymUseCase.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/AlternativeLangLinks.kt",
          "respect-lib-shared/src/commonMain/composeResources/values/lang_names.xml",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt"
        ],
        "commitId" : "45162fda4d8ae2a78b1073cadbb6193a9fb70f31",
        "timestamp" : 1788261154000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add support to display alternative language versions for apps and learning units.\u000a",
        "date" : "2026-09-01 15:12:34 +0400",
        "id" : "45162fda4d8ae2a78b1073cadbb6193a9fb70f31",
        "msg" : "Add support to display alternative language versions for apps and learning units.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/strings.xml"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/composeResources/values/lang_names.xml"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "contrib/language-names.ods"
          },
          {
            "editType" : "add",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/components/AlternativeLangLinks.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReadiumLinkExt.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getlanguageendonym/GetLanguageEndonymUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt"
          },
          {
            "editType" : "edit",
            "file" : "app-android/src/main/kotlin/world/respect/AppKoinModule.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt"
        ],
        "commitId" : "0c734ef1853f901413b6829b2339531eac50b9cb",
        "timestamp" : 1788263695000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Update grade collection title.\u000a",
        "date" : "2026-09-01 15:54:55 +0400",
        "id" : "0c734ef1853f901413b6829b2339531eac50b9cb",
        "msg" : "Update grade collection title.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt"
        ],
        "commitId" : "b2f8a9f343fe8863b4d372dc809b614870d335a5",
        "timestamp" : 1788264635000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Fix OpdsRespectRepositoryIntegrationTest.kt compilation\u000a",
        "date" : "2026-09-01 16:10:35 +0400",
        "id" : "b2f8a9f343fe8863b4d372dc809b614870d335a5",
        "msg" : "Fix OpdsRespectRepositoryIntegrationTest.kt compilation",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "README_ADD_YOUR_APP.md"
        ],
        "commitId" : "5052d265d464808f675b60958901c2c3f96d979e",
        "timestamp" : 1788269163000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Update README_ADD_YOUR_APP.md documentation on loading offline resources.\u000a",
        "date" : "2026-09-01 17:26:03 +0400",
        "id" : "5052d265d464808f675b60958901c2c3f96d979e",
        "msg" : "Update README_ADD_YOUR_APP.md documentation on loading offline resources.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "README_ADD_YOUR_APP.md"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
      "fullName" : "Mike Dawson"
    }
  ]
}