#180 Create a script to check Welcome-to-Fedora tickets
Closed: Fixed by ankursinha. Opened by alciregi.

Background.

We use a pagure repository [1] to keep track of newcomer's journey in the Fedora community. [2]

What we need

We need to have a look to the last time there was an interaction in each ticket, in order to ping the people (newcomers) and ask them how they are going, if they need help etc. And eventually ask them if they joined a team, or if the newcomer has become unresponsive, and close the ticket to keep the repository clean.
Right now we have to manually check every ticket.

Idea

We need to automate the check.

We need a simple script. This script should be invoked locally by a member of the Fedora Join SIG (no cron, no webapps, no alerting systems).
The script should query the pagure issues and tell us some data:

  • for each ticket:
    • the username (*)
    • when the ticket was created
    • the last time when the ticket was updated
      • possibly the last time the newcomer updated the ticket

(*) In addition, there is already a script [3] that, given a FAS username, it tell us the last time when he/she logged in to the authentication system (last_seen FAS attribute), and if the user performed some activities (by performing a query to datagrepper[4]) in a given timeframe.
This script is not perfect but it is a starting point and could be integrated to the main script described in this ticket.

Requisites

Python

Notes

Pagure offers some APIs. This is the preferred way. But we need to check if these APIs are useful in this case.
Otherwise a wrapper to the issues web page is needed.

POC

For more inputs: @alciregi, @hhlp

[1] https://pagure.io/fedora-join/Welcome-to-Fedora
[2] https://communityblog.fedoraproject.org/fedora-join-is-trying-a-new-people-focused-workflow-for-newcomers/
[3] https://pagure.io/fedora-join/Fedora-Join/blob/master/f/scripts/checkstatus


There is a Python wraper:

https://docs.pagure.org/libpagure/
https://pagure.io/libpagure/
https://pypi.org/project/libpagure/

Pagure API:

https://pagure.io/api/0/

Regards.,

I would like to take up this issue if no one is working on it.

Hey @sash713
Right now also @p4r4xor showed his interest in this task.
You can collaborate!

Sure !!

@sash713 @p4r4xor
Who want to be the assignee of this task? It is just a formality.
Did you get in touch?

We did, @p4r4xor says he'll be busy so I'll take it after I finish the other issue I've taken up. Unless he's free by then

Sounds good. I thought we could use the script to also generate a report that we could send out to the -devel list every two weeks to inform the community of the newcomers here? That would require the following info also:

  • what the newcomer's interests are: so basically list the tag
  • total number of newcomers in queue
  • running total of newcomers that have successfully joined the community
  • running total of newcomers that did not successfully join the community.

What do you think @alciregi @sash713 ?

Sure, that should be fine.

Hey, could you assign this issue to me

Metadata Update from @alciregi:
- Issue assigned to sash713

I will be a bit busy for about a months time, any interested contributor can contact me here and we could do it together.

hey @alciregi , @hhlp , @ankursinha
i bumped into a problem, while working on this.
From the API I get the following data (https://pastebin.com/wesTpdz9)
but there seems to be no uniform method of mentioning the newcomer's user name , the only places that it has been mentioned are in the comments they enter and sometimes in the title.

The 2 possible ways to solve this issue are :-
* have a uniform title syntax so I can pull out their user name from there
* Assign the issue to the newcomer, so that i know exactly where to find their names

what are your thoughts on this ? or do you have any alternative solutions?

Metadata Update from @sash713:
- Assignee reset
- Issue untagged with: C: Tooling, S: Needs-comment, T: Idea, T: Task, easyfix
- Issue priority set to: None (was: Normal)

Metadata Update from @sash713:
- Issue assigned to sash713
- Issue priority set to: Normal
- Issue tagged with: C: Tooling, S: Needs-comment, T: Idea, T: Task, easyfix

I have no idea how the metadata update happend (unintentional)
sorry about that

Assigning the ticket to the newcomer should be OK. What do you think?

Assigning the ticket to the newcomer should be OK. What do you think?

Yes, I think that would be a good option

+1
I think it is more "standardized" and lesser error prone compared to the title.

shall I begin assigning the issues to the respective newcomers so it will be easier for me to test my code ?

Yes, sure. You're already in the pagure group, so you should be able to do this already.

@sash713 , I would like to take this issues.

i was just about to finish writing the script, will be done in a day, however you can join me on this one and maybe help in the documentation (README file) ?

Sure :)

Here is a sample report file
Thoughts ?

Report2020-02-20.txt

Seem nice to me:

it would be nice to include if the ticket has some of these tag's:

C: Progress check 1
C: Progress check 2
C: Progress check 3

made a reference to the latest Progress check....

WDYT?

Regards.,

Sure, that should be fine, but i think that would better if it were in the program output right ?
because the report only consists of a list of users who have already specified their interests.

Do tell me if you think otherwise, I can add it to the report as well :)

Here is the programmes sample output (The program has a terminal output as well as a report file output )

Here is the terminal output:

sample_output

Also do tell me if you would like the output to be formatted differently (something like prettytable maybe)

I have added the progress check tags to both the output as well as the report file

WDYT?

output file :

sampleout.txt

report file :

Report2020-02-22.txt

Looks very good. Thanks @sash713 ! Closing this one.

Metadata Update from @ankursinha:
- Issue close_status updated to: Fixed
- Issue status updated to: Closed (was: Open)

This ticket has been migrated to the forgejo instance. Please find the new ticket here
https://forge.fedoraproject.org/join/Fedora-Join//issues/180

Metadata