Beispiel: GitHub-Suchquelle einrichten

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 1 Minute Lesedauer
  • Richten Sie eine erweiterte Suchquelle ein, die Daten von einer externen Website abfragt.

    Vorbereitungen

    Erforderliche Rolle: keine

    Um eine Quelle für erweiterte Suche zu erstellen, benötigen Sie authentifizierten Zugriff auf eine externe Website über eine REST-API und grundlegende Kenntnisse von AngularJS .

    Prozedur

    1. Navigieren Sie in der Plattform-UI zu Serviceportal > Portale Und wählen Sie das Portal aus, dem Sie Suchquellen hinzufügen möchten.
    2. Klicken Sie in der zugehörigen Liste Suchquellen auf Neu.
    3. Erstellen Sie einen Namen und eine ID für die Suchquelle.
      Die ID sollte eindeutig sein und darf keine Leerzeichen oder Sonderzeichen enthalten.
    4. Auf der Registerkarte Datenquelle wählen Sie das Kontrollkästchen Ist geskriptete Quelle aus.
    5. Fügen Sie dem Datenabrufskriptfeld Inhalt hinzu.

      So richten Sie eine GitHub-Integration ein:

      (function(query) {
          var results = [];
          /* Calculate your results here. */
          var url = "https://api.github.com/search/repositories?q=" + encodeURI(query);
          var ws = new GlideHTTPRequest(url);
          ws.setBasicAuth("YOUR_USERNAME_HERE", "YOUR_PASSWORD_HERE");
          var jsonOutput = ws.get();
          if (jsonOutput) {
              var response = new JSON().decode(jsonOutput.getBody());
              results = response.items;
              results.forEach(function(result) {
                  result.url = result.svn_url;
                  result.target = "_blank";
                  result.primary = result.full_name;
              });
          }
      
          return results;
      })(query);
      Hinweis:
      Im vorherigen Beispiel ws.setBasicAuth Erfordert einen Anwendernamen und ein Passwort für die externe Ressource. Weitere Informationen finden Sie unter GlideHTTPRequest: Global .
    6. Verwenden Sie die Seitenvorlage „Suche“, um die Anzeige der Suchergebnisse anzupassen.
      <div>
        <div class="pull-right">
          <strong>{{item.language}}</strong>
          <a ng-href="{{item.svn_url}}/stargazers" target="_blank" class="m-l-sm"><span class="fa fa-star m-r-xs"></span>{{item.stargazers_count}}</a>
          <a ng-href="{{item.svn_url}}/network" target="_blank" class="m-l-sm"><span class="fa fa-code-fork m-r-xs"></span>{{item.forks}}</a>
        </div>
        <a ng-href="{{item.svn_url}}" target="_blank" class="h4 text-primary m-b-sm block">
          <span ng-bind-html="highlight(item.full_name, data.q)"></span>
        </a>
        <p>{{item.description}}</p>
        <p>Updated <sn-time-ago timestamp="item.updated_at"></sn-time-ago> ago</p>
      </div>