async run()

in src/commands/build/branches/show.ts [30:78]


  async run(client: AppCenterClient, portalBaseUrl: string): Promise<CommandResult> {
    const app = this.app;

    debug(`Getting builds for branch ${this.branchName}`);
    let branchBuildsRequestResponse: ClientResponse<models.Build[]>;
    try {
      branchBuildsRequestResponse = await out.progress(
        `Getting builds for branch ${this.branchName}...`,
        clientRequest<models.Build[]>((cb) => client.builds.listByBranch(this.branchName, app.ownerName, app.appName, cb))
      );
    } catch (error) {
      if (error.statusCode === 400) {
        return failure(ErrorCodes.IllegalCommand, `app ${app.appName} is not configured for building`);
      } else {
        debug(`Request failed - ${inspect(error)}`);
        return failure(ErrorCodes.Exception, "the Branch Builds request was rejected for an unknown reason");
      }
    }

    const builds = branchBuildsRequestResponse.result;

    if (builds.length === 0) {
      out.text(`There are no builds for the branch ${this.branchName}`);
      return success();
    }

    // Taking last build
    const lastBuild = _.maxBy(builds, (build) => Number(build.id));

    debug(`Getting commit info for commit ${lastBuild.sourceVersion}`);
    let commitInfoRequestResponse: ClientResponse<models.CommitDetails[]>;
    try {
      commitInfoRequestResponse = await out.progress(
        `Getting commit info for ${lastBuild.sourceVersion}...`,
        clientRequest<models.CommitDetails[]>((cb) =>
          client.commits.listByShaList([lastBuild.sourceVersion], app.ownerName, app.appName, cb)
        )
      );
    } catch (error) {
      debug(`Request failed - ${inspect(error)}`);
      return failure(ErrorCodes.Exception, "the Branch Builds request was rejected for an unknown reason");
    }

    const commitInfo = commitInfoRequestResponse.result[0];

    reportBuild(getBuildReportObject(lastBuild, commitInfo, app, portalBaseUrl));

    return success();
  }