[ 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)