Ya busqué en las discusiones y probé esto,

Changeset changeSet = _versionControlServer.GetChangeset(Int32.Parse(changesetString));
                            if (changeSet != null)
                            {


                                foreach (var item in changeSet.AssociatedWorkItems)
                                {
                                    WorkItem wk = workItemStore.GetWorkItem(item.Id);

Pero no puedo encontrar una propiedad pública de WorkItem que diga "Terminado (se ve bien)".

¿Hay alguna forma de encontrar esto a través de la API?

3
Priyanka Raghavan 19 feb. 2018 a las 09:03

2 respuestas

La mejor respuesta

Hay dos tipos de elementos de trabajo relacionados con las revisiones de código: Solicitud de revisión de código , Respuesta de revisión de código .

Cuando solicita una revisión, TFS crea una Solicitud de revisión de código y luego, entre bastidores, crea una Respuesta de revisión de código para cada persona a la que ha pedido que revise mi trabajo. Entonces, si etiqueta a Alice, Bob y Charlie en mi revisión, hay cuatro elementos de trabajo creados para mí: una solicitud más tres respuestas.

El pegamento es algo llamado Enlace relacionado . La revisión de los padres se relaciona con las respuestas de los niños y viceversa. Esto simplifica un poco las cosas porque una vez que tienes la revisión, puedes fácilmente determinar los elementos de trabajo de respuesta en función de sus ID.

El código que está intentando obtener para el elemento de trabajo es Solicitud de revisión de código. Lo que desea encontrar es un archivo llamado Estado cerrado en Respuesta de revisión de código:

El estado seleccionado por el revisor al cerrar la solicitud de revisión de código. El número se almacena en el sistema y se escribe en el almacén de datos de la siguiente manera:

  • 0 â € "No revisado
  • 1 - Se ve bien
  • 2 - Con comentarios
  • 3- Necesita trabajo
  • 4 - Rechazado
  • 5 - Eliminado

Nombre de referencia = Microsoft.VSTS.CodeReview.ClosedStatus

Enlace de origen

Puede utilizar la combinación de WIQL con la API de TFS para obtener lo que necesita. Detalles de los pasos, consulte este tutorial: Obtener estadísticas de revisión de código mediante programación desde TFS

Aquí se muestran más ejemplos de acceso a revisiones de código con la API de TFS: Usando la API de TFS, ¿cómo puedo encontrar los comentarios que se hicieron en una revisión de código?

4
PatrickLu-MSFT 20 feb. 2018 a las 04:00

Para cualquiera que lo necesite

 foreach (WorkItem wr in workitems)
            {

            string shelvsetValue = null;
            string codeState = null;
            string userName = wr.CreatedBy.ToString();
            foreach(Field f in wr.Fields)
            {
                if(f.Name.Equals("Associated Context"))
                {
                    shelvsetValue = f.Value.ToString();
                }
                if (f.Name.Equals("Closed Status Code"))
                {
                    if(f.Value!=null)
                    { 
                        codeState = f.Value.ToString();
                    }
                }
            }
1
PatrickLu-MSFT 26 feb. 2018 a las 07:39