Recuperare le subissue e il loro stato di completamento in GitHub

di Matteo Tumiati, in DevOps,

In un recentissimo aggiornamento della GitHub CLI è stata introdotta la possibilità di fare query sulle sub-issue di GitHub, ovvero quelle issue che sfruttano la gerarchia "padre-figlio", un po' in stile DevOps quando abbiamo i task-type Feature -> Work Item -> Task/Bug. Sebbene di fatto siano issue a tutti gli effetti, quindi non sono trattate diverse dalle altre, sono state aggiunte un po' di proprietà per avere un summary degli eventi. Vediamo un esempio:

ISSUE_ID=$(gh api graphql -H X-Github-Next-Global-ID:1 -f query='
  query($owner: String!, $repo: String!, $issue_number: Int!) {
    repository(owner: $owner, name: $repo) {
      issue(number: $issue_number) {
        id
      }
    }
  }
' -F owner=aspitalia -F repo=graphql-testing -F issue_number=12345 --jq '.data.repository.issue.id')

Con questo primo pezzo di codice andiamo a recuperare, dato l'ID numerico di una issue, quello che è il suo "NodeId", ovvero un identificativo alfanumerico univoco. A questo punto possiamo recuperare lo stato di tutte le sub-issue collegate ad esso:

gh api graphql -H GraphQL-Features:sub_issues -H X-Github-Next-Global-ID:1 -f query='
query($issueId: ID!) {
  node(id: $issueId) {
    ... on Issue {
      subIssuesSummary {
        total
        completed
        percentCompleted
      }
    }
  }
}' -F issueId="$ISSUE_ID"

In questo modo siamo riusciti a recuperare non solo quante sono le issue ad esso correlate, ma possiamo anche ottenere una percentuale di completamento per queste, cosa che non era fattibile, per esempio, in Azure DevOps (a meno di correlazioni tramite strumenti esterni come PowerBI).

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi