Skip to main content

Esta versión de GitHub Enterprise se discontinuó el 2022-09-28. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener rendimiento mejorado, seguridad mejorada y nuevas características, actualice a la versión más reciente de GitHub Enterprise. Para obtener ayuda con la actualización, póngase en contacto con el soporte técnico de GitHub Enterprise.

Trabajar con los comentarios

Puedes acceder y administrar los comentarios en tus solicitudes de extracción, informes de problemas o confirmaciones si utilizas la API de REST.

Para cualquier solicitud de incorporación de cambios, GitHub Enterprise Server proporciona tres tipos de vistas de comentarios: comentarios en la solicitud de incorporación de cambios en su conjunto, comentarios en una línea específica dentro de la solicitud de incorporación de cambios y comentarios sobre una confirmación concreta dentro de la solicitud de incorporación de cambios.

Cada uno de estos tipos de comentarios pasan por una porción diferente de la API de GitHub Enterprise Server. En esta guía exploraremos cómo puedes acceder y manipular cada uno de ellos. Para cada ejemplo, se usará esta solicitud de incorporación de cambios de ejemplo realizada en el repositorio "octocat". Como siempre, los ejemplos se pueden encontrar en nuestro repositorio platform-samples.

Comentarios de las Solicitudes de Extracción

Para acceder a los comentarios de una solicitud de incorporación de cambios, tendrá que usar Issues API. Esto puede parecer contraintuitivo al principio. Pero una vez que comprenda que una solicitud de incorporación de cambios es solo una incidencia con código, tendrá sentido usar Issues API para crear comentarios en una solicitud de incorporación de cambios.

Se mostrará la captura de comentarios de solicitud de incorporación de cambios mediante la creación de un script de Ruby con Octokit.rb. También querrá crear un token de acceso personal.

El código siguiente debería ayudarle a empezar a acceder a los comentarios de una solicitud de incorporación de cambios con Octokit.rb:

require 'octokit'

# !!! DO NOT EVER USE HARD-CODED VALUES IN A REAL APP !!!
# Instead, set and test environment variables, like below
client = Octokit::Client.new :access_token => ENV['MY_PERSONAL_TOKEN']

client.issue_comments("octocat/Spoon-Knife", 1176).each do |comment|
  username = comment[:user][:login]
  post_date = comment[:created_at]
  content = comment[:body]

  puts "#{username} made a comment on #{post_date}. It says:\n'#{content}'\n"
end

Aquí, se llama específicamente a Issues API para obtener los comentarios (issue_comments), y se proporcionan el nombre del repositorio (octocat/Spoon-Knife) y el identificador de la solicitud de incorporación de cambios que interesa (1176). Después, solo es cuestión de iterar por los comentarios para capturar la información sobre cada uno.

Comentarios en una línea de una solicitud de extracción

Dentro de la vista de diferencias, puede iniciar un debate sobre un aspecto específico de un cambio concreto que se haya realizado dentro de la solicitud de incorporación de cambios. Estos comentarios aparecen en las líneas individuales dentro de un archivo que ha cambiado. La dirección URL del punto de conexión de este debate procede de la API de revisión de solicitudes de incorporación de cambios.

El código siguiente obtiene todos los comentarios de la solicitud de extracción que se hayan hecho en los archivos, si se le da un número particular de solicitud de extracción:

require 'octokit'

# !!! DO NOT EVER USE HARD-CODED VALUES IN A REAL APP !!!
# Instead, set and test environment variables, like below
client = Octokit::Client.new :access_token => ENV['MY_PERSONAL_TOKEN']

client.pull_request_comments("octocat/Spoon-Knife", 1176).each do |comment|
  username = comment[:user][:login]
  post_date = comment[:created_at]
  content = comment[:body]
  path = comment[:path]
  position = comment[:position]

  puts "#{username} made a comment on #{post_date} for the file called #{path}, on line #{position}. It says:\n'#{content}'\n"
end

Te darás cuenta de que es increíblemente similar al ejemplo anterior. La diferencia entre esta vista y el comentario de la solicitud de extracción es el enfoque de la conversación. Un comentario realizado en una solicitud de incorporación de cambios se debe reservar para debatir ideas sobre el enfoque general del código. Un comentario realizado como parte de una revisión de una solicitud de incorporación de cambios deberá tratar específicamente la forma en la que se ha implementado un cambio concreto dentro de un archivo.

Comentarios de las confirmaciones

El último tipo de comentarios suceden específicamente en confirmaciones individuales. Por este motivo, usan la API de comentario de confirmación.

Para recuperar los comentarios en una confirmación, necesitarás utilizar el SHA1 de ésta. Es decir, no utilizarás ningún identificador relacionado con la Solicitud de Extracción. Este es un ejemplo:

require 'octokit'

# !!! DO NOT EVER USE HARD-CODED VALUES IN A REAL APP !!!
# Instead, set and test environment variables, like below
client = Octokit::Client.new :access_token => ENV['MY_PERSONAL_TOKEN']

client.commit_comments("octocat/Spoon-Knife", "cbc28e7c8caee26febc8c013b0adfb97a4edd96e").each do |comment|
  username = comment[:user][:login]
  post_date = comment[:created_at]
  content = comment[:body]

  puts "#{username} made a comment on #{post_date}. It says:\n'#{content}'\n"
end

Tenga en cuenta que esta llamada API recuperará comentarios de una sola línea, así como los realizados en toda la confirmación.