[ 
https://issues.apache.org/jira/browse/FLINK-37770?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated FLINK-37770:
-----------------------------------
    Labels: pull-request-available  (was: )

> FLIP-518: Introduce a community review process
> ----------------------------------------------
>
>                 Key: FLINK-37770
>                 URL: https://issues.apache.org/jira/browse/FLINK-37770
>             Project: Flink
>          Issue Type: New Feature
>            Reporter: david radley
>            Priority: Major
>              Labels: pull-request-available
>
> Implement [FLIP 
> 518]([https://cwiki.apache.org/confluence/display/FLINK/FLIP-518%3A+Introduce+a+community+review+process])
> Investigations are documented 
> [https://github.com/actions/github-script/discussions/598] In summary  
>  * I tried using pull_request_review failed to have enough permissions to get 
> the collaborators or write. label due to permissions from a fork
>  * I tried using { Unknown macro: \{ pull_request_review then using github 
> actions to use github caching to stash the PR review content into the cache 
> then have a cron gitaction pick up the cache. The cron gitaction has enough 
> permissions. Unfortunately the github. Caches are associated with e branches 
> and we are in a refs/pull/7/merge (for pr 7). So the cron job could not see 
> the cache
>  * {{I tried using pull_request_target. This only works on main branch and is 
> deemed insecure.}}{{     }}
> In the absence of a way to trigger the the label based on a review, I have 
> written a github cron job to look for all open PRs with reviews.
>  *  There is a graphql query we can use to get all open PRs and associated 
> reviews. This is good but is limited to 100 return items, so I need to have 
> paging logic to get all the PRs. 
>  * I then need to look at the reviews, currently there are less then 100 
> reviews per PR, but I have added and tested paging logic for the reviews
>  * The reviews needs to be normalised to have only the latests review from 
> each reviewer
>  * Then we need to find out is the reviewed is a committer or not and then 
> apply the logic in the flip to label the PR, the simplest way of doing this 
> is to issue a rest call to get whether a use has push permission to the repo 
> for each review
> Optimisations
>  * to reduce the rest calls for collaborators, we could 
>  ** 
>  *** have a github cron job that polls the repos collaborators and creates a 
> file in github cache that could be brought in and queried. 
>  *** issue stash any collaborators we find and whether they have push access 
> in a local file so we only check each reviewers once per run. I am looking at 
> this option
>  *     check the review time and see if we need to do anything. If all 
> reviews are older than the last time we ran then we do not need to do 
> anything.   
> The PR is currently being tested locally, will share when testing complete. 
> Notes:
> I am implementing the change in separate bash files as I do not have the 
> appropriate permission with the flink repo - I can test each piece with other 
> repos to check they are working as expected.  
> The files I create are in the current folder - I could create them  in 
> another 'data'  or 'temp' folder if there is a preference to do this.  This 
> files are transient and do not persist from one run to the next.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to