> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Ownership

export const VersionRequirements = ({versions = []}) => {
  if (!Array.isArray(versions) || versions.length === 0) {
    return null;
  }
  const boundaries = {
    upper: " or lower",
    exact: "",
    lower: " or higher"
  };
  const containerStyle = {
    marginTop: "0.5rem",
    marginBottom: "1.5rem"
  };
  const lineStyle = {
    display: "block",
    margin: "0 0 0.35rem 0",
    fontSize: "0.875rem",
    lineHeight: "1.4"
  };
  const pillBaseStyle = {
    display: "inline-block",
    padding: "0.1em 0.4em",
    borderRadius: "0.25rem",
    border: "1px solid",
    fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace",
    fontSize: "0.85em",
    fontWeight: 500
  };
  const pillColors = {
    "AppSignal for Elixir": {
      background: "#f3e8ff",
      borderColor: "#e9d5ff",
      color: "#9333ea"
    },
    "AppSignal for Front-end": {
      background: "#fef9c3",
      borderColor: "#fde68a",
      color: "#ca8a04"
    },
    "AppSignal for Go": {
      background: "#ccfbf1",
      borderColor: "#99f6e4",
      color: "#0d9488"
    },
    "AppSignal for JavaScript": {
      background: "#fef9c3",
      borderColor: "#fde68a",
      color: "#ca8a04"
    },
    "AppSignal for Node.js": {
      background: "#dcfce7",
      borderColor: "#bbf7d0",
      color: "#16a34a"
    },
    "AppSignal for Python": {
      background: "#dbeafe",
      borderColor: "#bfdbfe",
      color: "#2563eb"
    },
    "AppSignal for Ruby": {
      background: "#fee2e2",
      borderColor: "#fecaca",
      color: "#dc2626"
    },
    "AppSignal for Rust": {
      background: "#ffedd5",
      borderColor: "#fed7aa",
      color: "#ea580c"
    }
  };
  const defaultPillColor = {
    background: "#f4f4f5",
    borderColor: "#e4e4e7",
    color: "#52525b"
  };
  const getPillStyle = name => ({
    ...pillBaseStyle,
    ...pillColors[name] || defaultPillColor
  });
  const getBoundText = bound => {
    return boundaries[bound] || boundaries.lower;
  };
  return <div style={containerStyle}>
      {versions.map((v, i) => <p key={`${v.name}-${v.version}-${v.bound || "lower"}-${i}`} style={lineStyle}>
          This feature requires{" "}
          <code style={getPillStyle(v.name)}>{v.name}</code> version {v.version}
          {getBoundText(v.bound)}.
        </p>)}
    </div>;
};

<VersionRequirements
  versions={[
{ name: "AppSignal for Ruby", version: "4.3.3" }
]}
/>

La gem AppSignal est compatible d'emblée avec la gem [Ownership](https://github.com/ankane/ownership/).

## Utilisation

Lorsque vous utilisez la gem Ownership pour attribuer la propriété à des blocs de code spécifiques, la gem AppSignal for Ruby ajoutera automatiquement un tag owner à l'échantillon résultant, avec le dernier propriétaire attribué à un bloc de code
au cours de cet échantillon comme valeur du tag :

<CodeGroup>
  ```ruby Ruby theme={null}
  # This will set the owner tag for this sample to :growth
  owner :growth do
    crunch_user_numbers
  end
  ```
</CodeGroup>

<img src="https://mintcdn.com/appsignal-715f5a51/4TRZP0Sq9Zq7PAPW/assets/images/screenshots/ruby/integrations/ownership/owner-tag.png?fit=max&auto=format&n=4TRZP0Sq9Zq7PAPW&q=85&s=12141ed9f7c50631e3e5f56a92426cfd" alt="Intégration Ownership dans AppSignal" width="1120" height="200" data-path="assets/images/screenshots/ruby/integrations/ownership/owner-tag.png" />

Vous pouvez utiliser ce tag pour filtrer les échantillons dans AppSignal par l'équipe qui possède le code correspondant.

Lorsqu'une erreur est signalée, le tag owner pour l'échantillon d'erreur sera défini sur le propriétaire du bloc de code qui a causé l'erreur.

## Définir les namespaces

Vous pouvez également définir l'[option de configuration `ownership_set_namespace`](/ruby/configuration/options#option-ownership_set_namespace`) sur `true` pour qu'en plus du tag owner, le namespace soit automatiquement défini sur le propriétaire.

L'utilisation de namespaces vous permet de voir facilement quelles actions de performance et quelles erreurs appartiennent à une équipe spécifique.

Notez que la modification du namespace pour les actions et les erreurs qui ont déjà été signalées à AppSignal entraînera leur signalement comme de nouvelles actions et erreurs.

## Désactiver l'intégration

Pour désactiver complètement l'intégration avec la gem Ownership, définissez l'[option de configuration `instrument_ownership`](/ruby/configuration/options#option-instrument_ownership) sur `false`.
