Como empujar Fedora Badges

Arquitectura

El demonio de punto final que otorga insignias, fedbadges, despierta cuando recibe un evento fedmsg. Compara ese mensaje y el histórico de datanommer con una serie de reglas. Si un contribuyente cumple con los criterios descritos en una de esas reglas, se le premia con una insignia.

La interfaz es una aplicación web llamada Tahrir. Principalmente es soo una interfaz para que los usuarios vean sus insignias. Sin embargo, también tiene una interfaz de administración para el añadido manual de nuevas insignias, la concesión de insignias y la creación de "invitaciones" (códigos QR) para las insignias.

El demonio que otorga insignias, fedbadges, corre sobre el nodo badges-backend01. El proceso es fedmsg-hub y los registros están en /var/log/fedmsg/fedmsg-hub.log.

La interfaz corre bajo apache/mod_wsgi sobre nodos badges-web0{1,2}.

Documentación

  • Para una descripción detallada de como funciona el demonio fedbadges, vea fedbadges README.

  • Para un diagrama de como interactúan las piezas en el sistema Fedora Badges, vea fedbadges diagrams.

Proceso de administrador de sistema: Como empujar un Badge

El empujar insignias consta de dos operaciones:

  1. Subir activos de insignias (.png, .svg, .yaml) al repositorio fedora-badges

  2. Añadir insignia a badges.fedoraproject.org

Cualquiera con permisos de escritura en fedora-badges puede subir insignias. También se pueden usar solicitudes de extracción. Solo los miembros de sysadmin-badges FAS group and administradores de la interfaz web pueden añadir insignias.

Los artistas y desarrolladores de insignias pueden subir diseños (png y svg art) y reglas (yaml) al repositorio fedora-badges.

Preparando para crear una insignia

Una vez que se ha aprobado una insignia por el Equipo de Diseño y tiene la etiqueta ready to push, está preparada para ser subida. Siga esta lista de comprobación para subir una nueva insignia:

  1. Asegúrese que el diseño está aprobado por el Equipo de Diseño

  2. Asegúrese de que el nombre y la descripción de la insignia sean claros

  3. Asegúrese de cumplir uno de estos requisitos:

    • Insignias otorgadas manualmente: Que cuentas FAS reciben permisos para otorgar la insignia

    • Otorgada por medio de una regla fedmsg: El fichero YAML con la regla está presente

Si está confundido o algo no aparece, comente sobre la cuestión y borre la etiqueta ready to push.

Agregar activos de insignia a Pagure

  1. Descargue el trabajo y el fichero de regla (si es aplicable):

    • Verifique dos veces que el trabajo sea la versión final del boleto

    • Abra / visualice ambos ficheros del trabajo para comprobar que no están corrompidos (en el pasado, las imágenes corruptas eran accidentalmente subidas)

  2. Dé a ambos ficheros, trabajo y regla, el mismo nombre, sitúelos en los directorios pngs/, svg/, rules/

  3. Solo sobre petición: Genere un fichero STL para impresión en 3D de una insignia:

    • Cambie a los directorios en bin/ y ejecute export.sh. Esto crea un fichero STL para la insignia y lo lleva al sitio correcto.

    • Compruebe en el fichero README en bin/ mas información sobre el script.

  4. Confirme todos los archivos y súbalos a fedora-badges (o haga un PR)

Asegúrese que los ficheros tienen un nombre razonable (e.g. all-lowercase-dashes-only.png). Algunos tipos de insignias tienen una convención de denominación, como las insignias de pertenencia al grupo FAS (i.e. fas-badge-name.png) o la construcción de insignias Koji (i.e. koji-badge-name.png). Siga los precedentes pasados cuando sea posible. Mas tarde, el nombre del fichero se usa para el fichero de interfaz del servidor (e.g. https://badges.fedoraproject.org/pngs/all-lowercase-dashes-only.png).

Suba los activos al servidor de fondo por medio de Ansible

Aviso: Todos los activos deben estar en la rama master de fedora-badges antes de proceder. Usted debe ser miembros de sysadmin-badges en FAS para este trabajo.

Next, you need to move all assets from the Pagure repository to the back-end server. This is done via an Ansible playbook from the batcave server. Follow these steps to push the assets to production.

  1. SSH into batcave01.iad2.fedoraproject.org

  2. Ejecute el libro de jugadas: sudo rbac-playbook manual/push-badges.yml

  3. Introduzca la contraseña FAS y ficha 2FA

  4. Una vez terminado, asegúrese que la insignia es públicamente visible (i.e. https://badges.fedoraproject.org/pngs/<name>.png)

Añadir insignias otorgadas automáticamente

Aviso: Preste mucha atención al seguir estos pasos. Es fácil crear una insignia, pero es mucho más duro editarla mas tarde. La información de doble confirmación se debe introducir correctamente en el archivo YAML o de otro modo tendrá que escribir instrucciones SQL para corregirlo más tarde.

Las insignias otorgadas automáticamente son creadas por la regla del archivo YAML. Una vez termine el libro de jugadas de Ansible, la insignia se crea y se coloca en el índice de insignias. La única parte que no se crea automáticamente son las etiquetas (vea en Metadatos Badge más abajo la información sobre las etiquetas). Para añadir nuevas etiquetas, encuentre la insignia en badges.fedoraproject.org. Si ha accedido como administrador, hay un campo de texto para introducir nuevas etiquetas.

Añadir insignias otorgadas manualmente

Aviso: Preste mucha atención al seguir estos pasos. Es fácil crear una insignia, pero es mucho más duro editarla mas tarde. La información de doble confirmación se debe introducir correctamente en el archivo YAML o de otro modo tendrá que escribir instrucciones SQL para corregirlo más tarde.

Una vez que los activos de la insignia se envían al back-end, agregue la insignia al front-end, Tahrir. El front-end está hospedado en badges.fedoraproject.org. Siga estos pasos para añadir la insignia en Tahrir.

  1. Interfaz Open Admin en badges.fedoraproject.org

  2. Vaya a la sección Add badge.

  3. Introduzca toda la información como se suministra en el ticket de la insignia (vea Metadatos Badge más abajo.)

  4. Haga doble comprobación de que toda la información introducida en correcta y precisa

  5. Pulse Create badge para crear la nueva insignia

La insignia se ha creado. Debería ser capaz de encontrarla en el índice de insignias.

Otorgar autorizaciones

Las insignias otorgadas manualmente requieren que usuarios autorizados emitan la insignia. Puede hacer esto en la parte inferior de la interfaz Admin, cerca de Create Authorizations. Añada la persona que recibe privilegios de adjudicación en el campo Person Email. Esto debe ser formateado con su dirección de correo electrónico de fedoraproject.org (e.g. FASuser [en] fedoraproject [punto] org). Por nombre de insignia, use el slug (o nombre de insignia) de la URL de la insignia (e.g. para badges.fedoraproject.org/badge/commops-superstar, esto es commops-superstar).

Para añadir múltiples usuarios, repita este proceso por cada usuario.

Metadatos Badge

  • Nombre: nombre de la insignia – esto determina la URL de la insignia, de modo que verifique tres veces los errores tipográficos

  • Imagen: enlace completo al PNG (e.g. https://badges.fedoraproject.org/pngs/all-lowercase-dashes-only.png)

  • Descripción: texto de descripción de la insignia (asegúrese de que no cuelgue espacios en blanco)

  • Criterio: enlace a la cuestión en fedora-badges

  • Editor: mantener el predeterminado

  • Etiquetas: lita delimitada por comas de las etiquetas:

    • Revise otras insignias similares para asegurar que las etiquetas son las correctas. Algunas etiquetas son especiales y funcionan como categorías.

    • Siga el precedente anterior para las etiquetas. Evite crear nuevas etiquetas si es posible.

    • Quitar etiquetas no es fácil. Añadirlas más tarde es fácil.

Cerrar el boleto

Después de poner la insignia, haga algunas últimas comprobaciones para asegurarse de que la insignia se ha puesto correctamente. Asegúrese de que la página es visible y haga doble comprobación de que se le ha puesto la categoría correcta en el índice de insignias.

Regrese al tema de Pagure para la insignia. Publique un enlace a la insignia puesta. Si ha otorgado autorizaciones, liste los nombres de usuarios FAS a los que otorga autorizaciones. Después de comentar, cierre la cuestión como pushed.

¡Felicitaciones, acaba de poner su propia Fedora Badge!

Cómo otorgar manualmente una insignia

Para llevar a cabo esto, debe estar en grupo FAS sysadmin-badges.

Este es un script instalado sobre badges-backend01 en /usr/local/bin/award-badge. Tiene opciones de ayuda que puede ver con award-badge -h. Toma una opción --user FAS_USERNAME requerida y una opción --badge BADGE_ID también requerida. Por ejemplo, la siguiente invocación otorgará la insignia "Associate Editor" a "ralph":

sudo /usr/local/bin/award-badge --user ralph --badge associate-editor

La BADGE_ID para una insignia se puede encontrar visitando su pagina en la web UI. Esta insignia se puede encontrar en https://badges.fedoraproject.org/badge/associate-editor.

The award-badge script and source code is managed by ansible.git. The source code is in roles/badges/backend/files/award-badge.

Bastante a menudo, es necesario un flujo de trabajo para otorgar por lotes una insignia a varias personas. Por ejemplo, la insignia Keepin' Fedora Beautiful proviene de un miembro del Equipo de Diseño que publica un ticket con una lista de nombres de usuario FAS (i.e. fedora-badges#129).

Para casos, puede wget el archivo con la lista de nombres de usuarios FAS en badges-backend01 y ejecutar algo como:

$ for i in $(cat keepingbeautiful-list ) ; do
    sudo /usr/local/bin/award-badge --user $i --badge keepin-fedora-beautiful-f20;
done

Cómo revocar manualmente una insignia o autorización

Puede revocar una insignia o autorizaciones insignias de modo similar al script award-badges. Puede encadenar la invocación del script revoke-badge o revoke-authorization de la misma manera que el script award-badges.

Revocando una insignia:
sudo /usr/local/bin/revoke-badge --user ralph --badge associate-editor
Recovando una autorización:
sudo /usr/local/bin/revoke-authorization --user ralph --badge associate-editor

Como añadir administradores a Tahrir

Estaría bien si pudiéramos otorgar automáticamente acceso de administrador en el interfaz web a los miembros del grupo FAS sysadmin-badges. Actualmente no tenemos esta función y debemos mantener la lista de los administradores de UI web separadamente.

The configuration file for the badges front-end web app is managed by ansible.git. The source code is in roles/badges/frontend/templates/tahrir.ini.

En este fichero, encuentre la opción tahrir.admin. Es una lista separada por comas de direcciones de correo electrónico que, cuando inicie sesión, debería otorgar derechos para acceder a los paneles de administración en badges.fedoraproject.org.

Para añadir un nuevo administrador, añada su correo electrónico FAS_USERNAME@fedoraproject.org en esa línea, confirme y envíe. Use Ansible para ejecutar el libro de jugadas groups/badges-web.yml para enviar el cambio de configuración a los nodos web.

Como crear una invitación y un código QR

Esto se hace a través del panel de administración de la interfaz web (a pesar de que probablemente podamos escribir un script para ser usado en el nodo back-end).

Invitaciones / códigos QR se crean normalmente para eventos Fedora. Por ejemplo en la conferencia Flock 2013 Fedora Contributors, creamos una insignia para premiar a los asistentes. Seguimos el procedimiento de abajo para generar una invitación y un código QR . Después, el código QR fue distribuido a los organizadores de la conferencia. Ellos añadieron el código QR al folleto de programa que se dio a cada asistente. Entonces, cualquier asistente que escaneó el código fue redirigido a la aplicación insignias, donde fueron premiados con la insignia.

Crear una invitación

  1. Asegúrese que es administrador en la interfaz web y acceda a badges.fedoraproject.org

  2. Pulse el enlace Admin en la UI

  3. Bajo la sección Invitations, añada esta información:

    • Fecha de Creación: Opcional. Por defecto el día actual.

    • Fecha de Expiración: Opcional, pero probablemente deseará especificar una. Por defecto 2 horas desde la hora actual. Por ejemplo, en la conferencia Flock 2013, establecimos la fecha de espiración al final de la conferencia. A cualquiera que intente reclamar la insignia con el código QR después de la hora se le denegará, con el mensaje esta invitación ha expirado.

    • Badge ID: "ID" de la insignia que desea otorgar. Vea arriba como encontrar una ID de insignia.

    • Correo electrónico personal: Correo electrónico de una persona en la base de datos de insignias. En nuestro caso, usar su correo electrónico de Fedora (e.g. FAS_USERNAME@fedoraproject.org).

Ahora, el usuario que ha especificado tendrá un enlace al código QR y un enlace de invitación en su página de perfil. Pueden tomar la iniciativa para distribuir y compartir la insignia como deseen.

Scipts útiles para trabajo manual

Vea ansible/roles/badges/backend/files/ para la carga madre. Todos estos se implementan a /usr/local/bin/ en badges-backend01 donde usted puede acceder para ejecutarlos.

editar-insignia

Actualiza la descripción y el criterio de enlace para una insignia. Útil en el caso de que lo haya creado incorrectamente o si los comentarios de otras partes interesadas nos lleven a cambiar algo.

galardón

Otorgar una insignia a un usuario específico.

revocar-insignia

Borrar una insignia de un usuario al que se le ha otorgado erróneamente. ¡Recuerde! Si usted revoca una insignia otorgada a un usuario, debería darle también una insignia premio-de-consolación como muestra de disculpa.

conceder-autorización

Conceder derechos de autorización sobre una insignia a un usuario privilegiado. Pueden crear enlaces de invitación y códigos QR para la insignia así como otorgarlas directamente a otros usuarios desde la interfaz web.

revocar-autorización

Revocan esos derechos de autorización para un usuario sobre una insignia dada.

Información de contacto

Propietario

Comunidad Fedora Badges

Contacto

#fedora-badges

Servidores

badges-web0*, badges-backend0*

Propósito

Premio "badges" a Contribuyentes Fedora