Exemple : configurer une source de recherche GitHub

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 1 minute de lecture
  • Configurez une source de recherche avancée qui interroge les données à partir d’un site web externe.

    Avant de commencer

    Rôle requis : aucun

    Pour créer une source de recherche avancée, vous devez disposer d’un accès authentifié à un site Web externe via une API REST et avoir des connaissances de base sur AngularJS.

    Procédure

    1. Dans l’interface utilisateur de la plateforme, accédez à Portail de services > Portails et sélectionnez le portail auquel vous souhaitez ajouter des sources de recherche.
    2. Dans la liste connexe Sources de recherche, cliquez sur Nouveau.
    3. Créez un nom et un ID pour la source de recherche.
      L’ID doit être unique et ne doit pas inclure d’espaces ou de caractères spéciaux.
    4. Dans l’onglet Source de données , cochez la case Est une source scriptée .
    5. Ajouter du contenu au champ de script d’extraction de données.

      Pour configurer une intégration GitHub :

      (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);
      Remarque :
      Dans l’exemple précédent, ws.setBasicAuth nécessite un nom d’utilisateur et un mot de passe pour la ressource externe. Pour plus d’informations, consultez GlideHTTPRequest : global.
    6. Utilisez le modèle de page de recherche pour personnaliser l’affichage des résultats de recherche.
      <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>